JS 和 HTML 中的單引號與雙引號


JS中的單引號與雙引號

HTML中的單引號與雙引號很簡單,就是兩個字符實體:
顯示      描述         實體名稱    實體編號
"     雙引號、引號      "      "
'     單引號、撇號      '      '
JS中的單引號和雙引號其實沒啥區別,看你自己習慣了。 但若雙引號中再使用雙引號,我們可采取 "外雙內單" 或者 "外單內雙" 的格式;如果需要的是雙引號本身,則只能是"外單內雙":
console.log("包'青'天");    //包'青'天
console.log('包"青"天');    //包"青"天
console.log("包"青"天");    //錯誤
或者像JAVA中那樣,用 反斜杠\ 來禁止解析雙引號:
console.log("包\"青\"天");    //包"青"天

一個容易混淆的地方

比如在一個網頁中的按鈕,寫onclick事件的處理代碼,不小心寫成如下:
<input type="button" onclick="alert("彈窗")" /> -------------------不正確
提示出錯后,再漫不經心地改為:
<input type="button" onclick="alert(\"彈窗\")" /> ----------------不正確
結果還是出錯。這時,我就想不通了,雖然我知道最直接的解決方法是寫成這樣:
<input type="button" onclick="alert('彈窗')" />  -------------------正確
<input type="button" onclick='alert("彈窗")' />  -------------------正確
但為什么JS中的轉義字符 \ 沒有效果了呢?

這是因為,這段代碼還是歸於HTML的管轄范圍,所以轉義字符應該使用HTML的,而不是javascript的:
<input type="button" onclick="alert(&quot;雙引號&quot;);" /> -------------------正確
<input type="button" onclick="alert(&quot;雙引號&#34;);" /> -------------------正確,【&quot;】和【&#34;】沒任何區別

<input type="button" onclick="alert(&apos;單引號&#39;);" /> -------------------正確

小結

注意,以下任何錯誤都不會對HTML解析造成影響,只是會影響JS功能(即不會執行alert方法)
<input value="外雙引號內雙引號-錯誤" type="button" onclick="alert("OK");" />
<input value="外單引號內單引號-錯誤" type="button" onclick='alert('OK');' />
<input value="反斜杠\+雙引號-錯誤" type="button" onclick="alert(\"OK\");" />
<input value="反斜杠\+單引號-錯誤" type="button" onclick='alert(\'OK\');' />

<input value="連續兩個雙引號-錯誤" type="button" onclick='alert(""OK"");' />
<input value="連續兩個單引號-錯誤" type="button" onclick="alert(''OK'');" />

<input value="外雙引號內單引號-OK" type="button" onclick="alert('OK');" />
<input value="外單引號內雙引號-OK" type="button" onclick='alert("OK");' />
<input value="外部不使用任何引號-OK" type="button" onclick=alert('OK'); />
<input value="外部不使用任何引號-OK" type="button" onclick=alert("OK"); />
2018-4-15





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM