有人能说出 JavaScript 中未定义的类型是什么吗?typeof(undefined) 会返回什么?
2 回答
什么是未定义的?
在 JavaScript 中有未定义(类型)、未定义(值)和未定义(变量)。
类型:
Undefined (type) 是一个内置的 JavaScript 类型。
价值:
Undefined (value) 是一个原始类型,是 Undefined 类型的唯一值。任何尚未分配值的属性都假定为未定义的值。(ECMA 4.3.9 和 4.3.10)。没有 return 语句的函数或带有空 return 语句的函数返回 undefined。未提供的函数参数的值未定义。
多变的:
未定义(变量)是一个全局属性,其初始值为未定义(值),由于它是一个全局属性,我们也可以将其作为变量访问。为了保持一致性,在本文中我总是将其称为变量。
空区别:
Undefined 与 null 不同,后者也是表示有意缺少值的原始值。undefined 和 null 之间的唯一相似之处是它们都强制为 false。
那么什么是ReferenceError?
ReferenceError 表示检测到无效的参考值 (ECMA 5 15.11.6.3)
实际上,这意味着当 JavaScript 尝试获取无法解析的引用的值时,将抛出 ReferenceError。
请注意消息语法如何因浏览器而异。正如我们将看到的,这些消息都不是特别有启发性:
alert(foo);
//FF/Chrome: foo is not defined
//IE: foo is undefined
//Safari: can't find variable foo
typeof(undefined) is "undefined" - 见 MDN对 typeof 操作符的引用