正在评论100%安全上所有主要的环境?(Are comments 100% safe on all

2019-09-23 05:30发布

字面上只是去掉了你的源解析之前的评论,或者他们可以算作换行,并在某些情况下破坏的连续性?

'foo'.replace(/f/, 'b') //f->b
     .replace(/o/, 'a') //o->a
     .replace(/o/, 'r') /*o->r*/ ;

'foo'.replace(/x/, /*matches "x"*/ 'y');

var foo = ( true !== false ) ? // bikeshed
          'bar' : /*if they're equal, which they won't be, we'll want 'baz'*/ 'baz';

你知道,因为他们说的空白就是“安全”和“不重要”或什么,但我们都知道有例外情形。 正在评论实际上是安全的?

Answer 1:

他们的分析过程中会被忽略,如果他们被剥离出去解析之前,解析器将需要扫描输入的两倍。

然而,在该行的末尾的LineTerminator不被认为是单行注释的一部分; 它是由词法单独确认并成为句法文法输入元件的流的一部分。 这一点是非常重要的,因为它意味着是否存在单行注释不影响自动分号插入的过程

ES5规范征求意见 。

源代码标记化,就好像不存在的意见。



Answer 2:

是的,评论是安全的。

(话虽这么说,我已经看到了一些破碎的服务器端的HTML minifiers不知道内嵌的JavaScript是什么,并删除所有换行符。开头的注释//注释掉整个脚本。)



文章来源: Are comments 100% safe on all the major environments?