2012-04-06 56 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似乎已经丢弃的关闭名单。