在处理客户提供代码的项目时,我偶尔会看到这种情况:
<script src="xx" type="xx">//</script>
我一直想知道这是否是正确的语法。
至少它不会打扰任何浏览器。但它严重扰乱了我的编辑器的语法高亮显示,因为它在注释掉时无法识别结束标记。
另一种风格是:
<script>
//some code
//</script>
我只知道这个防止代码泄露到页面:
<script>
//<!--
//some code
//-->
</script>
而且我完全不知道其他人想要阻止什么。
最佳答案
写<script src="xx" type="xx">//</script>
是形式上正确的语法,因为 HTML 文档被解析,处理 //
就像数据一样,然后丢弃该数据,因为该元素具有 src
属性。它当然也符合 JavaScript 语法,构成一个带有空注释的空程序。
//
但是,没有任何用处。非空注释是否有用是值得商榷的; HTML5 草案表明它可以,请参阅 Inline documentation for external script在那里。
使用 //</script>
形式上正确但无用。
搞砸了的语法荧光笔有一个错误(它没有被编程为正确解析 script
元素)。
构造类似于您提到的“防止代码泄漏到页面中”的构造,带有 <!--
和 -->
在脚本代码中,比无用的代码更糟糕。它们毫无用处,因为没有人再使用 Netscape 1。它们比无用更糟糕,因为人们在尝试使用它们时会犯打字错误(并且由于根据 XHTML 规则,类似评论的构造是评论并且可能会被浏览器删除)。此外,您提到的特定构造甚至无法在 Netscape 1 上发挥作用;它会使字符“//”出现在页面内容中。
关于javascript - 注释掉 <script> 结束标记。语法好不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10926091/