【发布时间】:2013-12-22 22:58:29
【问题描述】:
在编写 JavaScript 小书签时,不能使用 //,因为 JavaScript 代码被视为单行。您必须改用/* ... */。这对我来说没有意义,因为即使忽略换行符,您也可以在普通脚本中使用 //。
在The Definitive Guide的第2.3节中
JavaScript 会忽略中间出现的空格、制表符和换行符 程序中的令牌...
然后,在权威指南的第 2.5 节
...在 // 和行尾之间的任何文本都被视为注释 并被 JavaScript 忽略...
这些陈述似乎相互矛盾。
根据第 2.3 节,正常的脚本几乎也是单行 J.S,因为换行符被忽略了。有人可以向我解释为什么// 可以在普通脚本中使用,但不能在书签中使用吗?
【问题讨论】:
-
您似乎忽略了最重要的部分,即出现在标记之间的 "..."
-
您可以粘贴 boomarklets here 以对它们进行 url 编码(和取消编码)。
-
“JavaScript 忽略空格、制表符和换行符”的说法是错误的。它们根本不会被忽略,它们对于分隔标记、自动分号插入和结束具有以下脚本的单行 cmets 是必不可少的。见ECMA-262 §7.2:
White space characters are used to improve source text readability and to separate tokens (indivisible lexical units) from each other, but are otherwise insignificant。此外,Line terminators 不是空格。 -
@Phil 我不认为我是。如果你取 var a = 5; var b = 6;换行符出现在标记之间,但不会被忽略。我可能误解了他对“被忽略”的定义。
标签: javascript bookmarklet javascriptcore