typeof 方法在 JavaScript 中是如何工作的? [复制]

Posted

技术标签:

【中文标题】typeof 方法在 JavaScript 中是如何工作的? [复制]【英文标题】:How does the typeof method works in Javascript? [duplicate] 【发布时间】: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',而不是问人? 【参考方案1】:

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

所以,

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

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


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

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

【讨论】:

以上是关于typeof 方法在 JavaScript 中是如何工作的? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

lua中是 ffi 解析 是如何处理数据包的/pkt是如何传进去的 fsfsfs

Lua 表在内存中是如何处理的?

[100 Tips About Shell] Shell中是如何处理换行符的

__eq__ 在 Python 中是如何处理的以及按啥顺序处理?

express中是如何处理IP的?

获取 Javascript 变量类型的更好方法?