Seperti yang ditunjukkan oleh jawaban lain di sini, ada beberapa cara untuk melakukan konversi:
Number('123');
+'123';
parseInt('123');
parseFloat('123.45')
Saya ingin menyebutkan satu hal lagi parseInt
.
Saat menggunakan parseInt
, masuk akal untuk selalu melewati parameter radix . Untuk konversi desimal, yaitu 10
. Ini adalah nilai default untuk parameter, itulah sebabnya mengapa bisa dihilangkan. Untuk biner, ini adalah 2
dan 16
untuk heksadesimal. Sebenarnya, setiap radix antara dan termasuk 2 dan 36 karya.
parseInt('123') // 123 (don't do this)
parseInt('123', 10) // 123 (much better)
parseInt('1101', 2) // 13
parseInt('0xfae3', 16) // 64227
The parseInt
fungsi, baik, mem-parsing string untuk mengkonversikannya ke nomor. Dalam beberapa implementasi JS, parseInt
parsing nol memimpin sebagai oktal:
Meskipun berkecil hati oleh ECMAScript 3 dan dilarang oleh ECMAScript 5, banyak implementasi menafsirkan string numerik yang dimulai dengan awalan 0 sebagai oktal. Berikut ini mungkin memiliki hasil oktal, atau mungkin memiliki hasil desimal. Selalu tentukan radix untuk menghindari perilaku yang tidak dapat diandalkan ini.
- MDN
Fakta bahwa kode menjadi lebih jelas adalah efek samping yang bagus dari menentukan parameter radix.
Sejak parseFloat
hanya mem-parsing ekspresi numerik dalam radix 10, tidak perlu untuk parameter radix di sini.
Lebih lanjut tentang ini: