typeof方法如何在Javascript中运行?

时间:2017-03-15 10:51:34

标签: javascript casting typeof

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
}

1 个答案:

答案 0 :(得分:2)

第一种情况是等效的。 ===执行与==相同的操作,但不执行任何类型转换。有关详细信息,请参阅this answer

所以,

if ( variable === true || variable === false) {
    ...
}

仅当variable是布尔变量时才会计算为真。

至于typeof的内部运作方式,您可以阅读this,当然还有manual。请注意,typeof是一种语言操作符,与=====&非常相似。要确切了解它是如何实现的以及它如何知道变量类型,您需要检查它的代码。

我从未查看过JavaScript Engine源代码,所以我不知道你在哪里看。