Bu sözdizimini başka bir StackOverflow gönderisinde gördüm ve ne işe yaradığını merak ettim:
var len = this.length >>> 0;
Ne anlama >>>geliyor?
Bu sözdizimini başka bir StackOverflow gönderisinde gördüm ve ne işe yaradığını merak ettim:
var len = this.length >>> 0;
Ne anlama >>>geliyor?
>>>sıfır bit kaydırsanız bile işaret bitini her zaman sıfıra ayarlar.
>>>operatörü kullandıklarına dair bu yanıtı kontrol edin : stackoverflow.com/questions/3081987/…
var length = list.length >>> 0;
Yanıtlar:
Bu, imzasız bir sağa kaydırma operatörü . İlginçtir, bu sadece bit düzeyinde operatör olduğu imzasız JavaScript.
>>> operatörü, expression1'in bitlerini expression2'de belirtilen bit sayısı kadar sağa kaydırır. Sıfırlar soldan doldurulur. Sağa kaydırılan rakamlar atılır.
Amaçlanan anlamı göz ardı edildiğinde, büyük olasılıkla burada kullanıldığını göreceksiniz:
>>> 0 herhangi bir türü pozitif tam sayıya dönüştürecek tek operatör olması bakımından benzersizdir:
"string" >>> 0 == 0
(function() { }) >>> 0 == 0
[1, 2, 3] >>> 0 == 0
Math.PI >>> 0 == 3
Örneğinizde var len = this.length >>> 0, bu, thistürü ne olursa olsun yinelemek için kullanılacak bir tam sayı uzunluğu elde etmenin bir yoludur this.length.
Benzer şekilde, ~~xherhangi bir değişkeni işaretli bir tam sayıya dönüştürmek için kullanılabilir.
Bu operatör mantıksal bir sağa kaymadır. Burada sayı 0 bit kaydırılır. Matematiksel olarak sıfır bitlik bir kaymanın hiçbir etkisi olmamalıdır.
Ancak burada değeri işaretsiz 32 bitlik bir tam sayıya dönüştürmek için kullanılır.
>>>bit tabanlı bir operatör, sıfır dolgulu sağa kaydırmadır .
>>> 0Pozitif sayı üzerindeki tek etkisinin , aynı şekilde en yakın tam sayıya yuvarlanması olduğunu düşünüyorum Math.floor(). Genel olarak bir .lengthözellik (örneğin bir Array) zaten bir tamsayı olacağından , örneğinizde bunun neden gerekli olduğunu anlamıyorum .
Ben de biraz daha kısa gördüğüm ~~aynı şekilde kullanılır: ~~9.5 == 9; // true.
Math.abs()Negatif sayılar için kullanıldığında aynı olduğundan şüpheliyim .
>>> 0Negatif bir sayı yaparsanız , onu 2'nin iltifatına dönüştürür, sonra sağa kayar. Bu nedenle -14 >>> 0 == 1073741820. ( msdn.microsoft.com/en-us/library/342xfs5s%28v=vs.94%29.aspx )
parseIntmu?