理解Javascript Typeof

时间:2016-04-13 09:49:11

标签: javascript node.js variables undefined

当我执行下面的代码时,它会打印" undefined"两次。 我期待它会引起错误,因为变量没有定义,而且还有使用严格的'声明在顶部。

'use strict';
var a;

console.log(typeof a);
console.log(typeof b);

任何人都可以解释为什么它没有引发错误吗?

3 个答案:

答案 0 :(得分:2)

实际上在JavaScript undefined中意味着该变量尚未定义,所以基本上是:

  • typeof a返回undefined,因为变量a仅被声明但尚未初始化(没有赋值给它)。

  • typeof b返回undefined因为尚未声明变量b,因此未定义。

如果没有为变量赋值,则会获得类型undefined,因为无法确定类型。

因此,如果您查看 MDN typeof specification ,您会看到:

  

typeof运算符返回一个字符串,指示未评估操作数的类型,如果您看到类型表,则可以看到undefined是基本类型,并且{{}}可能的返回值之一1}}。

<强>示例:

您可以在示例部分中看到未定义的返回:

  

//未定义

     

typeof undefined ==='undefined';

     

typeof declaredButUndefinedVariable ==='undefined';

     

typeof undeclaredVariable ==='undefined';

注意:

正如评论中所述,这只与JavaScript语法有关,与nodejs没有任何关系。

答案 1 :(得分:-1)

您不使用“a”中的函数,也不使用除参数之外的任何函数,这些函数未定义。 Typeof仅检查变量的内存位置。

答案 2 :(得分:-1)

undefinedprimitive data type

这是typeof运算符可以返回的可能选项之一

它可以返回的其他选项是:

  • boolean
  • number
  • string
  • function
  • object
  • symbol