为什么typeof undefined是返回字符串?

时间:2014-06-17 07:33:50

标签: javascript undefined

当我从浏览器运行时

typeof undefined

我收到了"undefined"字符串。这就是为什么?大多数时候我检查我的变量是

if (a == 'undefined') {
  do something
}

我正在检查我的变量a是否等于undefined?我不明白这一点。有人可以解释一下吗?另一种检查javascript中未定义的方法吗?

4 个答案:

答案 0 :(得分:3)

因为这就是typeof的工作原理:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof

if (a == undefined) { // instead its a type comparison 

答案 1 :(得分:1)

答案 2 :(得分:0)

undefined恰好是一个包含the undefined value的全局名称。

引用链接页面,

  

undefined是全局对象的属性,即它是全局范围内的变量   undefined的初始值是未定义的原始值。

typeof总是返回一个字符串,描述传递给它的名称的值。

答案 3 :(得分:0)

typeof运算符返回一个字符串,指示未评估的操作数的类型。

它会像这样改变

Undefined   :"undefined"
Null    :"object"
Boolean :"boolean"
Number  "number"
String  :"string"
Host object (provided by the JS environment)    :Implementation-dependent
Function object (implements [[Call]] in ECMA-262 terms):    "function"
Any other object    :"object"

DOC