javascript - 为什么 <!-- 返回未定义而不是语法错误?

标签 javascript

html评论标签<!-- & -->返回 undefined当作为 js 命令运行时,我预计会出现语法错误。为什么会这样?

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

最佳答案

因为 <script>事后添加到 HTML 中,当时许多浏览器不承认脚本的存在,<!--实际上是 Javascript 语言规范的定义成员,并被视为“注释开始”。

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

<tag_which_does_not_exist>hi there</tag_which_does_not_exist>

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

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

会在支持脚本的浏览器中弹出一个 JS 警告,并会被不支持脚本的浏览器完全忽略。

另请注意 -->不是有效的 Javascript,这就是为什么它必须输入为 // --> 的原因. //是另一个JS单行注释,它注释掉否则无效的--> html 注释结束标记。

关于javascript - 为什么 &lt;!-- 返回未定义而不是语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22326678/

相关文章:

javascript - 如何从 Google 的可视化 API 生成的条形图中删除 x 轴?

javascript - 在 AngularJS 中为 jQuery 日期选择器动态设置最大限制

javascript - 函数 - 将元素 id 作为参数传递

javascript - 为什么正则表达式匹配很慢?

javascript - 在启用 Javascript 的情况下抓取网站?

javascript - "1"+"1"和 "1"- - "1"在 javascript 中的两个不同结果

JavaScript hasClass 忽略元素的类?

javascript - IE8 上的 JavaScript 对象不支持此属性或方法

javascript - Node.js 服务器不会在永远停止 0 上停止

javascript - video.js - 单击链接时更新视频源