关于casting:typeof方法如何在javascript中工作?

How does the typeof method works in Javascript?

本问题已经有最佳答案,请猛点这里访问。
1
2
3
if(typeof(variable) ==="boolean"){
  // variable is a boolean
}

下面两个代码示例中的哪一个与上面的代码示例等效?

样品1

1
2
3
if(variable === true || variable === false){
  // variable is a boolean
}

样品2

1
2
3
if(variable == true || variable == false){
  // variable is a boolean
}


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

所以,

1
2
3
if ( variable === true || variable === false) {
    ...
}

只有当variable是布尔变量时,才会计算为真。

至于typeof的内部工作,您可以阅读本手册,当然,它是手册。请记住,typeof是一种语言运算符,很像=====&。要确切地知道它是如何实现的以及它如何知道变量类型的,需要检查代码。

我从来没有看过javascript引擎的源代码,所以我不知道你可以在哪里找到。