understanding Javascript Typeof
当我执行下面的代码时,它会打印两次"未定义"。我原以为它会引起错误,因为变量没有定义,而且在顶部还有use strict'语句。
1 2 3 4 5 | 'use strict'; var a; console.log(typeof a); console.log(typeof b); |
有人能解释为什么它没有引起错误吗?
实际上,在javascript中,
typeof a 返回undefined ,因为变量a 只声明了,但尚未初始化(没有赋值)。typeof b 返回undefined ,因为变量b 尚未声明,所以没有定义。
如果没有给变量赋值,它会得到
因此,如果您检查MDN类型的规范,您将看到:
The
typeof operator returns a string indicating the type of the unevaluated operand, and if you see types table you can see thatundefined is a primitive type and one of the possible return values oftypeof .
实例:
您可以在示例部分看到未定义的返回:
// Undefined
typeof undefined === 'undefined';
typeof declaredButUndefinedVariable === 'undefined';
typeof undeclaredVariable === 'undefined';
注:
正如注释中所述,这只与javascript语法相关,与nodejs没有任何关系。
这是
它可以返回的其他选项包括:
boolean number string function object symbol
您不使用"a"中的函数,也不使用除参数之外的任何函数,wich不是未定义的。typeof只检查变量的内存位置。