Modül dersleri (3/4)
Sayılar ve Matematik
JavaScript'te yalnızca tek bir sayısal tür vardır: number. Her iki tam sayı
ve ondalık sayılar (kayan nokta) burada yaşar. Ayrı bir int / float yok
diğer dillerde olduğu gibi.
typeof 42; // 'number'
typeof 3.14; // 'number'
typeof -0.001; // 'number'
typeof Infinity; // 'number' ← Infinity is a special number
typeof NaN; // 'number' ← even "Not a Number" is a number (!)Küresel Math nesnesi
Math bir işlev değildir: yararlı yöntemlere sahip bir nesnedir ve
sabitler. Onu başlatmazsınız, doğrudan kullanırsınız:
Math.min(3, 1, 7); // 1
Math.max(3, 1, 7); // 7
Math.abs(-5); // 5
Math.round(4.5); // 5
Math.floor(4.9); // 4 (always rounds down)
Math.ceil(4.1); // 5 (always rounds up)
Math.sqrt(16); // 4
Math.pow(2, 10); // 1024 (equivalent to 2 ** 10)
Math.PI; // 3.141592653589793Rastgele sayılar
Math.random(), 0 (dahil) ile 1 (hariç) arasında bir ondalık sayı döndürür.
Bir aralıkta bir tamsayı elde etmek için küçük bir formül kullanırsınız:
// Random integer between 0 and 9
Math.floor(Math.random() * 10);
// Random integer between 1 and 6 (a six-sided die)
Math.floor(Math.random() * 6) + 1;Ondalık sayıların acıları (kayan nokta)
JS, hemen hemen tüm JS ile paylaşılan IEEE-754 64 bit gösterimini kullanır. diller. Bu ikili bir temsil olduğundan bazı ondalık sayılar olamaz tam olarak temsil edildi:
0.1 + 0.2; // 0.30000000000000004 (!)
0.1 + 0.2 === 0.3; // falseStandart çözüm: toFixed(n) ile yuvarlayın (bu bir dize döndürür) veya
Parayla çalışırken sent/binde bir cinsinden tam sayıları kullanın:
(0.1 + 0.2).toFixed(2); // '0.30' (string)
Number((0.1 + 0.2).toFixed(2)); // 0.3 (number)Deneyin
Yarıçapı 'r = 5' olan bir dairenin alanını iki ondalık basamağa yuvarlanmış bir 'sayı' olarak hesaplayın. 'r=5' için 78,54 bekleniyor.
İpucu göster
Pi için Math.PI, üstelleştirme için **; .toFixed(2) yuvarlamak, Number(...) tekrar sayıya dönüştürmek için.
3 denemeden sonra çözüm mevcut
Alıştırmayı gözden geçirin
12, 7, 23 olmak üzere üç sayı verildiğinde, son ifade olarak maksimum ve minimum arasındaki farkı (yani 16) döndürün.
İpucu göster
Math.max ve Math.min birden çok virgülle ayrılmış bağımsız değişkeni kabul eder.
3 denemeden sonra çözüm mevcut