Nomor pada JavaScript

JavaScript hanya memiliki satu jenis nomor.

Angka bisa ditulis dengan, atau tanpa, desimal.
Nomor JavaScript

Nomor JavaScript dapat ditulis dengan, atau tanpa desimal:
Contoh
var x = 34.00; // Angka dengan desimal
var y = 34; // Angka tanpa desimal

Ekstra besar atau ekstra kecil dapat ditulis dengan notasi ilmiah (eksponen):
Contoh
var x = 123e5; // 12300000
var y = 123e-5; // 0.00123
Angka JavaScript Selalu 64-bit Floating Point

Tidak seperti banyak bahasa pemrograman lainnya, JavaScript tidak mendefinisikan berbagai jenis bilangan, seperti bilangan bulat, pendek, panjang, floating-point, dll.

Nomor JavaScript selalu disimpan sebagai bilangan floating point presisi ganda, mengikuti standar IEEE 754 internasional.

Format ini menyimpan angka dalam 64 bit, di mana jumlah (pecahannya) disimpan dalam bit 0 sampai 51, eksponen pada bit 52 sampai 62, dan tanda di bit 63:


Nilai(aka Fraction/Mantissa)Exponent Tanda
52 bits (0 - 51)  11 bits (52 - 62) 1 bit (63)

Presisi

Integer (angka tanpa notasi periode atau eksponen) dianggap akurat hingga 15 digit.
Contoh
var x = 999999999999999; // x akan menjadi 999999999999999
var y = 9999999999999999; // y akan 10000000000000000

Jumlah desimal maksimum 17, tapi aritmatika floating point tidak selalu 100% akurat:
Contoh
var x = 0,2 + 0,1; // x akan menjadi 0.30000000000000004

Untuk mengatasi masalah di atas, membantu untuk memperbanyak dan membagi:
Contoh
var x = (0,2 * 10 + 0,1 * 10) / 10; // x akan menjadi 0,3
Heksadesimal

JavaScript menginterpretasikan konstanta numerik sebagai heksadesimal jika didahului dengan 0x.
Contoh
var x = 0xFF; // x akan menjadi 255
Catatan Jangan pernah menulis angka dengan angka nol (seperti 07).
Beberapa versi JavaScript menafsirkan angka sebagai oktal jika ditulis dengan huruf nol terkemuka.

Secara default, Javascript menampilkan angka sebagai basis 10 desimal.

Tapi Anda bisa menggunakan metode toString () untuk menghasilkan bilangan sebagai basis 16 (hex), basis 8 (oktal), atau basis 2 (biner).
Contoh
var myNumber = 128;
myNumber.toString (16); // kembali 80
myNumber.toString (8); // kembali 200
myNumber.toString (2); // mengembalikan 10000000
Infinity

Infinity (atau -Infinity) adalah nilai JavaScript akan kembali jika Anda menghitung angka di luar nomor terbesar.
Contoh
var myNumber = 2;
while (myNumber! = Infinity) {// Jalankan sampai Infinity
    myNumber = myNumber * myNumber;
}

Divisi dengan 0 (nol) juga menghasilkan Infinity:
Contoh
var x = 2/0; // x akan menjadi tak terbatas
var y = -2 / 0; // y akan menjadi -Infinity

Infinity adalah angka: typeOf Infinity mengembalikan nomor.
Contoh
typeof Infinity;    // mengembalikan "nomor"
NaN - bukan nomor

NaN adalah kata dicadangkan JavaScript yang menunjukkan bahwa sebuah nilai bukan angka.

Mencoba melakukan aritmatika dengan string non-numerik akan menghasilkan NaN (Not a Number):
Contoh
var x = 100 / "apel"; // x akan menjadi NaN (Bukan Nomor)

Namun, jika string berisi nilai numerik, hasilnya akan berupa angka:
Contoh
var x = 100 / "10"; // x akan menjadi 10

Anda bisa menggunakan fungsi JavaScript global isNaN () untuk mengetahui apakah sebuah nilai adalah angka.
Contoh
var x = 100 / "apel";
isNaN (x); // mengembalikan true karena x bukan nomor

Hati-hati dengan NaN. Jika Anda menggunakan NaN dalam operasi matematika, hasilnya juga akan menjadi NaN:
Contoh
var x = NaN;
var y = 5;
var z = x + y; // z akan menjadi NaN

 Atau hasilnya mungkin merupakan gabungan:
Contoh
var x = NaN;
var y = "5";
var z = x + y; // z akan menjadi NaN5

NaN adalah nomor, dan tipe nomor pengembalian NaN:
Contoh
typeof NaN;     // mengembalikan "nomor"
Bilangan Bisa Jadi Objek

Biasanya nomor JavaScript adalah nilai primitif yang dibuat dari literal: var x = 123

Tapi angka juga bisa didefinisikan sebagai objek dengan kata kunci baru: var y = new Number (123)
Contoh
var x = 123;
var y = nomor baru (123);

// typeof x mengembalikan nomor
// typeof y mengembalikan objek

Catatan Jangan membuat nomor objek. Ini memperlambat kecepatan eksekusi.
Kata kunci baru mempersulit kode. Ini bisa menghasilkan beberapa hasil yang tidak diharapkan:

Bila menggunakan operator persamaan ==, angka yang sama terlihat sama:
Contoh
var x = 500;
var y = nomor baru (500);

// (x == y) benar karena x dan y memiliki nilai yang sama

Bila menggunakan operator kesetaraan ===, jumlah yang sama tidak sama, karena operator === mengharapkan persamaan dalam tipe dan nilai.
Contoh
var x = 500;
var y = nomor baru (500);

// (x === y) salah karena x dan y memiliki tipe yang berbeda

Atau bahkan lebih buruk lagi. Objek tidak bisa dibandingkan:
Contoh
Var x = nomor baru (500);
Var y = nomor baru (500);

// (x == y) salah karena objek tidak dapat dibandingkan
Catatan Objek JavaScript tidak bisa dibandingkan.
Previous
Next Post »
Thanks for your comment