【问题标题】:JavaScript Console Changing String TextJavaScript 控制台更改字符串文本
【发布时间】:2022-01-19 01:23:11
【问题描述】:

我只是在 microsoft edge 控制台中做一些事情,我注意到当我输入以下内容时:

str = "<script>"

它以字符串的值返回:

'<\script>'

为什么要加反斜杠?

【问题讨论】:

  • 如果你在声明它之后console.log(str),它将记录预期的、未转义的字符串(然后是undefined,评估console.log的结果)

标签: javascript console


【解决方案1】:

如果您在 HTML 文件的 &lt;script&gt; 块中写入字符串,它会按照您应该执行的方式对其进行格式化。在这些块中,您不应按字面意思写&lt;script&gt;&lt;/script&gt;,因为它们将被解析为块的开始或结束。转义字符会阻止它们被识别为那些 HTML 标记。

这和Why split the <script> tag when writing it with document.write()?有点关系

【讨论】:

  • 我认为这不是正确的答案。如果这是原因,那么它将适用于所有格式化为 HTML 的字符串,但事实并非如此。他只是将字符串值分配给 JavaScript 中的变量,而不是呈现任何 HTML。此外,Safari、Firefox 和 NodeJS 运行时都不会那样显示它。它仅在 Chrome 和 Edge(基于 Chromium)中。此外,在 Chrome 控制台中,当您执行 '&lt;script&gt;' === '&lt;\script&gt;' 时,它的计算结果为 true,这真的很奇怪。这是一个很好的问题,为什么 Chrome 会这样做。可能与安全有关。
  • 不,&lt;script&gt;&lt;/script&gt; 需要特殊处理。实际上,只有&lt;/script&gt; 会,但看起来 Edge 更加谨慎了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-10
  • 2016-03-04
  • 2022-01-16
  • 2020-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多