【问题标题】:How does the typeof method works in Javascript? [duplicate]typeof 方法在 JavaScript 中是如何工作的? [复制]
【发布时间】:2017-08-06 01:35:46
【问题描述】:
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 == true,但不是布尔值
  • 如果这是您的问题,为什么不在控制台中尝试typeof(1) == 'boolean',而不是问人?

标签: javascript casting typeof


【解决方案1】:

第一种情况是等价的。 === 执行与== 相同的操作,只是它不执行任何类型转换。详情请见this answer

所以,

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

仅当 variable 是布尔变量时才会评估为真。


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

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

【讨论】:

    猜你喜欢
    • 2015-12-01
    • 2013-09-26
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 2011-08-09
    • 2013-05-25
    • 1970-01-01
    • 2013-11-17
    相关资源
    最近更新 更多