javascript – 为什么脚本标签中的“”视为结束标签,但“hlo”不呈现任何内容?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 为什么脚本标签中的“”视为结束标签,但“hlo”不呈现任何内容?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1937字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 为什么脚本标签中的“”视为结束标签,但“hlo”不呈现任何内容?](/upload/InfoBanner/zyjiaocheng/788/231d46321d97442594dc90f0380bcd1f.jpg)
我正在读一本书然后我读了这一行: –
“HTML解析器不了解您的JavaScript代码;它将其视为任何其他文本”.所以,如果我们写:
<script type="text/javascript">
alert("first");
var string = "</script>";
</script>
我们收到错误,因为“< / script>”作为HTML解析器的结束标记,第二行< / script>作为脚本的关闭然后执行该脚本标记,并给出: –
Uncaught SyntaxError: Unexpected token ILLEGAL
即使第一个警报()没有执行?我不知道为什么?但我的主要问题是如果“< / script>”当我们写这样的东西时,作为标签对待:
var str = "<h1> hello world </h1>";
那么这不会在屏幕上呈现任何“你好世界”吗?根据前面的示例,HTML解析器也应该将该字符串视为HTML标记,但它没有?任何人都可以解释一下吗?抱歉英文不好:(
解决方法:
您应该了解浏览器的工作原理.如何呈现HTML和Javascript.这是一个很好的阅读How browsers work
下面的文字来自上面的链接.
标记化算法
算法的输出是HTML令牌.该算法表示为状态机.每个状态消耗输入流的一个或多个字符,并根据这些字符更新下一个状态.该决定受当前标记化状态和树构造状态的影响.这意味着相同的消耗字符将为正确的下一状态产生不同的结果,具体取决于当前状态.该算法太复杂而无法完全带来,所以让我们看一个简单的例子来帮助我们理解主体.
基本示例 – 标记以下HTML:
<html>
<body>
Hello world
</body>
</html>
初始状态是“数据状态”.当“<”遇到字符,状态变为“标记打开状态”.使用“a-z”字符会导致创建“开始标记令牌”,状态将更改为“标记名称状态”.我们待在这个状态直到“>”字符被消耗.每个字符都附加到新标记名称.在我们的例子中,创建的令牌是一个“html”令牌.
当“>”到达标记,发出当前标记,状态变回“数据状态”. “”标签将通过相同的步骤处理.到目前为止,发布了“html”和“body”标签.我们现在又回到了“数据状态”.使用“Hello world”的“H”字符将导致字符标记的创建和发出,这一直持续到“<”达到了“”.我们将为“Hello world”的每个字符发出一个字符标记.
我们现在又回到了“开放状态”.使用下一个输入“/”将导致创建“结束标记令牌”并移动到“标记名称状态”.我们再次保持这种状态,直到我们到达“>”.然后将发出新的标记令牌,然后我们返回“数据状态”. “”输入将被视为前一种情况.
这同样适用于< / script>标签也是.多数民众赞成如何运作.
内容总结
以上是互联网集市为您收集整理的javascript – 为什么脚本标签中的“”视为结束标签,但“hlo”不呈现任何内容?全部内容,希望文章能够帮你解决javascript – 为什么脚本标签中的“”视为结束标签,但“hlo”不呈现任何内容?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。