這是我參與更文挑戰的第6天,活動詳情檢視: 更文挑戰
76. 輸出是什麼?
const { name: myName } = { name: "Lydia" };
console.log(name);

答:D,題目中的解構方式相當于将字元串的值賦給了myName,而不是name,是以下文調用name,相當于調用一個沒有聲明的變量。
77. 下面的函數是純函數嗎?
function sum(a, b) {
return a + b;
}
答: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));
答:C,本題主要考查的是閉包的了解,函數首先檢查cache中是否有傳入的參數,有則傳回無則+10然後存進去,然後傳回。
79. 輸出什麼?
const myLifeSummedUp = ["☕", "💻", "🍷", "🍫"]
for (let item in myLifeSummedUp) {
console.log(item)
}
for (let item of myLifeSummedUp) {
console.log(item)
}
答:A,本題意在考查我們對for-in和for-of的了解,我們隻需要記住一點,for-in周遊的是鍵,但是for-of周遊的是值。
80. 輸出是什麼?
const list = [1 + 2, 1 * 2, 1 / 2]
console.log(list)
答:C,本題考查JS的預設機制。
81. 輸出什麼?
function sayHi(name) {
return `Hi there, ${name}`
}
console.log(sayHi())
: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)
答:B,本題意在考查setTimeout函數在特定情況下的this指向問題,在上面這種情況下,this指向的是全局,全局下正好有個😎,是以本題選B。
83. 輸出什麼?
const person = {
name: "Lydia",
age: 21
}
let city = person.city
city = "Amsterdam"
console.log(person)
答: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))
答:C,這題真的挺坑的,意在考查const、let引起的塊級作用域,由于塊級作用域的存在,我們無法在塊級作用域之外通路到聲明的變量,請記住這個題。
85. 下面的代碼将列印出什麼?
fetch('https://www.website.com/api/user/1')
.then(res => res.json())
.then(res => console.log(res))
答:C,這就是考查我們對Promise的了解程度了,必然是前一個then中回調方法傳回的結果了。