76. 输出是什么?

const { name: myName } = { name: "Lydia" };
console.log(name);

155个JavaScript基础问题(76-85)_块级作用域


答:D,题目中的解构方式相当于将字符串的值赋给了myName,而不是name,所以下文调用name,相当于调用一个没有声明的变量。


77. 下面的函数是纯函数吗?

function sum(a, b) {
return a + b;
}

155个JavaScript基础问题(76-85)_字符串_02


答:A,因为同样的输入是同样的输出,且不受输入值以外的其他信息影响。


78. 输出是什么?

const add = () => {
const cache = {};
return num => {
if (num in cache) {
return `From cache! ${cache[num]}`;
} else {
const result = num + 10;
cache[num] = result;
return `Calculated! ${result}`;
}
};
};
const addFunction = add();
console.log(addFunction(10));
console.log(addFunction(10));
console.log(addFunction(5 * 2));

155个JavaScript基础问题(76-85)_javascript_03


答:C,本题主要考查的是闭包的理解,函数首先检查cache中是否有传入的参数,有则返回无则+10然后存进去,然后返回。


79. 输出什么?

const myLifeSummedUp = ["☕", "????", "????", "????"]
for (let item in myLifeSummedUp) {
console.log(item)
}
for (let item of myLifeSummedUp) {
console.log(item)
}

155个JavaScript基础问题(76-85)_javascript_04


答:A,本题意在考查我们对for-in和for-of的理解,我们只需要记住一点,for-in遍历的是键,但是for-of遍历的是值。


80. 输出是什么?

const list = [1 + 2, 1 * 2, 1 / 2]
console.log(list)

155个JavaScript基础问题(76-85)_块级作用域_05


答:C,本题考查JS的默认机制。


81. 输出什么?

function sayHi(name) {
return `Hi there, ${name}`
}
console.log(sayHi())

155个JavaScript基础问题(76-85)_javascript_06


答:B,本题由于模板字符串中没有接收到name,所以返回的是undefined,所以最终答案是B。


82. 输出是什么?

var status = "????"
setTimeout(() => {
const status = "????"
const data = {
status: "????",
getStatus() {
return this.status
}
}
console.log(data.getStatus())
console.log(data.getStatus.call(this))
}, 0)

155个JavaScript基础问题(76-85)_字符串_07


答:B,本题意在考查setTimeout函数在特定情况下的this指向问题,在上面这种情况下,this指向的是全局,全局下正好有个????,所以本题选B。


83. 输出什么?

const person = {
name: "Lydia",
age: 21
}
let city = person.city
city = "Amsterdam"
console.log(person)

155个JavaScript基础问题(76-85)_javascript_08


答:A,仔细想想本题并未对person对象添加任何属性,所以选A。


84. 输出什么?

function checkAge(age) {
if (age < 18) {
const message = "Sorry, you're too young."
} else {
const message = "Yay! You're old enough!"
}
return message
}
console.log(checkAge(21))

155个JavaScript基础问题(76-85)_javascript_09


答:C,这题真的挺坑的,意在考查const、let引起的块级作用域,由于块级作用域的存在,我们无法在块级作用域之外访问到声明的变量,请记住这个题。


85. 下面的代码将打印出什么?

fetch('https://www.website.com/api/user/1')
.then(res => res.json())
.then(res => console.log(res))

155个JavaScript基础问题(76-85)_javascript_10


答:C,这就是考查我们对Promise的理解程度了,必然是前一个then中回调方法返回的结果了。