2013-03-14 163 views

回答

3

\7被解釋爲一個八進制串,併產生與ASCII值7.9的單個字符不適合在八進制的基礎上,因此,它被解釋爲一個普通字符。由於它沒有任何副作用,反斜槓被無聲地丟棄。

https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Values,_variables,_and_literals#Using_special_characters_in_strings參見:

\XXX與由最多三個八進制數字0377之間XXX指定的Latin-1編碼的字符。例如,\251是版權符號的八進制序列。

4

alert("\7")不給你一個空字符串,它可以讓你用文字7.字符串這是因爲你在測試它的瀏覽器延伸的字符串常量的定義,以允許八進制字符如Section B.1.2 of the spec中所述逃脫。

由於9不是八進制數字,因此\9不會被解釋爲八進制字符轉義序列,因此反斜槓會自動丟棄。

注意,在一個符合標準的實現,如果你是在嚴格模式下,alert("\7")將不能工作,因爲你可以使用Chrome,Firefox或支持嚴格模式另一個瀏覽器在這裏看到:Live Copy | Source

(function() { 
    "use strict"; 

    alert("\7"); // fails 
})(); 
相關問題