Cara menukar nilai kepada jenis angka dalam JavaScript: 1. Gunakan kaedah parseInt() untuk menukar nilai kepada integer 2. Gunakan fungsi parseFloat() untuk menukar nilai kepada titik terapung nombor; 3. Gunakan Operator pendaraban mendarab pembolehubah dengan 1, dan pembolehubah akan ditukar secara automatik kepada nilai berangka, dan hasilnya tidak akan berubah.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.
Kaedah 1: Gunakan parseInt()
parseInt() ialah kaedah global yang menukar nilai kepada integer. Proses penukaran adalah seperti berikut:
Parsing dahulu aksara pada kedudukan 0. Jika ia bukan nombor yang sah, NaN dikembalikan terus.
Jika aksara pada kedudukan 0 ialah nombor atau boleh ditukar kepada nombor yang sah, teruskan menghuraikan aksara pada kedudukan 1. Jika ia bukan nombor yang sah, kembalikan nombor yang sah pada kedudukan 0 secara terus.
Dan seterusnya, menganalisis setiap aksara satu demi satu mengikut tertib dari kiri ke kanan sehingga aksara bukan angka ditemui.
parseInt() akan menukar semua aksara angka sah yang dianalisis sebelum ini kepada nilai berangka dan mengembalikannya.
console.log(parseInt("123abc")); //返回数字123 console.log(parseInt("1.73")); //返回数字1 console.log(parseInt(".123")); //返回值NaN
Mata dalam nombor titik terapung ialah aksara haram untuk parseInt(), jadi bahagian perpuluhan nilai tidak ditukar.
Jika ia adalah rentetan berangka bermula dengan 0, parseInt() akan menganggapnya sebagai nombor perlapanan: mula-mula tukarkannya kepada nilai perlapanan, kemudian tukarkannya kepada nombor perpuluhan dan kembalikannya.
Jika ia adalah rentetan berangka bermula dengan 0x, parseInt() akan menganggapnya sebagai nombor perenambelasan: mula-mula tukarkannya kepada nilai perenambelasan, kemudian tukarkannya kepada nombor perpuluhan dan kembalikannya .
var d = 010; //八进制数字字符串 var e = 0x10; //十六进制数字字符串 console.log(parseInt(d)); //返回十进制数字8 console.log(parseInt(e)); //返回十进制数字16
parseInt() juga menyokong mod asas, yang boleh menukar rentetan digital dalam asas yang berbeza seperti binari, perlapanan dan perenambelasan kepada integer. Mod asas ditentukan oleh parameter kedua fungsi parseInt().
[Contoh 1] Kod berikut menukar rentetan digit heksadesimal "123abc" kepada integer perpuluhan.
var a = "123abc"; console.log(parseInt(a,16)); //返回十进制整数1194684
[Contoh 2] Kod berikut menukar rentetan perduaan, perlapanan dan digit perpuluhan kepada integer perpuluhan.
console.log(parseInt("10",2)); //把二进制数字 10 转换为十进制整数,为 2 console.log(parseInt("10",8)); //把八进制数字 10 转换为十进制整数,为 8 console.log(parseInt("10",10)); //把十进制数字 10 转换为十进制整数,为 10
[Contoh 3] Jika parameter pertama ialah nilai perpuluhan dan mengandungi awalan 0, untuk mengelakkan salah faham sebagai nombor perlapanan, nilai parameter kedua hendaklah dinyatakan sebagai 10, iaitu , mod asas definisi paparan dan bukannya menggunakan mod asas lalai.
console.log(parseInt("010")); //把默认基模式数字 010 转换为十进制整数为 10 console.log(parseInt("010",8)); //把八进制数字 010 转换为十进制整数为 8 console.log(parseInt("010",10)); //把十进制数字 010 转换为十进制整数为 10
Kaedah 2: Gunakan fungsi parseFloat()
parseFloat() juga merupakan kaedah global, ia boleh menukar nilai kepada nombor titik terapung, yang ialah, ia boleh mengenali titik perpuluhan pertama yang muncul, manakala titik perpuluhan kedua dianggap haram. Proses penghuraian adalah sama dengan kaedah parseInt().
console.log(parseFloat("1.234.5")); //返回数值 1.234
Parameter parseFloat() mestilah rentetan dalam bentuk perpuluhan dan rentetan angka perlapanan atau heksadesimal tidak boleh digunakan. Pada masa yang sama, 0 di hadapan nombor (pengenalan nombor oktal) akan diabaikan, dan nombor perenambelasan akan mengembalikan 0.
console.log(parseFloat("123")); //返回数值 123 console.log(parseFloat("123abc")); //返回数值 123 console.log(parseFloat("010")); //返回数值 10 console.log(parseFloat("0x10")); //返回数值 0 console.log(parseFloat("x10")); //返回数值 NaN
Kaedah 3: Gunakan operator pendaraban
Jika pembolehubah didarab dengan 1, pembolehubah akan ditukar secara automatik kepada nilai berangka oleh JavaScript. Selepas mendarab dengan 1, hasilnya tidak berubah, tetapi jenis nilai ditukar kepada nilai berangka. Jika nilai tidak boleh dikurangkan kepada nombor yang sah, NaN dikembalikan.
var a = 1; //数值 var b = "1"; //数字字符串 console.log(a + (b * 1)); //返回数值 2
[Pembelajaran yang disyorkan: tutorial lanjutan javascript]
Atas ialah kandungan terperinci Bagaimana untuk menukar nilai kepada jenis angka dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!