跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • javascript 字符串不能包含尖括号吗?
未分類
14 2 月 2020

javascript 字符串不能包含尖括号吗?

javascript 字符串不能包含尖括号吗?

資深大佬 : onice 18

var html = "<script></script>"; 

这行总是报错,把第二个<去掉就不报错了。为什么呢?尖括号不需要转义的啊??

javascript 字符串不能包含尖括号吗?

大佬有話說 (12)

  • 資深大佬 : longgediyi999

    “

  • 資深大佬 : longgediyi999

    建议先去学一波 es6

  • 資深大佬 : littleylv

    .. javascript 字符串不能包含尖括号吗?

  • 資深大佬 : ksedz

    vs 提示的问题,代码没错误
    最近我也遇到了,看着不爽

  • 資深大佬 : mercury233

    html 里</script>优先闭合脚本标签,部分浏览器看到的只有半截 js

  • 資深大佬 : lsvih

    ide 的问题吧

  • 資深大佬 : SunriseFox

    不是 JavaScript 的问题,而是 XML 的问题
    不是不能包含尖括号,而是 </script> 闭合了 <script>

    = =

    你这个代码被解析后就是

    <script>… ‘ … </script>

    ‘

    </script>

    当然是不行了… 需要转义为 </script>

  • 資深大佬 : libook

    5 和 7 是正解。
    HTML 引擎和 JS 引擎是两个独立的引擎,HTML 源码会由 HTML 引擎优先解析,解析到 script 标签的时候,HTML 引擎会把<script>和后面第一个遇到的</scriipt>字符串之间的字符串交给 JS 引擎来解析。
    虽然你的</script>在 JS 的字符串值内部,但对于 HTML 引擎来说,它并不认识 JS 代码,它就只是憨憨地在<script>后面找第一个遇到的</script>字符串。这样的话你的代码里,截取<script>到第一个</script>字符串之间的不是一段有效的 JS 代码,而之外的也不是有效的 HTML 代码。

    举例:
    源代码是:

    <script>
    html='<script></script>’
    </script>

    HTML 引擎交给 JS 引擎解析的是:

    html='<script>

    上面 JS 字符串缺失后面的引号,所以不是合法的 JS,HTML 留下的代码是:

    ‘
    </script>

    首先第一行留下一个残缺的单引号,所以 HTML 就认为这是一段 text,就直接输出这个单引号字符;同时因为在</script>之前没有与之配对的<script>起始标签,所以后面这个闭合标签是不合法的 HTML 。

  • 資深大佬 : xmadi

    编辑器识别的问题 换一个

  • 資深大佬 : yafoo

    以前”</scr”+”ipt>”这样写过代码

  • 主 資深大佬 : onice

    @libook 感谢解答。

  • 資深大佬 : otakustay

    最简单的是</script>就行了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具