我已閱讀字符串文字的詞法語法。我發現"\9"
和"\7"
都被認爲是無效的字符串文字。 但爲什麼alert("\9")
給9
而alert("\7")
是空的(我預計\7
)?爲什麼「 9」給「9」而「 7」爲空?
4
A
回答
3
\7
被解釋爲一個八進制串,併產生與ASCII值7.9的單個字符不適合在八進制的基礎上,因此,它被解釋爲一個普通字符。由於它沒有任何副作用,反斜槓被無聲地丟棄。
\XXX
與由最多三個八進制數字0
和377
之間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
})();
相關問題
- 1. 爲什麼'^ 9等於9?
- 2. 爲什麼-9認爲大於1?
- 3. 爲什麼-4 <= -4評估爲真,爲什麼9> = 9在Ruby中評估爲真?
- 4. javascript,IE 7-9
- 5. 爲什麼(!!)和(。)共享優先級9?
- 6. 爲什麼我們需要9補丁?
- 7. 爲什麼powershell堅持18小於9?
- 8. 爲什麼directx 9缺乏資源? C++
- 9. 爲什麼「3.5」.matches(「[0-9] +」)返回false?
- 10. ie6幀或模式爲ie 7/8/9?
- 11. Android - 爲什麼要使用cardview而不是9補丁
- 12. IndexError:索引9超出軸9的大小爲9的邊界
- 13. 降級爲ReSharper 9
- 14. 爲什麼Wordpress不能爲Internet Explorer 9分配<html id =「ei9」...?
- 15. TIdTCPServer多播(Indy 9 + Delphi 7)
- 16. 當Tomcat 7顯示時,爲什麼Java顯示Tomcat 9和7顯示爲灰色?
- 17. 什麼是「信號異常退出9:已殺死:9」是指
- 18. 爲什麼SwifyJSON dictionaryValue爲空?
- 19. 爲什麼'7'+ 4給出'74',而'7' - 4在JavaScript中給出3?
- 20. 這是什麼意思在C#y - = y> 9? 9:0;
- 21. [0-9] +和[0-9] ++之間的區別是什麼?
- 22. 爲什麼我的佈局僅在Firefox和IE8(而不是9)中打破?
- 23. Debian 9 openjdk-7-jre和openjdk-7-jre-headless
- 24. 數據類型規範'9(7)V9T'是什麼意思?
- 25. 腓轉換爲ISO-8859-9
- 26. 值被設置爲9
- 27. 匹配模式[0-9] - [0-9] - [0-9],但沒有匹配[0-9] - [0-9]
- 28. 爲什麼9-patch在壁紙上不起作用?
- 29. 爲什麼Eclipse/device中的.9.png看起來不像draw9patch.exe?
- 30. 爲什麼2-param drawImage比9-param更快?