这是我参与更文挑战的第4天,活动详情查看:更文挑战
56. 输出是什么?
const set = new Set([1, 1, 2, 3, 4]); console.log(set);
答:D、本题考查集合的用法,集合有去重的功能,所以答案是打印出集合形式的1 2 3 4.
57. 输出是什么?
// counter.js let counter = 10; export default counter;
// index.js import myCounter from "./counter"; myCounter += 1; console.log(myCounter);
答:C,引入的模块是只读的,不能修改引入的模块。
58. 输出是什么?
const name = "Lydia"; age = 21; console.log(delete name); console.log(delete age);
答:A,只需记住一点,属性是还可以删除的,定义的变量无法使用delete的,age相当于给全局对象添加属性,name则是定义变量。
59. 输出是什么?
const numbers = [1, 2, 3, 4, 5]; const [y] = numbers; console.log(y);
答:C,本题主要考察数组的解构赋值,所以y是1,因为需要个数上对应。
60. 输出是什么?
const user = { name: "Lydia", age: 21 }; const admin = { admin: true, ...user }; console.log(admin);
答:B,本题主要考察的是通过拓展运算符对对象进行解构,所以答案选B。
61. 输出是什么?
const person = { name: "Lydia" }; Object.defineProperty(person, "age", { value: 21 }); console.log(person); console.log(Object.keys(person));
答:B,本题主要考察的是defineProperty的用法,通过该方法给对象添加的属性,需要声明其属性是否可迭代,如果没有声明默认是不可迭代,所以本题选B。
62. 输出是什么?
const settings = { username: "lydiahallie", level: 19, health: 90 }; const data = JSON.stringify(settings, ["level", "health"]); console.log(data);
答:A,本题主要考察JSON.stringify的用法,第二个参数意味着将哪些属性转换为字符串,所以本题选A。
63. 输出是什么?
let num = 10; const increaseNumber = () => num++; const increasePassedNumber = number => number++; const num1 = increaseNumber(); const num2 = increasePassedNumber(num1); console.log(num1); console.log(num2);
答:A,本题主要考察的是x++的调用顺序问题,两次调用都是将10返回之后再加的。
64. 输出是什么?
const value = { number: 10 }; const multiply = (x = { ...value }) => { console.log(x.number *= 2); }; multiply(); multiply(); multiply(value); multiply(value);
答:C,本题考查的是默认参数和传参的区别,通过默认参数每次都会创建一个新对象,对源对象没有影响,但是直接传参的话,如果传的是引用,则会产生影响。
65. 输出是什么?
[1, 2, 3, 4].reduce((x, y) => console.log(x, y));
答:D,本题主要考察的是reduce函数的用法,reduce的第一个参数是累积器的值,第二个参数的值是当前元素的值,如果不指定累积器的值,那么累积器的值是第一个元素的值即1,y是2。后面由于没有加减操作,所以累积器为undefined.