2011-04-26 17 views
1

看完JavaScript Garden後,我記下了下面的註釋,但有可能證明數字2.請驗證&正確我的其他證明。如何證明undefined類型只有一個值?

  1. undefined是一種類型。
  2. 未定義類型只有一個 值。該值未定義。
  3. 有一個叫 未定義
  4. 全球不確定的變量 默認值undefined
  5. 全球不確定的變量全局變量是不是 恆定
  6. 不確定是不是一個關鍵字

證明(經測試在螢火蟲控制檯)

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

+0

我想,如果沒有定義過任何其他的價值,它不會是不確定的。 – JohnP 2011-04-26 15:51:48

+0

@JohnP。謝謝。這是合乎邏輯的... – rajakvk 2011-04-26 15:53:20

回答

1

正確的證據是:

undefined = 1; 
alert(typeof undefined !== 'undefined'); // need to be true 

它必須是真實的,因爲你已經改變了未定義的變量值從任何類型未定義不同。

+0

ehr,但是現在typeof undefined是'數字',對不對?有趣的東西:嘗試'undefined = [1,2,3,4,5]; alert(undefined [2]);' – KooiInc 2011-04-26 16:32:57

+0

也是,做些什麼:'var c = 1; undefined = 1;警報(c === undefined); // => true' – KooiInc 2011-04-26 16:40:09

+0

您將'void 0'中'void'運算符返回的未定義值與名爲undefined的全局變量的值混淆。 – 2011-04-26 19:34:07

2

你可以通過查看語言規範來證明它。沒有任何測試可以在口譯員身上運行,證明這一點。這樣的測試只會是解釋者是否符合規範的證據。該規範定義了「未定義」。

語言規範的第8.1節說

8.1未定義的類型

未定義的類型都有一個值,稱爲 未定義。任何未分配 值的變量的值爲 undefined

而只有一個tyo typeof將返回"undefined"。從規範的第11.4.3節:

表20 - typeof運算結果

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". 
相關問題