为什么HTML注释打开阻止有效的JavaScript?

Dan*_*vak 2 javascript theory

在一些旧代码中,我找到了一个JavaScript文件,其中包含HTML注释的内容.

我理解在旧浏览器中这样做的原因,但不知道它是如何以任何方式有效的JavaScript.

表达<!--undefined在Chrome和IE浏览器的控制台.

这是一个特殊情况,由解释器(http://javascript.about.com/library/blhtmcmt.htm)处理,仍然在ECMAScript标准中定义并在现代浏览器中工作,或者这些符号的组合是否恰巧产生某些东西那是undefined

我把它读成"少于不减量"之类的东西,这似乎是没有操作数的荒谬.其中任何一个本身都会返回语法错误.

我知道"严格使用"之类的原因; 是有效的,但什么都不做,但我不知道这个代码实际上做了什么.

我可能会过度思考它,但想了解发生了什么

Mat*_*ens 8

这是浏览器和JavaScript引擎始终实现的非标准功能.如今,它无法从Web平台中删除,因为这会破坏向后兼容性.它JavaScript/Web ECMAScript规范中有详细说明:

<!--必须被视为a的开头SingleLineComment- 相当于//.

var x = true;
<!-- x = false; // note: no syntax error
x; // true
Run Code Online (Sandbox Code Playgroud)

-->在行的开头,可选地以空格或MultiLineComments 开头 ,必须被视为SingleLineComment- 等效于//.

var x = true;
--> x = false; // note: no syntax error
x; // true

var x = 1;
/*
multiline comment!
x = 2;
*/ --> x = 3;
x; // 1
Run Code Online (Sandbox Code Playgroud)