js轉義問題有不少場景,好比常見的根據某個字符串刪除或者修改以及將某字符串傳遞至某個頁面。
今天以一個簡單的示例代碼爲例:html
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>測試</title> </head> <body> <a href='#' onclick="test001(1)">測試001</a> <a href='#' onclick="test002(你好)">測試001</a> <script> function test001(id){ alert(id); } function test002(name){ alert(name); } </script> </body> </html>
頁面效果圖以下:測試
當我點擊測試001時,出現如圖:ui
顯然是符合預期結果的。spa
可是當我點擊測試002時,出現如圖:3d
什麼也沒有出現,因而我經過f12調試了一下,結果如圖:調試
顯示某某未定義code
那麼最終如何解決這個你好 is not defined問題???
一般出現未定義問題,是由於咱們用了這個變量,可是並無在對應的js文件中定義。htm
解決這個你好 is not defined問題,很簡單,只需加一個轉義符便可。blog
好比將:ip
<a href='#' onclick="test002(你好)">測試001</a>
修改成:
<a href='#' onclick="test002('\你好')">測試001</a>
接下來,點擊測試002,就能夠看到對應的效果,如圖:
那麼爲何會出現這個轉義問題?我搜了一些資料,可是仍然以爲很疑惑。