回答
這是未經簽名的右移運算符。在這種情況下(與0
一起使用時)它確保arr.length
是一個整數,或者更確切地說,其值爲arr.length
,爲嚴格無符號的32位整數值。 (這意味着它永遠不會NaN
,從不爲負,且從未有一個小數部分。)
例子:
'1' >>> 0: 1
1 >>> 0: 1
'' >>> 0: 0
undefined >>> 0: 0
null >>> 0: 0
1.0∙∙∙01 >>> 0: 1
對比:
Number('1') : 1
Number(1) : 1
Number('') : 0
Number(undefined): NaN
Number(null) : 0
Number(1.0∙∙∙01) : 1.0∙∙∙01
這只是爲了確保正確的長度正在使用。
確保.length
是一個32位整數。
在大多數實現中,陣列索引被限制爲32位的範圍(至少Array.prototype
方法以及.length
魔行爲工作時)。
您錯過了......爲什麼我要使用它?唯一可能考慮的情況是* length *可能被設置爲非整數值。但是在符合ECMA-262的實現中,[不會發生](http://es5.github.com/#x15.4.5.1)。長度**總是**是一個非負整數。所以答案是:**從不**。 – RobG 2012-02-21 00:28:12
我不會說「從不」。如果您正在爲標準'Array.prototype'方法編寫一個墊片,並試圖使其符合ECMA-262標準(或儘可能接近),則會使用它,因爲標準方法執行* ToUint32(lenVal)*轉換。此外,該規範允許將'Array.prototype'方法應用於「類似數組」的對象。這將爲墊片強制執行正確的「.length」值提供動力。 – 2012-02-21 00:34:31
如果是這樣的話,那麼-ve值需要首先處理,因爲>>>對這些值有很大的影響。它將長度的大小限制爲比內置* array.length *少的長度,所以這是確保或將值轉換爲非負整數的糟糕方法。 – RobG 2012-02-21 01:16:49
- 1. 爲什麼-1 >> 1是-1?而1 >> 1是0!
- 2. 「somevar >> 0」是什麼意思?
- 3. x >>> 0做什麼?
- 4. 爲什麼Python 2.7中的`()>''> []> {}> 0> None`?
- 5. 這是什麼意思? >> ActionController :: InvalidAuthenticityToken
- 6. 什麼是<script type =「text/javascript」><!--mce:0--></script>?
- 7. 這是什麼意思(計算中的<< and > >>)?
- 8. 爲什麼〜0 >> 1不移位?
- 9. 這個JavaScript運算符是什麼意思? >>>
- 10. 「ptr = ptr - > next」這是什麼「 - >」是什麼意思? (C++)
- 11. 這是什麼 - >〜T()呢?
- 12. PHP:什麼是「 - >」和「=>」?
- 13. 這是什麼意思?公式一=> A - > [A] - >布爾
- 14. 什麼是C++ >>>操作
- 15. 爲什麼(0> 1 + 0> 9)返回False,但((0> 1)+(0> 9))返回0?
- 16. 什麼是(int - > int) - >(int - > int)是什麼意思?
- 17. 在Javascript中,'>>> 0'對變量有什麼影響?
- 18. 爲什麼realmin> eps(0)?
- 19. 這條線是幹什麼的?
- 20. X >> = N是做什麼的?
- 21. 爲什麼<$>和<*>的輸入順序是>> =?
- 22. 'echo 0> foo'是什麼意思?
- 23. 爲什麼<< 256 :: size(16)>>目前爲<<1, 0>>?
- 24. 的Python 3 - 什麼是 「>>」
- 25. 什麼是c運算符>>
- 26. matplotlib中的axes.flat是做什麼的?</p> <pre><code>for i, ax in enumerate(axes.flat): </code></pre> <p>這是什麼做的:
- 27. 爲什麼(0x7FFFFFFF >> 31)+ 1是零?
- 28. 在monad的聲明中,lambda表示法「m >> n = m >> = \ _ - > n」的這個方程是什麼?
- 29. 這個宏是做什麼的? __success(返回> = 0)長
- 30. 這段代碼的含義是什麼:「print >> sys.stderr」
另外我需要幫助標籤添加該運算符的名稱,因爲我不知道它的名字 – mithril333221 2012-02-20 23:48:13
上下文是國王...給我們一些。 – jondavidjohn 2012-02-20 23:49:37
我通常不喜歡在問題中編輯代碼,但我相當確定你的意思是「長度」而不是「長度」。 – 2012-02-20 23:49:40