JavaScript hanya memiliki satu jenis number .
Numbers dapat ditulis dengan atau tanpa desimal.
Nomor JavaScript
JavaScript numbers dapat ditulis dengan atau tanpa desimal:
Contoh
var x = 34.00; // A number with decimals
var y = 34; // A number without decimals
jumlah kecil ekstra besar atau ekstra dapat ditulis dengan ilmiah (eksponen) notasi:
Contoh
var x = 123e5; // 12300000
var y = 123e-5; // 0.00123
Nomor JavaScript yang Selalu 64-bit Floating Point
Tidak seperti banyak bahasa pemrograman lainnya, JavaScript tidak mendefinisikan berbagai jenis nomor, seperti bilangan bulat, pendek, panjang, floating-point dll
nomor JavaScript selalu disimpan sebagai nomor ganda presisi floating point, menyusul internasional IEEE 754 standar.
Format ini menyimpan nomor di 64 bit, dimana jumlah (fraksi) disimpan dalam bit 0-51, eksponen dalam bit 52-62, dan tanda di bit 63:
Nilai (alias Fraksi / Mantissa) | Eksponen | Tanda |
---|---|---|
52 bit (0-51) | 11 bit (52-62) | 1 bit (63) |
Ketelitian
Bilangan bulat (angka tanpa titik atau notasi eksponen) dianggap akurat hingga 15 digit.
Contoh
var x = 999999999999999; // x will be 999999999999999
var y = 9999999999999999; // y will be 10000000000000000
Cobalah sendiri " Jumlah maksimum desimal adalah 17, tapi aritmatika floating point tidak selalu 100% akurat:
Untuk mengatasi masalah di atas, hal ini membantu untuk memperbanyak dan membagi:
heksadesimal
JavaScript menafsirkan konstanta numerik sebagai heksadesimal jika mereka didahului oleh 0x.
Jangan pernah menuliskan nomor dengan nol (seperti 07).
Beberapa versi JavaScript menafsirkan angka sebagai oktal jika mereka ditulis dengan nol.
Secara default, Javascript menampilkan nomor sebagai basis 10 desimal.
Tapi Anda bisa menggunakan toString() metode untuk nomor output sebagai basis 16 (hex), basis 8 (oktal), atau basis 2 (biner).
Contoh
var myNumber = 128;
myNumber.toString(16); // returns 80
myNumber.toString(8); // returns 200
myNumber.toString(2); // returns 10000000
Cobalah sendiri " Tak terbatas
Infinity (atau infinity) adalah nilai JavaScript akan kembali jika Anda menghitung jumlah luar sebanyak mungkin.
Contoh
var
myNumber = 2;
while (myNumber != Infinity) {
// Execute until Infinity
myNumber = myNumber * myNumber;
}
Cobalah sendiri " Pembagian dengan 0 (nol) juga menghasilkan Infinity:
Contoh
var x = 2 / 0;
// x will be Infinity
var y = -2 / 0;
// y will be -Infinity
Cobalah sendiri " Infinity adalah nomor: typeOf Infinity mengembalikan nomor.
NaN - Tidak Nomor
NaN adalah kata reserved JavaScript menunjukkan bahwa nilai yang bukan angka.
Mencoba untuk melakukan aritmatika dengan string non-numerik akan menghasilkan NaN (Not a Number):
Namun, jika string berisi nilai numerik, hasilnya akan menjadi nomor:
Anda dapat menggunakan global fungsi JavaScript isNaN() untuk mengetahui apakah nilai adalah angka.
Watch out untuk NaN. Jika Anda menggunakan NaN dalam operasi matematika, hasilnya juga akan NaN:
Atau hasilnya mungkin Rangkaian a:
NaN adalah angka, dan typeof NaN mengembalikan nomor:
Nomor Bisa Objects
Biasanya angka JavaScript yang nilai primitif dibuat dari literal: var x = 123
Tapi angka juga dapat didefinisikan sebagai objek dengan kata kunci baru: var y = new Number(123)
Contoh
var x = 123;
var y = new Number(123);
//
typeof x returns number
//
typeof y returns object
Cobalah sendiri " Jangan membuat objek Nomor. Memperlambat kecepatan eksekusi.
The new kata kunci mempersulit kode. Hal ini dapat menghasilkan beberapa hasil yang tak terduga:
Bila menggunakan == operator kesetaraan, jumlah yang sama terlihat sama:
Contoh
var x = 500;
var y = new Number(500);
// (x == y) is true because x and y have equal values
Cobalah sendiri " Bila menggunakan operator === kesetaraan, nomor yang sama tidak sama, karena operator === mengharapkan kesetaraan di kedua jenis dan nilai.
Contoh
var x = 500;
var y = new Number(500);
// (x === y) is false because x and y have different types
Cobalah sendiri " Atau bahkan lebih buruk. Benda tidak dapat dibandingkan:
Contoh
var x = new Number(500);
var y = new Number(500);
// (x == y) is false because objects cannot be compared
Cobalah sendiri " objek JavaScript tidak bisa dibandingkan.
Uji Diri dengan Latihan!
Latihan 1 » Latihan 2» Latihan 3 » Latihan 4»