【发布时间】:2018-03-18 14:52:38
【问题描述】:
我正在学习 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 操作符内?
我假设这是一个愚蠢的问题,但它却让我失望了。谢谢。
【问题讨论】:
-
由于您使用
typeof newCapacity,是的,只有当newCapacity是数值(12、343 等)时,条件才会通过。typeof产生像string、number、object等值。这些值中的每一个都作为字符串本身返回。 -
"number" 表示newCapacity的类型,是一个数字。在这里检查所有类型w3schools.com/js/js_datatypes.asp
-
typeof返回一个字符串。所以它是对象的类型,在这种情况下,您检查它是否是一个数字。number这里是一个字符串,因为那是类型.. :)
标签: javascript