当前位置:  开发笔记 > 编程语言 > 正文

我应该在JavaScript中使用分号吗?

如何解决《我应该在JavaScript中使用分号吗?》经验,为你挑选了6个好方法。

我只编写了少量运行嵌入Java应用程序的JavaScript,但它是使用QUnit测试的,已经混合了,我还没有注意到任何问题.

是否有一些传统的智慧是否在JavaScript中使用分号?



1> annakata..:

使用它们.经常使用它们.

因为你忽略了一个分号并且在压缩/生成/ eval解析之前丢失了保存它的空格,所以稍后容易打破一些东西太容易了.


这个例子****不应该因规格而失败(参见ECMA-262,第3版.第13章)它将在旧浏览器中运行(在IE5.5上测试,1999浏览器),它没有任何内容使用**自动分号插入**(ECMA-262 Sec.7.9),只发生*空语句*,*变量语句*,*表达式语句*,*do-while语句*,*继续语句*,*break语句*,*return语句*和*throw语句*不对**函数声明**(使用*function语句*)进行分号插入.
咦?`function foo(){} foo()`工作正常.只有在函数表达式之后才需要分号,而不是像示例中那样的函数声明.

2> Hank Gay..:

我会说他们一直都在使用它们; 您遇到的大多数代码都会使用它们,而且一致性就是您的朋友.



3> Steerpike..:

如果您不使用它们然后缩小代码,则可能会遇到问题,所有代码都在一行上,并且浏览器无法完全掌握哪个命令在哪里结束.


并不是的.任何现代的标准缩小器都可以使用词法分析器/解析器并保持程序的抽象语法树.如果minifier删除换行符号,它将在同一行上用语法上等效的分号标记替换它.(我的第一个声明有些错误 - 缩小器也会减少抽象语法树,但仍保持逻辑等效).查看此缩小演示:http://esprima.org/demo/minify.html.此外,您还可以轻松了解需要JS分号的情况:http://inimino.org/~inimino/blog/javascript_semicolons

4> Paul Dixon..:

它们是ECMAscript标准所要求的,请参阅第7.9节 - 只是标准定义了一些允许在解析脚本时自动插入的规则.

所以总是使用它们!



5> Andrzej Doyl..:

在编写JavaScript时,我总是提倡使用分号.通常,口译员可以为您推断它们; 但我还没有看到一个原因(除了懒惰;-))为什么你会故意以不太可能的方式编写你的代码.

在我看来,如果代码的结构很明显,那么分号的位置就会非常清楚,这样你就不会在养成习惯之后(即在每一行的末尾)考虑它; 在另一方面,如果在分号去不清醒时立即给你,然后有机会的结构还不是最明显的,无论如何,以及是否有必要明确分号比他们在其他地方.

它还让你习惯于理解和分隔你脑中的陈述,这样你就可以更好地理解代码如何解析为AST或类似代码.调试语法错误时,这是​​一件好事.



6> Philip Reyno..:

使用它们。原因有几个,最明显的是

    JavaScript压缩程序/压缩程序

    换行是新表达式的规则的例外(例如,以变量终止一行,并以括号开头的下一行,))

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有