Angka JavaScript
- Halaman Sebelumnya Template String JS
- Halaman Berikutnya BigInt JS
JavaScript hanya memiliki satu tipe bilangan.
Dapat ditulis bilangan dengan atau tanpa titik desimal.
JavaScript Bilangan
Penulisan nilai JavaScript dapat disertakan titik desimal atau tanpa titik desimal:
Contoh
var x = 3.14; // Angka dengan titik desimal var y = 3; // Angka tanpa titik desimal
Bilangan yang sangat besar atau sangat kecil dapat ditulis dalam notasi bilangan ilmiah:
Contoh
var x = 123e5; // 12300000 var y = 123e-5; // 0.00123
Nilai JavaScript selalu bilangan floating-point 64 bit
Beberapa dengan berbeda dari bahasa pemrograman lain, JavaScript tidak mendefinisikan tipe bilangan yang berbeda, seperti integer, short, long, floating-point, dll.
Nilai JavaScript selalu disimpan dalam bilangan floating-point double precision, menurut standar internasional IEEE 754.
Format ini menggunakan 64 bit untuk menyimpan nilai, di mana 0 sampai 51 menyimpan angka (distribusi), 52 sampai 62 menyimpan eksponen, dan 63 bit menyimpan simbol:
Nilai (dikenal sebagai Bagian/Fraction/Mantissa) | Eksponen | Simbol |
---|---|---|
52 bits(0 - 51) | 11 bits (52 - 62) | 1 bit (63) |
Akurasi
Bilangan bulat (tanpa penggunaan eksponen atau notasi bilangan ilmiah) akan disesuaikan hingga 15 digit.
Contoh
var x = 999999999999999; // x akan menjadi 999999999999999 var y = 9999999999999999; // y akan menjadi 10000000000000000
Besar paling besar ekspresi desimal adalah 17 digit, tetapi aritmetika floating-point tidak selalu 100% akurat:
Contoh
var x = 0.2 + 0.1; // x akan menjadi 0.30000000000000004
Penggunaan perkalian dan pembagian dapat membantu menyelesaikan masalah di atas:
Contoh
var x = (0.2 * 10 + 0.1 * 10) / 10; // x akan menjadi 0.3
Menambahkan angka dan string
Peringatan!!
Penambahan dan penggabungan JavaScript menggunakan operator +.
Angka menggunakan penambahan. String menggunakan penggabungan.
Jika Anda menambahkan dua angka, hasilnya akan menjadi angka:
Contoh
var x = 10; var y = 20; var z = x + y; // z akan menjadi 30 (sebuah angka)
Jika menambahkan dua string, hasilnya akan menjadi penggabungan string:
Contoh
var x = "10"; var y = "20"; var z = x + y; // z akan menjadi 1020 (string)
Jika Anda menambahkan angka dan string, hasilnya adalah penggabungan string:
Contoh
var x = 10; var y = "20"; var z = x + y; // z akan menjadi 1020 (sebuah string)
Jika Anda menambahkan string dan bilangan, hasilnya juga adalah penugasan string:
Contoh
var x = "10"; var y = 20; var z = x + y; // z akan menjadi 1020 (string)
Kesalahan yang umum adalah percaya bahwa hasilnya harus menjadi 30:
Contoh
var x = 10; var y = 20; var z = "The result is: " + x + y;
Kesalahan yang umum adalah percaya bahwa hasilnya harus menjadi 102030:
Contoh
var x = 10; var y = 20; var z = "30"; var result = x + y + z;
JavaScript mengompilasi dari kiri ke kanan.
Karena x dan y adalah bilangan, 10 + 20 akan dihitung bersama.
Karena z adalah string, 30 + "30" akan diikat bersama.
String angka
String JavaScript dapat memiliki konten angka:
var x = 100; // x adalah bilangan var y = "100"; // y adalah string
Pada semua operasi bilangan, JavaScript akan mencoba mengkonversi string ke bilangan:
Kasus ini berjalan seperti ini:
var x = "100"; var y = "10"; var z = x / y; // z akan menjadi 10
Kasus ini juga akan berjalan seperti ini:
var x = "100"; var y = "10"; var z = x * y; // z akan menjadi 1000
Kasus ini berjalan seperti ini:
var x = "100"; var y = "10"; var z = x - y; // z akan menjadi 90
namun kasus ini tidak akan berjalan seperti contoh di atas:
var x = "100"; var y = "10"; var z = x + y; // z tidak akan menjadi 110 (melainkan 10010)
Pada contoh terakhir, JavaScript menggunakan operator + untuk penugasan string.
NaN - Non-Nomor
NaN
adalah kata-reservasi JavaScript, yang menunjukkan bahwa angka tersebut bukan angka yang sah.
Percobaan dengan pengambangan dengan string non-bilangan akan menghasilkan NaN (Not a Number):
Contoh
var x = 100 / "Apple"; // x akan menjadi NaN (Not a Number)
namun, jika string mengandung angka, hasilnya akan menjadi bilangan:
Contoh
var x = 100 / "10"; // x akan menjadi 10
Anda dapat menggunakan fungsi JavaScript global isNaN()
untuk menentukan apakah nilai tertentu adalah bilangan:
Contoh
var x = 100 / "Apple"; isNaN(x); // Kembalikan true, karena x bukan bilangan
Harap berhati-hati NaN
Harap berhati-hati NaN
jika Anda menggunakan NaN
:
Contoh
var x = NaN; var y = 5; var z = x + y; // z akan menjadi NaN
Hasilnya mungkin adalah gabungan:
Contoh
var x = NaN; var y = "5"; var z = x + y; // z akan menjadi NaN5
NaN
Adalah bilangan,typeof NaN
Mengembalikan number
:
Contoh
typeof NaN; // Mengembalikan "number"
Infinity
Infinity
(atau -Infinity
Adalah nilai yang dikembalikan oleh JavaScript saat menghitung angka melebihi kisaran yang mungkin.
Contoh
var myNumber = 2; while (myNumber != Infinity) { // Melanjutkan sampai Infinity myNumber = myNumber * myNumber; }
Pembagian dengan 0 (nol) juga akan menghasilkan Infinity
:
Contoh
var x = 2 / 0; // x akan menjadi Infinity var y = -2 / 0; // y akan menjadi -Infinity
Infinity
Adalah bilangan:typeOf Infinity
Mengembalikan number
.
Contoh
typeof Infinity; // Mengembalikan "number"
heksadesimal
JavaScript akan mengartikan yang diawali dengan 0x
nilai konstanta diartikan sebagai heksadesimal.
Contoh
var x = 0xFF; // x akan menjadi 255.
Jangan tulis angka dengan nol di depan (seperti 07).
Beberapa versi JavaScript akan mengartikan angka dengan nol di depan sebagai oktal.
Secara default, Javascript menampilkan angka dalam desimal.
Namun Anda dapat menggunakan toString()
Metode mengeluarkan angka dalam heksadesimal, oktal, atau biner.
Contoh
var myNumber = 128; myNumber.toString(16); // Mengembalikan 80 myNumber.toString(8); // Mengembalikan 200 myNumber.toString(2); // Mengembalikan 10000000
Nilai dapat berupa objek
Secara biasa, nilai JavaScript dibuat melalui nilai asli: var x = 123
tetapi juga dapat dibuat melalui kata kunci new
didefinisikan sebagai objek: var y = new Number(123)
Contoh
var x = 123; var y = new Number(123); // typeof x mengembalikan number // typeof y mengembalikan object
Jangan buat objek numerik. Ini akan menurunkan kecepatan eksekusi.
new
Kata kunci memperkomplekskan kode dan menghasilkan beberapa hasil yang tak terduga:
ketika menggunakan ==
Bilangan yang sama terlihat sama saat menggunakan operator sama dengan:
Contoh
var x = 500; var y = new Number(500); // (x == y) adalah true, karena nilai x dan y sama
ketika menggunakan ===
Setelah operator sama dengan, bilangan yang sama menjadi berbeda, karena ===
Operator memerlukan tipe dan nilai yang sama untuk memadai.
Contoh
var x = 500; var y = new Number(500); // (x === y) adalah false, karena tipe x dan y berbeda
bahkan yang buruk. Objek tidak dapat dibandingkan:
Contoh
var x = new Number(500); var y = new Number(500); // (x == y) adalah false, karena objek tidak dapat dibandingkan
Objek JavaScript tidak dapat dibandingkan.
- Halaman Sebelumnya Template String JS
- Halaman Berikutnya BigInt JS