2012-04-06 108 views
8

什麼是char在JavaScript中使用的保留關鍵字(因爲不需要類型聲明),特別是什麼是正確的語法來使用它(有人可以給我一個適當的完整例子)?什麼是'char'關鍵字用於?

因爲寫char c;會拋出一個解釋錯誤,說missing ; before statement,就在c之前?

+0

在執行'char c'時出現的錯誤並非意外。試試'blah c',你會得到一個類似的錯誤。雖然你的問題在這種情況下實際上有一個歷史背景(這使得它很有趣),但我不認爲這是你得到的錯誤的原因。 – Reid 2012-04-06 16:55:21

回答

15

JavaScript中有很多保留關鍵字,這些關鍵字是爲「將來」使用而保留的。他們不一定有當前的使用和描述。

MDN確實列出了一些人認爲這裏有這種特殊的「未來使用」狀態:https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words(感謝DCoder),你也可以從文章閱讀:

以下保留通過未來的關鍵字ECMAScript規範。目前它們沒有特殊的功能,但它們可能在將來的某個時間,因此它們不能用作標識符。這些關鍵字不能用於嚴格模式或非嚴格模式。

要進一步說明爲什麼它在某些地方和某些地方認爲保留關鍵字不是這樣。 ECMAScript v3規範確實包含了char作爲保留關鍵字,但ECMAScript v5規範(它開始是最常見的規範)不包括它。

+2

指向保留字列表的鏈接不會受到傷害。 https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words – DCoder 2012-04-06 16:46:18

+0

我覺得有必要指出,並非所有引擎都會真正關心使用char。 Offhand,我看到v8,JägerMonkey和Carakan在你運行'var char = 5;'之類的時候並不會抱怨,所以它們並不真正把它當作保留字。Java中的「future-reserved-words」的巨大列表在ECMAScript 5中被拋出,所以我有一種感覺IE(特別是IE6/IE7)可能會抱怨'var char = 5',儘管我沒有一個副本它在這臺電腦上測試它。 – Reid 2012-04-06 16:53:53

+0

好吧,據我瞭解,我的記事本++編輯器確實認可了char關鍵字,但firefox 11和HTML 5沒有,所以他們的行爲就好像他們不知道這個詞一樣,就像Reid說的那樣。因此,如果它不會有任何用處,那麼我將放棄那個問題,並繼續學習什麼可行...... – MrBrody 2012-04-06 17:06:26

4

更新:

另外,作爲@HoLyVieR指出並在下面的評論顯示,char關鍵字留作將來使用。 See this link for more information(感謝@djmadscribbler)。


There is no reserved keyword char in JavaScript,你必須用reserved keyword char of Java instead被混淆了。

+0

ECMAScript 3保留了所有Java保留字,並且並非所有瀏覽器都已將ECMAScript 5標準作爲JavaScript實現。 – 2012-04-06 16:52:26

+0

實際上有http://en.wikibooks.org/wiki/JavaScript/Reserved_Words HoLyVieR有它的權利 - 它現在不被積極使用,但它被保留供將來使用 – djmadscribbler 2012-04-06 16:53:07

+0

@djmadscribbler:謝謝你的鏈接。更新了詳細的答案:) – Sarfraz 2012-04-06 16:58:25

2

根據ECMAscript文檔(http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf部分 7.6.1),char根本不是保留字。

我猜如果你看到作爲保留字的地方那麼這是一個特定的實現。

http://jsfiddle.net/BCruP/

編輯:上述參照的是EMCAscript 5.

EMCAScript 3(http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%203rd%20edition,%20December%201999.pdf)文檔列表炭作爲未來保留字,然而,EMCAScript 5似乎已經丟棄的關閉名單。