~~ (&Quot;çift tilde") Javascript ne yapar?
Online oyun fizik bir kütüphane bugün bakıyordum ve ~~ operatörü ile karşı karşıya geldi. Tek bir ~ bir bit DEĞİL, biliyorum, bu bir DEĞİL ~~ bir olur tekrar aynı değeri verecek, değil mi?
CEVAP
Bit düzeyinde operatörler örtülü olarak 32 bitlik imzalı tamsayı için ele alır dönüştürmek çünkü ondalık noktadan sonra her şeyi kaldırır. Bu işlenen (kayan nokta) sayı veya dize olup olmadığını çalışır, ve sonuç bir sayı.
Diğer bir deyişle, bunu verir:
function(x) {
if(x < 0) return Math.ceil(x);
else return Math.floor(x);
}
sadece eğerxarasında -(231ve 231- 1. Aksi takdirde, taşma ve sayısı ortaya çıkar "etrafında". sar
Bu olabilir olarak yararlı dönüştürme fonksiyonu dize bağımsız değişkeni bir sayı, ama her ikisi de, çünkü mümkün taşması ve yanlış kullanımı ile non-tamsayı olmaz kullan böyle hariç "code golf" (yaniamaçsızca programınızın kaynak kodunu kapalı bayt süsleme okunabilirlik ve sağlamlık pahasına). x
Number(x)
yerine kullanırdım.
Bu nasıl bir şey yapmadı
Numarasını -43.2, örneğin:
-43.210= 11111111111111111111111111010101 2
bir olarak imzalanmış (iki tamamlayıcı) 32-bit ikili sayı. (JavaScript ondalık noktadan sonra ne olduğunu göz ardı eder.) Biti verir eviren:
-4310= 00000000000000000000000000101010 2= 42 10
Yine eviren verir:
DEĞİL 4210= 11111111111111111111111111010101 2= -43 10
Bu negatif sayılar, sıfır, değil uzakta doğru yuvarlanır O Math.floor(-43.2)
farklıdır. (-44, her zaman eşit olur zemin işlevi, bir alt tamsayıya, bu sayı pozitif ya da negatif olmasına bakılmaksızın tur.)
Href ifade <a href="javascript...
&Quot;|" (tek boru) JavaScript ne...
&Quot;sıkı" kullanın; JavaScript, ...
Href JavaScript bağlantıları için özni...
Bir tespit "geçersiz tarih" ...