关于node.js:了解Javascript Typeof

understanding Javascript Typeof

当我执行下面的代码时,它会打印两次"未定义"。我原以为它会引起错误,因为变量没有定义,而且在顶部还有use strict'语句。

1
2
3
4
5
'use strict';
var a;

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

有人能解释为什么它没有引起错误吗?


实际上,在javascript中,undefined意味着变量尚未定义,因此基本上:

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

  • typeof b返回undefined,因为变量b尚未声明,所以没有定义。

如果没有给变量赋值,它会得到undefined类型,因为无法确定a s类型。

因此,如果您检查MDN类型的规范,您将看到:

The typeof operator returns a string indicating the type of the unevaluated operand, and if you see types table you can see that undefined is a primitive type and one of the possible return values of typeof.

实例:

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

// Undefined

typeof undefined === 'undefined';

typeof declaredButUndefinedVariable === 'undefined';

typeof undeclaredVariable === 'undefined';

注:

正如注释中所述,这只与javascript语法相关,与nodejs没有任何关系。


undefined是原始数据类型,

这是typeof运营商可能返回的选项之一,

它可以返回的其他选项包括:

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


您不使用"a"中的函数,也不使用除参数之外的任何函数,wich不是未定义的。typeof只检查变量的内存位置。