在JavaScript中做什么 - >做什么?

Hyd*_*mal 5 javascript comments

我无法在任何书籍,手册或网站中找到对此声明的任何引用.据我所知,它的功能与//评论完全相同.例如:

console.log("1");
--> console.log("2");
console.log("3");
Run Code Online (Sandbox Code Playgroud)

将打印

1
3
Run Code Online (Sandbox Code Playgroud)

是什么我很好奇究竟之间有什么区别-->//,如果存在的话,也是为什么-->似乎从所有的JavaScript引用我见过完全没有-我都发现了它的唯一原因是因为我不小心将其键入Adobe Dreamweaver,并将其突出显示为注释.谢谢!

编辑:这是一个功能jsFiddle演示行为.

编辑2:我进一步测试了,我发现了一些东西.

  • 这只适用于正好有两个短划线的情况.->--->会抛出错误.
  • 这仅适用于"大于"符号.--<会抛出错误.
  • 这不适用于行的中间或末尾.console.log("1"); --> console.log("2");会抛出错误.

tom*_*tom 6

我的猜测是,JavaScript引擎一如既往地宽容,默默地忽略了这一行,因为它看起来像HTML注释的结尾(<!-- -->).HTML中内嵌的JavaScript历来包含在HTML注释中,因此不支持JavaScript的浏览器不会尝试解析它.


编辑:

我做了一些研究,情况确实如此.

来自V8的scanner.cc:

如果在行的开头有一个HTML注释结尾' - >'(前面只有空格),我们将该行的其余部分视为注释.这与SpiderMonkey处理它的方式一致.

来自Rhino的Comment.java:

JavaScript实际上有五种注释类型:

  1. // line comments
  2. /* block comments */
  3. /** jsdoc comments */
  4. <!-- html-open line comments
  5. ^\s*--> html-close line comments

Java程序员应该熟悉前三个.JsDoc注释实际上只是块注释,其中包含有关注释分隔符中格式的一些约定.线条和块注释在Ecma-262规范中描述.

请注意,-->注释不是 Ecma-262规范的一部分.