我正在通过Codecademy'介绍JavaScript'课程。我刚刚遇到了一段代码示例,它让我感到困惑,似乎没有解释。我查看了Mozilla文档,并认为我理解,但我真的只是想要澄清这个问题。
let restaurant = {
_name: 'Italian Bistro',
_seatingCapacity: 120,
_hasDineInSpecial: true,
_entrees: ['Penne alla Bolognese', 'Chicken Cacciatore', 'Linguine
pesto'],
set seatingCapacity(newCapacity) {
if (typeof newCapacity === 'number') { // THIS LINE
this._seatingCapacity = newCapacity;
console.log(`${newCapacity} is valid input.`);
} else {
console.log(`Change ${newCapacity} to a number.`)
}
}
我的问题 - '数字'这里的意思是一个数字(12,343等),而不是字符串'数字'在所有情况下?或者它只在typeof运算符中?
我认为这是一个愚蠢的问题,但它是一个让我失望的人。谢谢。
答案 0 :(得分:1)
===
用于检查严格的相等性。请考虑以下示例
0 == false //<== returns true
0 === false //<== returns false
在您的示例中没有必要,因为typeof
永远不会返回任何相等到number
而不是number
字符串本身的值。但它被认为是使用===
的良好做法(虽然我个人认为这取决于你所比较的)
(此处typeof
可能返回的值列表)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof