155个JavaScript基础问题(116-125)

简介: 155个JavaScript基础问题(116-125)

这是我参与更文挑战的第10天,活动详情查看:更文挑战

116. 输出什么?

const person = {
  name: "Lydia",
  age: 21
}
const changeAge = (x = { ...person }) => x.age += 1
const changeAgeAndName = (x = { ...person }) => {
  x.age += 1
  x.name = "Sarah"
}
changeAge(person)
changeAgeAndName()
console.log(person)

image.png

答:C,本题主要考查函数传参和默认参数的区别,传参如果传的是引用地址,则会对这个引用产生影响,但是如果是默认参数,则是创建了一个新对象,对原引用没有影响。

117. 下面哪个选项会返回6?

function sumValues(x, y, z) {
  return x + y + z;
}

image.png

答:C,本题考查我们对拓展运算符的熟悉程度,只有C选项是将数组变为了三个元素,其余选项均为一个数组,所以选C。

118. 输出什么?

let num = 1;
const list = ["🥳", "🤠", "🥰", "🤪"];
console.log(list[(num += 1)]);


image.png

答:B,本题我们需要看清的是,这不是num++,而是num+=1,所以其实打印的是list[2].

119. 输出什么?

const person = {
  firstName: "Lydia",
  lastName: "Hallie",
  pet: {
    name: "Mara",
    breed: "Dutch Tulip Hound"
  },
  getFullName() {
    return `${this.firstName} ${this.lastName}`;
  }
};
console.log(person.pet?.name);
console.log(person.pet?.family?.name);
console.log(person.getFullName?.());
console.log(member.getLastName?.());

image.png

答:B,本题主要考查可选连操作符(?.),这是一个新特性,作用是如果该操作符前面的属性对象存在,则打印该属性对应的内容,如果不存在则返回undefined,至于第四个打印member的这个选项,答案应是报错的。

120. 输出什么?

const groceries = ["banana", "apple", "peanuts"];
if (groceries.indexOf("banana")) {
  console.log("We have to buy bananas!");
} else {
  console.log(`We don't have to buy bananas!`);
}


image.png

答:B,这是因为indexOf返回的下标是0,这是一个假值,所以触发了else.

121. 输出什么?

const config = {
  languages: [],
  set language(lang) {
    return this.languages.push(lang);
  }
};
console.log(config.language);


image.png

答:D,本题考查我们对setter的认识,这个方法存在的意义是修改对象的属性,如果调用的话返回的是undefined。

122. 输出什么?

const name = "Lydia Hallie";
console.log(!typeof name === "object");
console.log(!typeof name === "string");


image.png

答:C,本题非运算的优先级高于三个等号的优先级,所以先计算typeof name结果为字符串类型的string,取非之后,返回的是false,这个和后两个均不等,所以选C。

123. 输出什么?

const add = x => y => z => {
  console.log(x, y, z);
  return x + y + z;
};
add(4)(5)(6);

image.png


答:A,这题主要考查箭头函数的作用域链,所以打印的是 4 5 6,选A。

124. 输出什么?

async function* range(start, end) {
  for (let i = start; i <= end; i++) {
    yield Promise.resolve(i);
  }
}
(async () => {
  const gen = range(1, 3);
  for await (const item of gen) {
    console.log(item);
  }
})();


image.png

答:C,本题主要是考查生成器函数和for await of这种循环的用法,首先range这个生成器函数返回了3个Promise对象,通过for await of 这种循环可以将每个promise的值打印出来,所以选C。

125. 输出什么?

const myFunc = ({ x, y, z }) => {
  console.log(x, y, z);
};
myFunc(1, 2, 3);


image.png

答:D,本题主要考察对象的解构赋值,传入的应该是一个拥有x y z三个属性的对象,但是题目并未传入一个对象,所以打印的是3个undefined.

题目来源

github.com/lydiahallie…

相关文章
|
JavaScript
JS基础之解构赋值
解构赋值 在js中,我们经常会将对象或者数组里面的一部分数据作为参数传递给函数,如果我们使用传统的.方法会很麻烦。
|
JavaScript 前端开发
JavaScript 入门基础 - 运算符(三)
文章目录 JavaScript 入门基础 - 运算符(三) 1.什么是运算符 2.表达式和返回值 3.算术运算符概述 4. 赋值运算符 5.递增和递减运算符 5.1 递增和递减运算符概述 5.2 递增运算符 5.2.1 前置递增运算符 5.2.2 后置递增运算符 5.2.3 后置和前置运算符的区别 6. 比较运算符 7. 逻辑运算符 7.1 逻辑运算符概述 7.2 逻辑与 7.3 逻辑或 7.4
121 0
JavaScript 入门基础 - 运算符(三)
|
存储 JSON JavaScript
JavaScript 入门基础 - 变量 / 数据类型(二)
JavaScript 入门基础 - 变量 / 数据类型(二)
87 0
JavaScript 入门基础 - 变量 / 数据类型(二)
|
JavaScript 前端开发 物联网
JavaScript 入门基础 / 概念介绍(一)
JavaScript 入门基础 / 概念介绍(一)
112 0
JavaScript 入门基础 / 概念介绍(一)
|
JavaScript 前端开发 Java
JavaScript的基础使用
JavaScript的基础 一、javascript简介 JavaScript简称js,最初由网景(现在的Mozilla)公司创建,由于商标冲突原因,其标准版本命名为ECMAScript,但是一般人们还是叫JavaScript,只在谈标准的时候说到ECMAScript这个名字。值得注意的是JavaScript与java没有任何关系,就像雷峰塔(神话中镇压白娘子的塔)和雷锋。此外js(JavaScript)和jsp(java servlet pages)也没有关系。   js的工作分为两部分,一部分属于js语言本身的特性,而另一部需要依靠宿主环境(web浏览器)才能完成。 二、javascri
JavaScript的基础使用
|
JavaScript 前端开发
js 模块化基础和模块规范AMD、CMD、ES6模块
js 模块化基础和模块规范AMD、CMD、ES6模块
83 0
|
JavaScript 前端开发
原生js制作选项卡详解,适合无基础的人学习
原生js制作选项卡详解,适合无基础的人学习
109 0
原生js制作选项卡详解,适合无基础的人学习
|
JavaScript 前端开发
vue js文字跑马灯基础版本
提供两种解决思路
253 1
|
存储 JavaScript 前端开发
JavaScript基础(一篇入门)
JavaScript基础(一篇入门)
185 0
JavaScript基础(一篇入门)
|
XML JavaScript 前端开发
计算机二级web题目(5)--js(Javascript)基础
计算机二级web题目(5)--js(Javascript)基础
252 0