为什么在代码中打印console.log('</script>'),会出现报错信息?而在控制台中输入就没问题。

1,为什么在代码中打印 console.log('</script>')会出现错误,而在控制台中直接输入就不会报错?
2,在代码中打印console.log('<\/script>')代码,控制台输出是正常的?
请教。

阅读 4.6k
4 个回答

请看这么一个截图:

clipboard.png


从图中可以看出,开发工具提示有错,原因也很简单:

  • 因为在代码中,JS代码是写在script标签中的
  • <script>会在遇到第一个</script>时结束,因此会报错,但是在浏览器控制台中就不会出现此问题

解决办法就是使用转义: console.log('\<\/script>')

因为代码里不但会打印还会运行!你这样就会发生标签错误短缺,但是控制台是把它当字符串读取的!

图片描述

看到渲染效果也许就明白了。

因为你这是html文件中的代码。
你的这个html文件,首先是让浏览器的html解析引擎解析的。要知道,本身这个文件只是字符串序列,经过解析才会出来dom结构的。

假如给个字符串'<script> console.log('</script>')</script>',那就被解析成<script> console.log('</script>这一个标签和')</script>这段字符串了。

前面一个是script元素,因而浏览器就会将标签之间的内容传给js引擎解析并执行,明显的,里面的内容是语法错误。

推荐问题