Javascript 评出<;脚本>;结束语。语法是否正确?
在处理客户提供代码的项目时,我偶尔会看到这一点:Javascript 评出<;脚本>;结束语。语法是否正确?,javascript,html,syntax,Javascript,Html,Syntax,在处理客户提供代码的项目时,我偶尔会看到这一点: <script src="xx" type="xx">//</script> // 我一直想知道这是否是正确的语法。 它至少不会打扰任何浏览器。但它把我的编辑器的语法高亮显示搞得一团糟,因为它在注释掉时无法识别结束标记 另一种味道是: <script> //some code //</script> //一些代码 // 我只知道这个是为了防止代码泄漏到页面中: <script&g
<script src="xx" type="xx">//</script>
//
我一直想知道这是否是正确的语法。它至少不会打扰任何浏览器。但它把我的编辑器的语法高亮显示搞得一团糟,因为它在注释掉时无法识别结束标记 另一种味道是:
<script>
//some code
//</script>
//一些代码
//
我只知道这个是为了防止代码泄漏到页面中:
<script>
//<!--
//some code
//-->
</script>
//
我完全不知道其他人想要阻止什么。这仍然是一个有效的javascript行。 这是一条空白评论
//</script>
//
所以浏览器不会有任何问题。
如果您的语法highlighter无法识别它,那就是语法highlighter的错误
是的,我同意如果代码结尾没有空白注释,阅读起来会容易得多。这没关系,因为双斜杠注释JavaScript代码。因为脚本是一个HTML标记,所以不会有任何效果。编写
/
的语法形式正确,因为HTML文档被解析,将/
视为数据,然后丢弃该数据,因为元素具有src
属性。当然,它也将符合JavaScript语法,构成一个带有空注释的空程序
不过,/
没有任何用处。一个非空的评论是否有用还有争议;HTML5的草案表明,它可以,看看那里有什么
使用/
在形式上是正确的,但毫无用处
一个被弄乱的语法高亮显示程序有一个bug(它没有被正确地编程来解析脚本元素)
像您提到的“防止代码泄漏到页面”这样的结构,在脚本代码中包含
,比无用的代码更糟糕。它们是无用的,因为没有人再使用Netscape 1了。因为人们在尝试使用它们时会犯键入错误(而且根据XHTML规则,类似注释的构造是注释,可能会被浏览器删除),所以它们比无用还要糟糕。除此之外,你提到的特定构造甚至不会在Netscape 1上起作用;它会使字符“/”出现在页面内容中。我猜,/
最初是在从XML生成HTML页面时完成的,其中,/
提供了一些空但具体的内容,以阻止XML序列化程序将脚本标记折叠为一个自动关闭标记
,该标记是OK XML,但不好的HTML
从那以后,它很可能被货运邪教复制了很多次