鍍金池/ 問答/HTML5  HTML/ 為什么在代碼中打印console.log('</script>'),

為什么在代碼中打印console.log('</script>'),會出現(xiàn)報錯信息?而在控制臺中輸入就沒問題。

1,為什么在代碼中打印 console.log('</script>')會出現(xiàn)錯誤,而在控制臺中直接輸入就不會報錯?
2,在代碼中打印console.log('</script>')代碼,控制臺輸出是正常的?
請教。

回答
編輯回答
莫小染
  1. 報錯了嗎?
  2. 報了什么錯
2017年9月26日 08:49
編輯回答
萌小萌

圖片描述

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

2017年2月23日 02:51
編輯回答
有你在

因為代碼里不但會打印還會運行!你這樣就會發(fā)生標簽錯誤短缺,但是控制臺是把它當字符串讀取的!

2017年7月24日 02:21
編輯回答
半心人

因為你這是html文件中的代碼。
你的這個html文件,首先是讓瀏覽器的html解析引擎解析的。要知道,本身這個文件只是字符串序列,經(jīng)過解析才會出來dom結構的。

假如給個字符串'<script> console.log('</script>')</script>',那就被解析成<script> console.log('</script>這一個標簽和')</script>這段字符串了。

前面一個是script元素,因而瀏覽器就會將標簽之間的內(nèi)容傳給js引擎解析并執(zhí)行,明顯的,里面的內(nèi)容是語法錯誤。

2018年8月24日 03:57
編輯回答
款爺

請看這么一個截圖:

clipboard.png


從圖中可以看出,開發(fā)工具提示有錯,原因也很簡單:

  • 因為在代碼中,JS代碼是寫在script標簽中的
  • <script>會在遇到第一個</script>時結束,因此會報錯,但是在瀏覽器控制臺中就不會出現(xiàn)此問題

解決辦法就是使用轉義: console.log('\<\/script>')

2017年6月28日 12:51