【问题标题】:Why use "//-->" in javascript为什么在javascript中使用“//-->”
【发布时间】:2011-03-23 06:03:20
【问题描述】:

我已经看到这个标签在 javascript 函数之后使用了十多年,从来没有问过为什么。在这段时间我看过的大多数教程中都可以看到它,但我通常将其省略......它似乎并没有以某种方式产生影响。谁能告诉我为什么要使用它?

如果只是为了表示一个 javascript 函数的结束,那么右大括号是否就足够了?如果是一系列函数,则使用结束脚本标签。

我怀疑我需要一个示例,但对于所有其他也想知道它的用途的读者,这里有一些代码:



function helloWorld() {
   document.write('Hello World');
}
//-->

提前致谢!

【问题讨论】:

  • 正如@del.ave 在他的回答中指出的那样,一个相关的做法是在 cmets 中使用 CDATA,我过去不得不使用它,以便我的 XHTML 中的 JavaScript 通过验证。

标签: javascript javascript-framework


【解决方案1】:

这是从不支持 JS 的浏览器相当普遍的时代开始的。如果您将 JS 代码直接包含在 HTML 文件中,您将在代码周围包含 HTML 注释标记 (<!-- -->),这样那些浏览器就不会将其显示为页面的一部分。 // --> 的原因是 支持 JS 的浏览器不会尝试将结束 HTML 注释解释为 JS 代码的一部分。

【讨论】:

  • 非常感谢!很抱歉没有尽快回复。
【解决方案2】:

过去,一些浏览器不处理 javascript,因此为避免错误,您可以将 javascript 代码放在 HTML 注释块“”中。

今天,XHTML 标准说你应该像这样转义你的脚本

<script type="text/javascript">
<![CDATA[
... unescaped script content ...
]]>
</script>

对于 HTML,您不必这样做。参考:

http://www.w3.org/TR/xhtml1/
http://www.w3schools.com/tags/tag_script.asp

【讨论】:

  • 非常感谢;这就是我一直在寻找的答案。我很抱歉没有尽快回复你。 =)
【解决方案3】:

就是把代码注释掉,这样不支持JS的旧版浏览器就看不到了。
这在现在可能几乎没用了。

请注意,它还需要在开头添加&lt;!-- 才能使其成为评论。

阅读:http://lachy.id.au/log/2005/05/script-comments

【讨论】:

  • 教程并没有告诉我这是没用的,让我想知道如何在非 js 浏览器中隐藏脚本开头的两个斜杠,如//&lt;!-- script... //--&gt;非 js 浏览器除了向用户显示它并破坏我原本精彩的页面(在黄色背景上有字幕和其他酷红色文本)之外,还能做什么?
【解决方案4】:

如果您注意到,您通常还可以在脚本前看到&lt;!--

使用该语法,因此不支持 Javascript 的浏览器将忽略这些脚本的正文。

实际上,在html中,任何被&lt;!----&gt;包围的东西都被认为是评论

【讨论】:

    【解决方案5】:

    如果您正在验证您的 html 代码,它也很有用,因此 js 不会显示为无效的 html 标记。然而,正如每个人都提到的,它已经相当过时了。我个人尝试永远不要使用内联 javascript,总是在可以缓存的外部文件中,这使得这种编码风格毫无用处

    【讨论】:

      【解决方案6】:
      1. 对于不理解 JavaScript 或手动关闭 JavaScript 的浏览器,这些开始 &lt;!-- 和结束 html_comment_tags --&gt; 将有助于将脚本 &gt; / ? &lt; &amp; ^ % # ) ! - ( 中的 bad_data 注释掉
      2. 如果浏览器理解 javascripts,它不会解析最后一个 comment_ending 标签--&gt;,因为 // 放在 html_comment_end 标签--&gt; 之前,如果浏览器不理解 // javascript 的注释标签的含义(仅仅是因为 jscript 已关闭)然后它显然会以通常的方式解析 --&gt; 并删除 &lt;script&gt;&lt;/script&gt; 内的所有内容,包括 //

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-22
        • 1970-01-01
        • 1970-01-01
        • 2013-01-28
        • 2017-07-09
        • 1970-01-01
        • 2020-04-29
        • 2019-03-11
        相关资源
        最近更新 更多