如何证明undefined类型只有一个值?

时间:2011-04-26 15:48:42

标签: javascript undefined

在阅读JavaScript Garden之后,我做了如下记录,但可能证明是2号。请验证&也纠正我的其他证据。

  1. undefined是一种类型。
  2. 未定义类型只有一个 值。这些值是未定义的。
  3. 有一个名为的全局变量 未定义
  4. 全局未定义变量 默认值undefined
  5. 全局未定义变量不是
  6. undefined不是关键字
  7. 证明(在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
    

    感谢http://w3fools.com/#what-should-be-done

2 个答案:

答案 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

它必须是真的,因为你已经将未定义的变量值更改为与未定义类型不同的任何值。