在阅读JavaScript Garden之后,我做了如下记录,但可能证明是2号。请验证&也纠正我的其他证据。
证明(在firebug控制台中测试)
1. typeof undefined \\undefined
2. Need proof
3. var name = undefined; \\ global
variable undefined is assigned to
name
4. alert(name); \\ undefined, that
means undefined global variable has
value undefined
5. undefined = 'rajakvk'; \\ we can
change value
6. var undefined = 'rajakvk'; \\ no
syntax error
var if = 'rajakvk'; \\ SyntaxError: missing variable name
答案 0 :(得分:2)
您可以通过查看语言规范来证明这一点。没有测试可以在解释器中运行来证明它。这样的测试只能证明口译员符合或不符合规范。规范定义为“未定义”。
语言规范的第8.1节说
8.1未定义类型
Undefined类型只有一个值,称为 的未定义即可。任何没有的变量 已分配值具有值 的未定义强>
只有一个typeof
将返回"undefined"
的tyoe。来自规范的第11.4.3节:
表20 - 运营商结果类型
Type of val Result
Undefined "undefined"
Null "object"
Boolean "boolean"
Number "number"
String "string"
Object (native and does not implement [[Call]]) "object"
Object (native or host and does implement [[Call]]) "function"
Object (host and does not implement [[Call]]) Implementation-defined except may not be "undefined", "boolean", "number", or "string".
答案 1 :(得分:1)
正确的证据是:
undefined = 1;
alert(typeof undefined !== 'undefined'); // need to be true
它必须是真的,因为你已经将未定义的变量值更改为与未定义类型不同的任何值。