代碼 alert("abc"); 彈出框顯示字面文本 abc,而非預期的 abc。
a 是 HTML 實體編碼(數字實體),僅在 HTML 解析階段由瀏覽器轉換為對應字符 a。alert 直接接收原始字符串。在 JavaScript 中直接使用 Unicode 轉義序列:
alert("\u0061bc"); // \u0061 為 'a' 的 Unicode 編碼
// 或直接寫字符
alert("abc");
若從 HTML 屬性或內容中獲取包含實體的字符串,需先經過 HTML 解析(如設置 innerHTML 再讀取 textContent),或使用現成庫(如 he)解碼實體。
理解 HTML 實體與 JavaScript 字符串的處理時機差異,避免此類困惑。