understanding Javascript Typeof
understanding Javascript Typeof
当我执行下面的代码时,它会打印两次"未定义"。我原以为它会引发错误,因为变量没有定义,而且顶部还有use strict语句。
'use strict';
var a;
console.log(typeof a);
console.log(typeof b);
有人能解释为什么它没有引起错误吗?
事实上,在JavaScript中,undefined
意味着变量尚未定义,所以基本上:
-
typeof a
返回undefined
,因为变量a
仅被声明,但尚未初始化(没有为其赋值)。 -
typeof b
返回undefined
,因为变量b
尚未声明,因此未定义。
如果变量没有赋值,它就会得到类型undefined
,因为类型无法确定。
因此,如果您检查MDN类型的规范,您将看到:
typeof
运算符返回一个字符串,指示未赋值操作数的类型,如果您看到类型表,您可以看到undefined
是一个基元类型,也是typeof
的可能返回值之一。
示例:
您可以在示例部分中看到,未定义的返回:
//未定义
typeof undefined=='undefined';
typeof declaredButUndefinedVariable=="未定义";
typeof未声明变量==='未定义';
注意:
正如评论中所说,这只与JavaScript语法有关,与nodejs无关
您不使用"a"中的函数,也不使用任何除参数外的函数,这些函数没有定义。Typeof只检查变量的内存位置。
undefined
是一种原始数据类型,
这是typeof
操作员可以返回的可能选项之一,
它可以返回的其他选项有:
boolean
number
string
function
object
symbol
相关文章:
- Javascript 混淆了 null、instanceof 和 typeof 的语法不一致
- javascript中的typeof()函数错误
- understanding Javascript Typeof
- JavaScript - typeof Object vs Object()
- Javascript `typeof` validation issue
- 如何在 Javascript 中扩展 “typeof”
- What is typeof(NaN) in Javascript?
- Javascript :似乎typeof不起作用
- JavaScript Typeof 不适用于 PHP 变量
- Javascript中“if typeof undefined”的简写
- 为什么 typeof 3>2 在 JavaScript 控制台中返回 false
- 字符串值函数上的 Javascript typeof 运算符返回“函数”而不是“字符串”
- 为什么typeof !function(){}在JavaScript中是布尔值
- 在 JavaScript 中,如果数组,函数是对象原型,那么为什么 TypeOf 返回
- 这在Javascript中意味着什么“;typeof(arguments[0])”;
- Javascript用“;typeof“;没有“;如果“;
- 为什么javascript将typeof显示为"字符串“;当它是一个数字时
- JavaScript typeof运算符是否返回过大写字符串
- 与typeof运算符一起使用时,javascript null返回对象
- 为什么typeof Object、String、Number-Javascript中的一个函数