最近我發現在Firefox這奇怪的行爲:的Javascript自動排序在Firefox VS其他瀏覽器
此代碼自動排序的屬性:
var an_obj = { "4": "d", "1": "a", "2": "c"};
alert(Object.keys(an_obj)); // will alert "1, 2, 4"
雖然這個人是不是:
var value2 = {"1003":1, "1001":2, "1000":3};
alert(Object.keys(value2));// will alert "1003, 1001, 1000"
任何大於1000的數字在Firefox中將具有不同的行爲,而其他瀏覽器(Chrome,IE11)的行爲與預期的大於1000的自動分類數量相同。
我相信這是FireFox中的一個錯誤,我錯了嗎?
更新1
這使得相同的實現火狐內的秩序「不可預測的」。我可以理解根本不會排序的值,或者根據一個標準排序,但不會在「任意」數字後表現「不可預測」。
但行爲是不是一致的,但在這種情況下一些值的一種方式,而不是不穩定的工作值大於1000,爲什麼其他瀏覽器的行爲邏輯和排序和Firefox不是? – Dalorzo
@Dororzo因爲不需要瀏覽器來對鍵進行排序。其他瀏覽器可能會這樣做,但ECMAScript規範中沒有要求他們這樣做。 –
但這是在Firefox的相同的實現裏有同樣的行爲有2個行爲 – Dalorzo