在MDN Array PolyFils中,它有以下行。MD.JS Array polyfil中有沒有t.length >>> 0的東西?
var len = t.length >>> 0;
是否二進制右移0真的很實際嗎?或者我可以把它拿出來嗎?
在MDN Array PolyFils中,它有以下行。MD.JS Array polyfil中有沒有t.length >>> 0的東西?
var len = t.length >>> 0;
是否二進制右移0真的很實際嗎?或者我可以把它拿出來嗎?
當然它有一些東西。無論價值是什麼,它都會將其轉換爲無符號的32位數字。
如果數字轉換不可行,您將獲得0
。這處理了一些奇怪的情況,其中.length
是一些意想不到的值。
這基本上是他們如何實現spec中的指令。就像在specification for .forEach()
:
...
讓
lenValue
是調用的O
的[[Get]]
內部方法與參數"length"
的結果。讓
len
爲ToUint32(lenValue)
。
>>>
是unsigned right shift operator。在數組方法中使用無符號右移運算符,以確保length屬性是無符號的32位整數。
按照specs:
每個陣列對象的長度屬性,其值始終是一個 非負整數小於2 。