cevap
Bu imzasız doğru vites operatörüdür. Bu durumda (0
ile kullanıldığında), arr.length
'un bir tam sayı olmasını ya da arr.length
'un kesin imzalanmamış 32 bit tam sayı değeri olarak değerlendirmesini sağlar. (Bu asla NaN
, asla negatif bir demek ve ondalık kısmı vardır asla.)
Örnekler:
'1' >>> 0: 1
1 >>> 0: 1
'' >>> 0: 0
undefined >>> 0: 0
null >>> 0: 0
1.0∙∙∙01 >>> 0: 1
karşılaştır: sağlamak için
Number('1') : 1
Number(1) : 1
Number('') : 0
Number(undefined): NaN
Number(null) : 0
Number(1.0∙∙∙01) : 1.0∙∙∙01
Sadece orada olması doğru uzunluk kullanılıyor.
.length
'un 32 bitlik bir tam sayı olduğunu garanti eder.
en uygulamalarda, Dizi indeksleri (en azından Array.prototype
yöntemler ve .length
sihirli davranışları ile çalışan) 32 bitlik bir dizi sınırlıdır.
Özledin mi?… Neden onu kullanmak istiyorum? Göz önünde bulundurulması gereken tek durum, * uzunluk * tam sayı olmayan bir değere ayarlanabiliyor olmasıdır. Ancak bu, ECMA-262'ye uygun bir uygulamada [olamaz] (http://es5.github.com/#x15.4.5.1). Uzunluk ** her zaman ** negatif olmayan bir tamsayıdır. Yani cevap: ** asla **. – RobG
"Asla" demem. Standart yöntemler bir * 'ToUint32 (lenVal)' * dönüşümü yaptığından, ECMA-262 uyumlu (veya mümkün olduğunca yakın) bir standart Array.prototype yöntemi için bir şim yazıyorsanız kullanılır. Ayrıca, spec, "dizi benzeri" nesnelere uygulanacak "Array.prototype" yöntemlerine izin verir. Bu, uygun bir ".length" değerini uygulamak için bir shim için motivasyon sağlayacaktır. –
Eğer durum buysa, o zaman -ve değerlerin ilk olarak ele alınması gerekir, çünkü >>> 'nin bunlara bazı önemli etkileri vardır. Ve uzunluk *, yerleşik * array.length * için mevcut olandan biraz daha azını sınırlar, bu yüzden değeri negatif olmayan bir tam sayıya dönüştürmek veya dönüştürmek için zayıf bir yöntemdir. – RobG
- 1. Ok ("->") operatörü Kotlin'de ne yapıyor?
- 2. Bu PHP'de Demektir Ne -> veya =>
- 3. Ok operatörü '->', Java'da ne yapıyor?
- 4. '>>>' javascript'te ne anlama geliyor?
- 5. "<%:" ne yapıyor?</p> <pre><code><%: Model.FirstName %> </code></pre> <p>"<%:" Ne vermez: do
- 6. Bu makro tam olarak ne yapıyor? Ben tam olarak bana bunları anlatıyorsun ne <code>(&((type *)0)->member)</code> Anlamıyorum
- 7. Bu operatörler Elixir'de ne anlama geliyor? ~ >>, << ~
- 8. Bu ">> =" operatör C cinsinden ne anlama geliyor?
- 9. "+0" ifadesi ne demek regexp \ k <name+0>?
- 10. Üç ok (">>>") işaretleri python'da ne anlama geliyor?
- 11. #include <stdio.h> gerçekten bir c programında ne yapıyor
- 12. İlkbaharda <tx: ek açıklamalı /> kod düzeyinde ne yapıyor?
- 13. "base.send: include, InstanceMethods" ---> Bu ne yapar?
- 14. Bu ne yapıyor?
- 15. "->" ne anlama geliyor?
- 16. >>> ve >> operatörler arasındaki fark
- 17. PHP, $ this -> {$ var} - bu ne anlama geliyor?
- 18. cmake -D <var>: <type> = <value>: <type> ne olabilir?
- 19. -><- operatör ne yapar? Bu ne</p> <pre><code>IntPredicate neg = x -> x <- x; </code></pre> <p>, ters çift lambda çeşit:
- 20. Ne operatörüdür <> VBA
- 21. <? Php bp_activity_id()?>>>>>
- 22. sed Linux'ta bu ortalama koddan kaldırmak için benim Linux kabuk komut</p> <pre><code>sed '$a\' < file_a.txt </code></pre> <p>Korkarım bu çizgi var
- 23. >> sembolü Haskell
- 24. - >>
- 25. >> � dönüştürülür
- 26. Monad'ın beyanında "m >> n = m >> = \ _ -> n" lambda notasyonu ile bu denklem nedir?
- 27. HLSL'de> aritmetik operatörü ne yapar?
- 28. Neden (-1 >>> 32) = -1?
- 29. Intellij kaynak kodundaki bu açıklama ne anlama geliyor?</p> <pre><code>void m() { <selection><caret>System.out.println("");</selection> } </code></pre> <p>bu <code><selection></code> açıklama ne anlama gelir:
- 30. Ne :: Java operatörü bu bağlamda ne yapar? <code>::</code> ne Aşağıdaki kod örneğinde
Ayrıca, bu operatörün adını eklemek için etiketler konusunda yardıma ihtiyacım var, çünkü adını bilmiyorum – mithril333221
Bağlam king ... bize biraz ver. – jondavidjohn
Normalde kodları sorularda düzenlemek istemiyorum, ama * ben * uzunluğundan emin oldum, uzunluğunu değil. –