字符串轉義問題

我一直以爲,console 能保證所見即所得,所以我一向喜歡用console完成簡單的調試,然而本週我被坑了,其原因就是字符串轉義。

先說爲什麼需要字符串轉義,簡單的說就是在某些特殊情況下(比如說字符串裏套字符串,比如說正則表達式中用一些有着特定含義的字符),然而轉義的時候,你打印出來的結果和你輸入進去那個,多半不是同一個,我們可以看一個例子

可以很清楚的看到,我輸入的時候有兩個反斜槓,而輸出時候就沒了,當我直接用輸出的值的時候,必然會直接報錯。

而這個變量可以被JSON解析,也就是說,當字符串被JSON化的時候,也會出現轉義的情況

你可能要說,沒有反斜槓啊?那是不是說明沒有轉義?

答案還是轉義了,因爲我們可以看到"出現了四個,但是第1個和第2個卻不成對,這是因爲第2個被轉義了

那爲什麼沒有看到反斜槓呢?

還是之前那個問題,console的時候字符串轉義已經生效了,\"變成了一個單純的字符",而不是具有語法意義的",所以我們沒有看到"。從某種程度上講,console確實是把反斜槓吃掉了。

 

所以要警惕這一點,console並不能保證所見即所得,至少設計轉義的時候是這樣的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章