【问题标题】:Why does <!-- return undefined and not a syntax error?为什么 <!-- 返回 undefined 而不是语法错误?
【发布时间】:2014-04-15 02:54:26
【问题描述】:

当作为 js 命令运行时,html 注释标签 &lt;!-- 和 --&gt; 返回 undefined,我预计会出现语法错误。为什么会这样?

我在DoubleClick ... (download 链接)中偶然发现了这一点。

【问题讨论】:

标签: javascript


【解决方案1】:

因为&lt;script&gt;是事后才添加到HTML中的,而且当时很多浏览器都不承认脚本的存在,&lt;!--实际上是Javascript语言规范的定义成员,被视为“开始评论”。

请记住,默认情况下,浏览器会忽略它们不理解的标签,因此

<tag_which_does_not_exist>hi there</tag_which_does_not_exist>

实际上会在浏览器中显示“hi there”。对于不知道脚本的浏览器,这意味着它们实际上会将 JS 代码显示为文档中的文本。所以..

<script>
<!--
alert('hi there');
// --> 
</script>

会在支持脚本的浏览器中弹出 JS 警报,并且会被不了解脚本的浏览器完全忽略。

还要注意--&gt; 不是有效的Javascript,这就是为什么它必须输入为// --&gt;。 // 是另一个 JS 单行注释,它消除了原本无效的 --&gt; html 注释结束标记。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 2018-12-18
    相关资源
    最近更新 更多