W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
唯一的全局對象建立在控制進入任何執(zhí)行環(huán)境之前。
除非另外指明,全局對象的標準內(nèi)置屬性擁有特性 {[[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true}。
全局對象沒有 [[Construct]] 內(nèi)部屬性 ; 全局對象不可能當做構(gòu)造器用 new 運算符調(diào)用。
全局對象沒有 [[Call]] 內(nèi)部屬性,全局對象不可能當做函數(shù)來調(diào)用。
全局對象的 [[Prototype]] 和 [[Class]] 內(nèi)部屬性值是依賴于實現(xiàn)的。
除了本規(guī)范定義的屬性之外,全局對象還可以擁有額外的宿主定義的屬性。全局對象可包含一個值是全局對象自身的屬性;例如,在 HTML 文檔對象模型中全局對象的 window 屬性是全局對象自身。
NaN 的值是 NaN(見 8.5)。這個屬性擁有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。
Infinity 的值是 +∞(見 8.5)。這個屬性擁有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。
undefined 的值是 undefined(見 8.1)。這個屬性擁有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。
當用一個參數(shù) x 調(diào)用 eval 函數(shù),采用如下步驟:
一個 eval 函數(shù)的直接調(diào)用是表示為符合以下兩個條件的 CallExpression:
解釋執(zhí)行 CallExpression 中的 MemberExpression 的結(jié)果是個 引用 ,這個引用擁有一個 環(huán)境記錄項 作為其基值,并且這個引用的名稱是 "eval"。
以這個 引用 作為參數(shù)調(diào)用 GetValue 抽象操作的結(jié)果是 15.1.2.1 定義的標準內(nèi)置函數(shù)。
parseInt 函數(shù)根據(jù)指定的參數(shù) radix,和 string 參數(shù)的內(nèi)容解釋結(jié)果來決定,產(chǎn)生一個整數(shù)值。string 開頭的空白會被忽略。如果 radis 是 undefined 或 0,假定它是 10,除非數(shù)字是以字符對 0x 或 0X 開頭的,這時假定 radix 是 16。如果 radix 是 16,數(shù)字開頭的字符對 0x 或 0X 是可選的。
當調(diào)用 parseInt 函數(shù)時,采用以下步驟:
parseInt 可以只把 string 的開頭部分解釋為整數(shù)值;它會忽略所有不能解釋為整數(shù)記法的一部分的字符,并且沒有指示會給出任何這些忽略的字符。
parseFloat 函數(shù)根據(jù) string 參數(shù)的內(nèi)容解釋為十進制字面量的結(jié)果來決定,產(chǎn)生一個數(shù)值。
當調(diào)用 parseFloat 函數(shù),采用以下步驟:
parseFloat 可以只把 string 的開頭部分解釋為數(shù)值;它會忽略所有不能解釋為數(shù)值字面量記法的一部分的字符,并且沒有指示會給出任何這些忽略的字符。
如果指定參數(shù)為 NaN,則返回 true,否則返回 false。
一個用 ECMAScript 代碼來測試值 X 是否是 NaN 的方式是用 X !== X 表達式。當且僅當 X 是 NaN 時結(jié)果才是 true。
如果指定參數(shù)為 NaN 或 +∞或?∞,則返回 false,否則返回 true。
統(tǒng)一資源標識符,或叫做 URI,是用來標識互聯(lián)網(wǎng)上的資源(例如,網(wǎng)頁或文件)和怎樣訪問這些資源的傳輸協(xié)議(例如,HTTP 或 FTP)的字符串。除了 15.1.3.1, 15.1.3.2, 15.1.3.3,15.1.3.4 說明的用來編碼和解碼 URI 的函數(shù)之外 ECMAScript 語言自身不提供任何使用 URL 的支持。
許多 ECMAScript 實現(xiàn)提供額外的函數(shù),方法來操作網(wǎng)頁;這些函數(shù)超出了本標準的范圍。
一個 URI 是由組件分隔符分割的組件序列組成。其一般形式是:
Scheme : First / Second ; Third ? Fourth
其中斜體的名字代表組件;“:”, “/”, “;”,“?”是當作分隔符的保留字符。encodeURI 和 decodeURI 函數(shù)操作的是完整的 URI;這倆函數(shù)假定 URI 中的任何保留字符都有特殊意義,所有不會編碼它們。encodeURIComponent 和 decodeURIComponent 函數(shù)操作的是組成 URI 的個別組件;這倆函數(shù)假定任何保留字符都代表普通文本,所以必須編碼它們,所以它們出現(xiàn)在組成一個完整 URI 的組件里面時不會解釋成保留字符了。
以下詞法文法指定了編碼后 URI 的形式。
語法
uri ::: uriCharactersopt
uriCharacters ::: uriCharacter uriCharactersopt
uriCharacter ::: uriReserved uriUnescaped uriEscaped
uriReserved ::: one of ; / ? : @ & = + $ ,
uriUnescaped ::: uriAlpha DecimalDigit uriMark
uriEscaped ::: % HexDigit HexDigit
uriAlpha ::: one of a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
uriMark ::: one of - _ . ! ~ * ' ( )
以上語法是基于 RFC 2396 的,并且較新的 RFC 3986 引入的更改沒有反應(yīng)在這里。
當 URI 里包含一個沒在上面列出的字符或有時不想讓給定的保留字符有特殊意義,那么必須編碼這個字符。字符被轉(zhuǎn)換成 UTF-8 編碼,首先從 UT F-16 轉(zhuǎn)換成相應(yīng)的代碼點值的替代對。(注:在 [0,127] 范圍的代碼單元在單字節(jié)中具有相同返回值。)然后返回的字節(jié)序列轉(zhuǎn)換為一個字符串,每個字節(jié)用一個“%xx”形式的轉(zhuǎn)移序列表示。
描述編碼和轉(zhuǎn)義過程的抽象操作 Encode 需要兩個字符串參數(shù) string 和 unescapedSet。
描述反轉(zhuǎn)義和解碼過程的抽象操作 Decode 需要兩個字符串參數(shù) string 和 reservedSet。
統(tǒng)一資源標識符的語法由 RFC 2396 給出,這里并沒有反應(yīng)更新的替換了 RFC 2396 的 RFC 3986。RFC 3629 給出了實現(xiàn) UTF-8 的正式描述。
在 UTF-8 中,用 1 到 6 個字節(jié)的序列來編碼字符。只有“序列”中高階位設(shè)置為 0 的字節(jié),其余的 7 位才用于編碼字符值。在一個 n 個字節(jié)的序列中,n>1,初始字節(jié)有 n 個設(shè)置為 1 的高階位,其后的位設(shè)置為 0。這個字節(jié)的其他位包含是用來編碼字符的比特。后面跟著的其字節(jié)都包含設(shè)定為 1 的高階位,并且都跟著設(shè)定為 0 的位,剩下的 6 位都用作編碼字符。表 21 指定了 ECMAScript 字符可能的 UTF-8 編碼。
UTF-8編碼字符編碼值 | 表示 | 第1十六進制位 | 第2六進制位 | 第3十六進制位 | 第4十六進制位 |
---|---|---|---|---|---|
0x0000 - 0x007F | 00000000 0zzzzzzz | 0zzzzzzz | |||
0x0080 - 0x07FF | 00000yyy yyzzzzzz | 110yyyyy | 10zzzzzz | ||
0x0800 - 0xD7FF | xxxxyyyy yyzzzzzz | 1110xxxx | 10yyyyyy | 10zzzzzz | |
0xD800 - 0xDBFF 后跟 0xDC00 - 0xDFFF | 110110vv vvwwwwxx后跟110111yy yyzzzzzz | 11110uuu | 10uuwwww | 10xxyyyy | 10zzzzzz |
0xD800 - 0xDBFF 后無 0xDC00 - 0xDFFF | 導(dǎo)致URIError | ||||
0xDC00 - 0xDFFF | 導(dǎo)致URIError | ||||
0xE000 - 0xFFFF | xxxxyyyy yyzzzzzz | 1110xxxx | 10yyyyyy | 10zzzzzz |
在這里
uuuuu = vvvv + 1
來訪問附加的作為代理項的 0x10000,在 Unicode 標準 3.7 章節(jié)。
0xD800-0xDFFF 范圍的代碼單元值用來編碼代理對;如上將 UTF-16 代理對轉(zhuǎn)換組合成一個 UTF-32 表示,并編碼 UTF-8 值的 21 位結(jié)果。解碼重建代理對。
RFC 3629 禁止對無效 UTF-8 字節(jié)序列的解碼。例如,無效序列 C0 80 不能解碼成字符 U+0000。當 Decode 算法的實現(xiàn)遇到這樣的無效序列必須拋出一個 URIError 異常。
decodeURI 函數(shù)計算出一個新版 URI,將 URI 中可能是 encodeURI 函數(shù)引入的每個轉(zhuǎn)義序列和 UTF-8 編碼組替換為代表它們的字符。不是 encodeURI 導(dǎo)入的轉(zhuǎn)義序列不會被替換。
當以一個參數(shù) encodedURI 調(diào)用 decodeURI 函數(shù),采用如下步驟:
"#" 字符不會從轉(zhuǎn)義序列中解碼,即使它不是 URI 保留字符。
decodeURIComponent 函數(shù)計算出一個新版 URI,將 URI 中可能是 encodeURIComponent 函數(shù)引入的每個轉(zhuǎn)義序列和 UTF-8 編碼組替換為代表它們的字符。
當以一個參數(shù) encodedURIComponent 調(diào)用 decodeURIComponent 函數(shù),采用如下步驟:
encodeURI 函數(shù)計算出一個新版 URI,將 URI 中某些字符的每個實例替換為代表這些字符 UTF-8 編碼的一個,兩個或三個轉(zhuǎn)義序列。
當以一個參數(shù) uri 調(diào)用 encodeURI 函數(shù),采用如下步驟:
字符 "#" 不會被編碼為一個轉(zhuǎn)義序列,即使它不是 URI 保留字符或非轉(zhuǎn)義字符。
encodeURIComponent 函數(shù)計算出一個新版 URI,將 URI 中某些字符的每個實例替換為代表這些字符 UTF-8 編碼的一個,兩個或三個轉(zhuǎn)義序列。
當以一個參數(shù) uriComponent 調(diào)用 encodeURIComponent 函數(shù),采用如下步驟:
見 15.2.1 和 15.2.2.
見 15.3.1 和 15.3.2
見 15.4.1 和 15.4.2.
見 15.5.1 和 15.5.2.
見 15.6.1 和 15.6.2.
見 15.7.1 和 15.7.2.
見 15.9.2.
見 15.10.3 和 15.10.4.
見 15.11.1 和 15.11.2.
見 15.11.6.1.
見 15.11.6.2.
見 15.11.6.3.
見 15.11.6.4.
見 15.11.6.5.
見 15.11.6.6.
見 15.8.
見 15.12.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: