js轉義問題有很多場景,比如常見的根據某個字符串刪除或者修改以及將某字符串傳遞至某個頁面。
今天以一個簡單的示例代碼為例:
<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時,出現如圖:
顯然是符合預期結果的。
但是當我點擊測試002時,出現如圖:
什么也沒有出現,於是我通過f12調試了一下,結果如圖:
顯示某某未定義
那么最終如何解決這個你好 is not defined問題???
通常出現未定義問題,是因為我們用了這個變量,但是並沒有在對應的js文件中定義。
解決這個你好 is not defined問題,很簡單,只需加一個轉義符即可。
比如將:
<a href='#' onclick="test002(你好)">測試001</a>
修改為:
<a href='#' onclick="test002('\你好')">測試001</a>
接下來,點擊測試002,就可以看到對應的效果,如圖:
那么為什么會出現這個轉義問題?
我搜了一些資料,但是仍然覺得很疑惑。