W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
7.1:Unicode 格式控制字符在受到處理之前不再從 ECMAScript 源文本中剝離。在第五版中,如果這樣一個字符在字符串字面量或者正則表達(dá)式字面量中出現(xiàn),這個字符會被合并到字面量中,而在第三版里,這個字符不會被合并。
7.2:Unicode 字符 <BOM> 現(xiàn)在是作為空格使用,如果它出現(xiàn)在本該是一個標(biāo)識符的位置的中間,則會產(chǎn)生一個語法錯誤,而在第三版里不會。
7.3:換行符以前是作為轉(zhuǎn)義字符處理,而現(xiàn)在允許換行符被包含在字符串字面量標(biāo)記中。這在第三版中會產(chǎn)生一個語法錯誤。
7.8.5:現(xiàn)在的正則表達(dá)式字面量在字面量解析執(zhí)行的時候都會返回一個唯一的對象。這個改變可以被任意測試字面量值的對象 ID 或者一些敏感的副作用的程序檢測到。
7.8.5:第五版要求提前拋出任意可能的正則表達(dá)式結(jié)構(gòu)錯誤,這些結(jié)構(gòu)錯誤會在將正則表達(dá)式字面量轉(zhuǎn)換成正則表達(dá)式對象的時候產(chǎn)生。在第五版之前的實現(xiàn)允許延遲拋出 [TypeError],直到真正執(zhí)行到這個對象。
7.8.5:在第五版中,未轉(zhuǎn)義的 "/" 字符可以作為 CharacterClass 存在于正則表達(dá)式字面量中。在第三版里,這樣的字符是作為字面量的最后一個字符存在。
10.4.2:在第五版中,間接調(diào)用 eval 函數(shù)會將全局對象作為 執(zhí)行代碼 的變量環(huán)境和 詞法環(huán)境 。在第三版中,[eval] 函數(shù)的間接調(diào)用者的變量和 詞法環(huán)境 是作為 執(zhí)行代碼 的環(huán)境使用。
15.4.4:在第五版中,所有 Array.prototype 下的方法都是通用的。在第三版中,toString 和 toLocaleString 方法不是通用的,如果被非 Array 實例調(diào)用時會拋出一個 TypeError 的異常。
10.6:在第五版中,argument 對象與實際的參數(shù)符合,它的數(shù)組索引屬性是可枚舉的。在第三版中,這些屬性是不可枚舉的。
10.6:在第五版中,一個 arguments 對象的 Class 內(nèi)置屬性值是“Arguments”。在第三版中,它是“Object”。當(dāng)對 argument 對象調(diào)用toString 的時候
12.6.4:當(dāng) in 表達(dá)式執(zhí)行一個 null 或者 undefined 時 ,for-in 語句不再拋出 TypeError。取而代之的是將其作為不包含可枚舉屬性的對象執(zhí)行。
15:在第五版中,下面的新屬性都是在第三種中已存在的內(nèi)建對象中定義,Object.getPrototypeOf, Object.getOwnPropertyDescriptor, Object.getOwnPropertyNames, Object.create, Object.defineProperty, Object.defineProperties, Object.seal, Object.freeze, Object.preventExtensions, Object.isSealed, Object.isFrozen, Object.isExtensible, Object.keys, Function.prototype.bind, Array.prototype.indexOf, Array.prototype.lastIndexOf, Array.prototype.every, Array.prototype.some, Array.prototype.forEach, Array.prototype.map, Array.prototype.filter, Array.prototype.reduce, Array.prototype.reduceRight, String.prototype.trim, Date.now, Date.prototype.toISOString, Date.prototype.toJSON。
15:實現(xiàn)現(xiàn)在要求忽略內(nèi)建方法中的額外參數(shù),除非明確指定。在第三版中,并沒有規(guī)定額外參數(shù)的處理方式,實現(xiàn)中明確允許拋出一個 TypeErrorBold text 錯誤。
15.1.1:全局對象的值屬性 NaN,Infinity 和 Undefined 改為只讀屬性。
15.1.2.1:實現(xiàn)不再允許約束非直接調(diào)用 eval 的方式。另外間接調(diào)用 eval 會使用全局對象作為變量環(huán)境,而不是使用調(diào)用者的變量環(huán)境作為變量環(huán)境。
15.1.2.2:parseInt 的規(guī)范不再允許實現(xiàn)將 0 開頭的字符串作為 8 進(jìn)制值。
15.3.4.3:在第三版中,如果傳入 Function.prototype.apply 的第二個參數(shù)不是一個數(shù)組對象或者一個 arguments 對象,就會拋出一個TypeError。在第五版中,參數(shù)也可以是任意類型的含有 length 屬性的類數(shù)組對象。
15.3.4.3,15.3.4.4:在第三版中,在 Function.prototype.apply 或者 Function.prototype.call 中傳入 undefined 或者 null 作為第一個參數(shù)會導(dǎo)致 全局對象 被作為一個個參數(shù)傳入,間接導(dǎo)致目標(biāo)函數(shù)的 [this] 會指向全局變量環(huán)境。如果第一個參數(shù)是一個 原始值 ,在 原始值 上調(diào)用 ToObject 的結(jié)果會作為 this 的值。在第五版中,這些轉(zhuǎn)換不會出現(xiàn),目標(biāo)函數(shù)的 this 會指向真實傳入的參數(shù)。這個不同點一般情況下對已存在的遵循 ECMAScript 第三版的代碼來說不太明顯,因為相應(yīng)轉(zhuǎn)換會在目標(biāo)函數(shù)生效之前執(zhí)行。然而,基于不同的實現(xiàn),如果使用 apply 或者 call 調(diào)用函數(shù)時,這個不同點就會很明顯。另外,用這個方法調(diào)用一個標(biāo)準(zhǔn)的內(nèi)建函數(shù),并使用 null 或者 undefined 作為參數(shù)時,很可能會導(dǎo)致第五版標(biāo)準(zhǔn)下的實現(xiàn)與第三版標(biāo)準(zhǔn)下的實現(xiàn)不同。特別是第五版中代表性地規(guī)定了需要將實際調(diào)用的傳入的 this值作為對象的內(nèi)建函數(shù),在傳入 null 或者 undefined 作為 this 值時,會拋出一個 TypeError 異常。
15.3.5.2:在第五版中,函數(shù)實例的 prototype 屬性是不可枚舉的。在第三版中,是可以枚舉的。
15.5.5.2:在第五版中,一個字符串對象的 primitiveValue 的單個字符可以作為字符串對象的數(shù)組索引屬性訪問。這些屬性是不可泄也不可配置的,并會影響任意名字相同的繼承屬性。在第三版中,這些屬性不會存在,ECMAScript 代碼可以通過這些名字動態(tài)添加和移除可寫的屬性并訪問以這些名字繼承的屬性。
15.9.4.2:Date.parse 方法現(xiàn)在不要求第一個參數(shù)首先作為 ISO 格式字符串解析。使用這個格式但是基于特定行為實現(xiàn)(包括未來的一些行為)或許會表現(xiàn)的不太一樣。
15.10.2.12:在第五版中,\s 現(xiàn)在可以匹配 <BOM> 了
15.10.4.1:在第三版中,由 RegExp 構(gòu)造器創(chuàng)建的對象的 source 字符串的精確形式由實現(xiàn)定義。在第五版中,字符串必須符合確定的指定條件,因此會和第三版標(biāo)準(zhǔn)的實現(xiàn)的結(jié)果不一樣。
15.10.6.4:在第三版中,RegExp.prototype.toString 的規(guī)則不需要由 RegExp 對象的 source 屬性決定。在第五版中,結(jié)果必須由 source 屬性經(jīng)由一個指定的規(guī)則,因此會和第三版實現(xiàn)的結(jié)果不一樣。
15.11.2.1,15.11.4.3:在第五版中,如果一個錯誤對象的 message 屬性原始值沒有通過 Error 構(gòu)造器指定,那么這個原始值就是一個空的字符串。在第三版中,這個原始值由實現(xiàn)決定。
15.11.4.4:在第三版中,Error.prototype.toString 的結(jié)果是由實現(xiàn)定義的。在第五版中,有完整的規(guī)范指定,因此可能會和第三版的實現(xiàn)不同。
15.12: 在第五版中,JSON 是在全局環(huán)境中定義的。第三版中,測試這個名詞的存在會發(fā)現(xiàn)它是 undefined,除非這個程序或者實現(xiàn)定義了這個名詞。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: