在JavaScript中评论

时间:2012-02-08 15:22:31

标签: javascript html comments

在以下代码中使用//的目的是什么?如果旧浏览器不支持javascript,那么符号<!-- -->将忽略js代码。如果浏览器支持JS,则将忽略这些符号<!-- -->。然后使用//符号。

<html>
<body>
<script type="text/javascript">
<!--
document.getElementById("demo").innerHTML=Date();
//-->
</script>
</body>
</html>  

5 个答案:

答案 0 :(得分:7)

  

如果旧浏览器不支持javascript,则符号<!-- -->将忽略js代码。

是的,假设HTML和“旧浏览器”的定义等于“Netscape 1时代”。 Don't use them today

  

如果浏览器支持JS,则会忽略这些符号<!-- -->

只有一半是真的。只有评论的开头是特殊的。来自the specification

  

JavaScript引擎允许字符串“<!--”出现在SCRIPT元素的开头,并忽略其他字符直到行尾。 JavaScript将“//”解释为开始延伸到当前行末尾的注释。这需要从JavaScript解析器中隐藏字符串“-->”。

答案 1 :(得分:4)

--是一个JavaScript运算符。它用于不混淆解析器。

你真的不再需要那些HTML评论,BTW。

答案 2 :(得分:1)

这是浏览器和JavaScript引擎始终实现的非标准功能。如今,它无法被删除,因为这会破坏向后兼容性。这是detailed in the JavaScript / Web ECMAScript spec

  

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

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

-->在一行的开头,可选地前面有空格或   MultiLineComment s,必须视为SingleLineComment -   相当于//

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

var x = 1;
/*
multiline comment!
x = 2;
*/ --> x = 3;
x; // 1

答案 3 :(得分:0)

答案 4 :(得分:0)

它们也被使用,以便旧版本的netscape不会出错:http://www.yourhtmlsource.com/javascript/basicjavascript.html