天天看點

155個JavaScript基礎問題(76-85)

這是我參與更文挑戰的第6天,活動詳情檢視: 更文挑戰

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)

答: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)

答: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)

答: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)

答:C,本題考查JS的預設機制。

81. 輸出什麼?

function sayHi(name) {
  return `Hi there, ${name}`
}
console.log(sayHi())      
155個JavaScript基礎問題(76-85)

: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)

答: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)

答: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)

答: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)

答:C,這就是考查我們對Promise的了解程度了,必然是前一個then中回調方法傳回的結果了。

題目來源

github.com/lydiahallie…

繼續閱讀