問題描述:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
console.log("</script>");
</script>
</body>
</html>
無法輸出,報錯:Uncaught SyntaxError: Invalid or unexpected token
。
這屬於是瀏覽器的BUG嗎?
結合瀏覽器看起解析,估計能明白,因為你要console的是一個script的結束標籤,瀏覽器在解析html標籤的時候,直接就把它當做結束標籤用了,這時候你會看到頁面上只顯示了
");
,餘下的本來是真正的結束標籤,被當做多餘處理掉了。類似情況還有
從解析標籤的角度來看,瀏覽器:「這鍋我不背」。
如果要正常顯示,可以 加轉義
瀏覽器核心的HTML解析器是一種「狀態機」的處理方式;
html解析原理
谷歌可以輸出