【问题标题】:understanding Javascript Typeof了解 Javascript Typeof
【发布时间】:2016-04-13 09:49:10
【问题描述】:

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

'use strict';
var a;

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

谁能解释为什么它没有引发错误?

【问题讨论】:

标签: javascript node.js variables undefined


【解决方案1】:

实际上在 JavaScript 中undefined 表示该变量尚未定义,所以基本上:

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

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

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

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

typeof 运算符返回一个字符串,指示未计算的操作数的类型,如果您查看类型表,您可以看到undefined 是一个原始类型,并且是typeof 的可能返回值之一。

示例:

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

// 未定义

typeof undefined === 'undefined';

typeof declaredButUndefinedVariable === 'undefined';

typeof undeclaredVariable === 'undefined';

注意:

而且正如 cmets 中所说,这仅与 JavaScript 语法有关,与 nodejs 无关。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      undefinedprimitive data type

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-12-15
        • 2014-08-13
        • 2015-07-28
        • 1970-01-01
        • 2013-06-11
        • 1970-01-01
        • 2011-11-11
        相关资源
        最近更新 更多