我剛剛發現,在過去的42鉻和FF 37.0.2的代碼,這行是完全合法的「使用嚴格」;現在允許重複的屬性?
"use strict";
var o = { p: 1, p: 2 };
(複製粘貼從MDN)
在10-11 IE和Opera 28.0。 1750如預期的那樣拋出錯誤。
在同一時間,
abc=0;
導致如預期誤差(未聲明的變量)。
有沒有人知道是什麼引起了這種變化?
我剛剛發現,在過去的42鉻和FF 37.0.2的代碼,這行是完全合法的「使用嚴格」;現在允許重複的屬性?
"use strict";
var o = { p: 1, p: 2 };
(複製粘貼從MDN)
在10-11 IE和Opera 28.0。 1750如預期的那樣拋出錯誤。
在同一時間,
abc=0;
導致如預期誤差(未聲明的變量)。
有沒有人知道是什麼引起了這種變化?
這裏有一個Bugzilla ticket。從我收集的內容(這裏以及我查閱的其他頁面)中,重複的屬性在ECMAScript版本6中是合法的,與ES5相反,在嚴格模式下它是禁止的。
請參閱[關於爲什麼行爲改變的討論](https://esdiscuss.org/notes/2014-06-06#rest-properties-and-spread-properties-sebastian-markb-ge-)。 –