我已閱讀字符串文字的詞法語法。我發現"\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個補丁命名爲9個補丁png圖像
- 3. 爲什麼-9認爲大於1?
- 4. 爲什麼sed -e's/[+ - ]?[0-9] * \。[0-9] * // g'不起作用?
- 5. 爲什麼「string」.to_i = 0,但是「9」.to_i = 9
- 6. 爲什麼-4 <= -4評估爲真,爲什麼9> = 9在Ruby中評估爲真?
- 7. 爲什麼powershell堅持18小於9?
- 8. 爲什麼「3.5」.matches(「[0-9] +」)返回false?
- 9. 爲什麼〜9返回-10 Python中
- 10. 爲什麼VFP代碼ENDIF- * 9工作
- 11. 爲什麼我們需要9補丁?
- 12. 爲什麼directx 9缺乏資源? C++
- 13. 爲什麼不鏈接在IE8/9
- 14. 爲什麼驗證碼失敗,即9
- 15. 爲什麼我必須殺死-9 neo4j?
- 16. 什麼是「overflow:scroll \ 9」或「height:100%\ 9」?
- 17. javascript,IE 7-9
- 18. ios 9 + Xcode 7
- 19. 爲什麼65.6 * 100%10等於9,而不是PHP中的0?
- 20. Android - 爲什麼要使用cardview而不是9補丁
- 21. ie6幀或模式爲ie 7/8/9?
- 22. IndexError:索引9超出軸9的大小爲9的邊界
- 23. sed:爲什麼「s/TR [0-9] * // 2g」工作,但不是「s/TR [0-9]。* // 2g」?
- 24. Xcode 9 - iOS 11 UITableView行爲空
- 25. IE 9顯示空
- 26. 降級爲ReSharper 9
- 27. 爲什麼Wordpress不能爲Internet Explorer 9分配<html id =「ei9」...?
- 28. xcode 7/iOS 9/iPhone 6 sim:爲什麼要在UITableView左側額外填充?
- 29. 什麼是「信號異常退出9:已殺死:9」是指
- 30. 當Tomcat 7顯示時,爲什麼Java顯示Tomcat 9和7顯示爲灰色?