Seringkali, operator dan fungsi secara otomatis mengonversi nilai yang diberikan ke tipe yang tepat.
Misalnya, alert
secara otomatis mengonversi nilai apa pun menjadi string untuk menampilkannya. Operasi matematika mengubah nilai menjadi angka.
Ada juga kasus ketika kita perlu mengonversi nilai secara eksplisit ke tipe yang diharapkan.
Belum berbicara tentang objek
Dalam bab ini, kita tidak akan membahas objek. Untuk saat ini, kita hanya akan berbicara tentang primitif.
Nanti, setelah kita belajar tentang objek, di bab Konversi objek ke primitif, kita akan melihat bagaimana objek dapat masuk ke dalamnya.
Konversi string terjadi ketika kita membutuhkan bentuk string dari suatu nilai.
Misalnya, alert(value)
melakukannya untuk menunjukkan nilai.
Kita juga bisa memanggil fungsi String(value)
untuk mengonversi nilai menjadi string:
biarkan nilai = benar; peringatan(nilai jenis); // boolean nilai = String(nilai); // sekarang nilainya adalah string "benar" peringatan(nilai jenis); // rangkaian
Konversi string sebagian besar terlihat jelas. false
menjadi "false"
, null
menjadi "null"
, dan seterusnya.
Konversi numerik dalam fungsi dan ekspresi matematika terjadi secara otomatis.
Misalnya, ketika pembagian /
diterapkan pada bukan bilangan:
peringatan("6"/"2"); // 3, string diubah menjadi angka
Kita dapat menggunakan fungsi Number(value)
untuk secara eksplisit mengkonversi value
menjadi angka:
biarkan str = "123"; peringatan(tipe str); // rangkaian misalkan angka = Angka(str); // menjadi angka 123 peringatan(jenis nomor); // nomor
Konversi eksplisit biasanya diperlukan ketika kita membaca nilai dari sumber berbasis string seperti formulir teks tetapi mengharapkan angka yang dimasukkan.
Jika string tersebut bukan angka yang valid, hasil konversi tersebut adalah NaN
. Misalnya:
let age = Number("string sembarang, bukan angka"); peringatan (usia); // NaN, konversi gagal
Aturan konversi numerik:
Nilai | Menjadi… |
---|---|
undefined | NaN |
null | 0 |
true and false | 1 dan 0 |
string | Spasi putih (termasuk spasi, tab t , baris baru n dll.) dari awal dan akhir akan dihapus. Jika string yang tersisa kosong, hasilnya adalah 0 . Jika tidak, nomor tersebut “dibaca” dari string. Sebuah kesalahan memberi NaN . |
Contoh:
peringatan(Nomor("123") ); // 123 peringatan(Nomor("123z") ); // NaN (kesalahan membaca angka di "z") peringatan(Nomor(benar) ); // 1 waspada(Nomor(salah) ); // 0
Harap perhatikan bahwa null
dan undefined
berperilaku berbeda di sini: null
menjadi nol sedangkan undefined
menjadi NaN
.
Kebanyakan operator matematika juga melakukan konversi seperti itu, kita akan melihatnya di bab berikutnya.
Konversi Boolean adalah yang paling sederhana.
Hal ini terjadi dalam operasi logis (nanti kita akan menemui pengujian kondisi dan hal serupa lainnya) tetapi juga dapat dilakukan secara eksplisit dengan panggilan ke Boolean(value)
.
Aturan konversi:
Nilai yang secara intuitif “kosong”, seperti 0
, string kosong, null
, undefined
, dan NaN
, menjadi false
.
Nilai-nilai lain menjadi true
.
Misalnya:
peringatan( Boolean(1) ); // BENAR peringatan( Boolean(0) ); // PALSU peringatan( Boolean("halo") ); // BENAR peringatan( Boolean("") ); // PALSU
Harap diperhatikan: string dengan nol "0"
adalah true
Beberapa bahasa (yaitu PHP) memperlakukan "0"
sebagai false
. Namun dalam JavaScript, string yang tidak kosong selalu true
.
peringatan( Boolean("0") ); // BENAR peringatan( Boolean(" ") ); // spasi, juga benar (string yang tidak kosong juga benar)
Tiga konversi tipe yang paling banyak digunakan adalah string, angka, dan boolean.
String Conversion
– Terjadi saat kita mengeluarkan sesuatu. Dapat dilakukan dengan String(value)
. Konversi ke string biasanya terlihat jelas untuk nilai primitif.
Numeric Conversion
– Terjadi dalam operasi matematika. Dapat dilakukan dengan Number(value)
.
Konversi mengikuti aturan:
Nilai | Menjadi… |
---|---|
undefined | NaN |
null | 0 |
true / false | 1 / 0 |
string | String dibaca “sebagaimana adanya”, spasi (termasuk spasi, tab t , baris baru n dll.) dari kedua sisi diabaikan. String kosong menjadi 0 . Sebuah kesalahan memberi NaN . |
Boolean Conversion
– Terjadi dalam operasi logis. Dapat dilakukan dengan Boolean(value)
.
Mengikuti aturan:
Nilai | Menjadi… |
---|---|
0 , null , undefined , NaN , "" | false |
nilai lainnya | true |
Sebagian besar aturan ini mudah dipahami dan dihafal. Pengecualian penting di mana orang biasanya melakukan kesalahan adalah:
undefined
adalah NaN
sebagai angka, bukan 0
.
"0"
dan string khusus spasi seperti " "
benar sebagai boolean.
Objek tidak tercakup di sini. Kita akan kembali membahasnya nanti di bab Konversi objek ke primitif yang dikhususkan secara eksklusif untuk objek setelah kita mempelajari lebih banyak hal mendasar tentang JavaScript.