在以下代码中使用//
的目的是什么?如果旧浏览器不支持javascript,那么符号<!-- -->
将忽略js代码。如果浏览器支持JS,则将忽略这些符号<!-- -->
。然后使用//
符号。
<html>
<body>
<script type="text/javascript">
<!--
document.getElementById("demo").innerHTML=Date();
//-->
</script>
</body>
</html>
答案 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