Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 评出<;脚本>;结束语。语法是否正确?_Javascript_Html_Syntax - Fatal编程技术网

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

从那以后,它很可能被货运邪教复制了很多次