JavaScript:好的部分名称/字符串铁路图混淆

8
我开始阅读《JavaScript: The Good Parts》一书,但在前几页(确切地说是第7和9页)的铁路图上感到困惑。
有关名称和字符串文字的图表。(您可以在此处查看图表)
据我所知,在JavaScript中,名称可以以字母开头,也可以以下划线甚至“$”符号开头。但根据这本书的图表,它只能从字母开头。
对于字符串文字,请想象您要表示像“\\”这样的字符串:
根据图表,这是不可能的(似乎在“转义字符”之后需要“除“和\和控制”之外的任何Unicode字符)。
这本书中是否存在错误?还是我错过了什么?

1
这是书中已确认的错误清单:http://oreilly.com/catalog/errata.csp?isbn=9780596517748 - Marco Mariani
1
在《JavaScript语言精粹》一书中描述的语言并不是JavaScript,而是它的一个子集——你可以称之为“Crockford的JavaScript”。Crockford引入了新的语法限制。其中之一是名称不能以“$”或“_”开头... - Šime Vidas
@ŠimeVidas:那会是一个不错的答案... - Ned Batchelder
@Marco Mariani 谢谢,字符串文字图表中有一个错误确认。 - mt_serg
@ŠimeVidas:这真的让一切都清晰了。谢谢你。你能把你的评论发表为答案,这样我就可以接受它了吗? - mt_serg
3个回答

8

《JavaScript语言精粹》中描述的语言并不是JavaScript本身,而是它的一个子集——你可以称之为“Crockford的JavaScript”。Crockford引入了新的语法限制。其中之一是名称不能以$_开头。


天哪!我本可以再看150页,以为那是真正的JavaScript! - doubleOrt
JavaScript的一个子集在技术上仍然是JavaScript;-) - Šime Vidas
@Šime_Vidas 措辞有歧义,抱歉。所以:天哪!我本可以再看150页,认为它应该是标准/原始JavaScript! - doubleOrt

1

看起来铁路图的名称肯定有问题。就像你所说,名称可以以下划线开头,但图表却不允许这样做,而美元符号似乎完全缺失。

不过,你关于字符串字面量的观点是错误的,因为"\"是被正确禁止的。

一份给你,一份给Crockford。


1

JavaScript的字面量名称可以以字母、数字、下划线或美元符号开头。然而,惯例是只使用字母作为第一个字符。http://javascript.crockford.com/code.html

字符串字面量可以包含任何转义字符(例如"\"""\\")或除了定界符("')和反斜杠(\)之外的任何其他字符。转义字符不是单个反斜杠。它是整个转义字符的表示。请参见您自己链接中的转义字符铁路图。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接