主要观点:这段代码会打印出1
。-->
在一行的开头(且仅在开头)开始一个注释,代码被解析为x = 1; x; // 0
,浏览器显示最后一个表达式的值即1
。这是一个遗留的技巧,早期浏览器会将<script>
内容视为普通文本,为确保优雅降级,开发者会用<!--
和-->
包裹脚本,现在所有现代浏览器都识别<script>
,2015 年标准将<!--
和-->
作为合法注释标记,<!--
和-->
像//
一样是行注释,-->
仅在行首有效,<!--
可在行中任何位置,现代浏览器和 Node、Electron 都支持此语法,纯文本浏览器如 Lynx 会忽略<script>
内容但会识别该标签。
关键信息:x = 1
赋值,x; // 0
中// 0
被视为注释,现代浏览器对<script>
的处理变化,<!--
和-->
的语法规则及支持情况,Lynx 对<script>
的处理。
重要细节:Netscape Navigator 2 引入 JavaScript 和<script>
标签,旧浏览器将<script>
内容视为普通文本,开发者用<!--
包裹脚本,2015 年标准添加<!--
和-->
,现代浏览器要求支持此语法,Node 和 Electron 共享 Chromium 的 v8 引擎,纯文本浏览器 Lynx 会忽略<script>
内容但识别标签等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。