我有一个数组:
const values = [1, 2, 3, 4]
我正在尝试对它执行一些特殊功能(foreach
,every
..) 例如:
values.forEach(() => {
const bool = typeof value == "number";
console.log(bool)
})
上面的代码工作正常(没有错误),即使结果是false
,并且值应该是undefined
,因为我认为我传递的value
(错别字错误)是这样的:
values.forEach(value => {
const bool = typeof value == "number";
console.log(bool)
})
我的问题是为什么Javascript不警告我或从这个方法
抛出错误?
这并不是因为foreach
方法。 这就是typeof
的工作方式,它计算变量的数据类型,如果它没有定义,它将返回“undefined”。
typeof value === "number"
typeof value //"undefined"
"undefined" === "number" //false
你的代码没有问题。
typeof
将始终返回一个字符串,所以我们通常会这样做
typeof A === 'number'
我们通常也使用===
。 但即使不匹配,也不会出错。