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