if(typeof(variable) === "boolean"){
// variable is a boolean
}
以下两个代码示例中的哪一个与上面的代码相同?
样本1
if(variable === true || variable === false){
// variable is a boolean
}
样本2
if(variable == true || variable == false){
// variable is a boolean
}
答案 0 :(得分:2)
第一种情况是等效的。 ===
执行与==
相同的操作,但不执行任何类型转换。有关详细信息,请参阅this answer。
所以,
if ( variable === true || variable === false) {
...
}
仅当variable
是布尔变量时才会计算为真。
至于typeof
的内部运作方式,您可以阅读this,当然还有manual。请注意,typeof
是一种语言操作符,与===
,==
或&
非常相似。要确切了解它是如何实现的以及它如何知道变量类型,您需要检查它的代码。
我从未查看过JavaScript Engine源代码,所以我不知道你在哪里看。