Penukaran jenis JavaScript
Pembolehubah JavaScript ditaip secara longgar, yang boleh menyimpan sebarang jenis data yang disokong oleh Javascript, dan jenis pembolehubahnya boleh ditukar secara dinamik semasa masa jalan. Sila lihat contoh:
var n = 10;
n = "hello CSSer !";
n = {};
Dalam contoh di atas, mula-mula isytiharkan pembolehubah n dan mulakan nilainya kepada 10 (jenis integer) , kemudian Berikan rentetan "hello CSSer!" kepada n, kemudian tetapkan objek kepadanya, dan akhirnya jenis n ialah jenis objek. Ia boleh dilihat bahawa jenis pembolehubah n adalah dinamik Dalam pengaturcaraan sebenar, kami mengesyorkan untuk tidak menukar jenis pembolehubah dengan kerap, kerana ini tidak baik untuk debugging.
Jenis Data JavaScript
Terdapat 5 jenis data berbeza dalam JavaScript:
rentetan
nombor
boolean
objek
fungsi
3 jenis objek:
Objek
Tarikh
Array
2 jenis data yang tidak mengandungi sebarang nilai:
null
undefined
typeof operator
Anda boleh menggunakan typeof operator untuk menyemak jenis data pembolehubah JavaScript.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <p id="demo"></p> <script> document.getElementById("demo").innerHTML = typeof "tom" + "<br>" + typeof 3.14 + "<br>" + typeof NaN + "<br>" + typeof false + "<br>" + typeof [1,2,3,4] + "<br>" + typeof {name:'john', age:34} + "<br>" + typeof new Date() + "<br>" + typeof function () {} + "<br>" + typeof myCar + "<br>" + typeof null; </script> </body> </html>
Sila ambil perhatian: Jenis data
NaN ialah nombor
Jenis data tatasusunan (Array) ialah objek
Jenis data tarikh (Tarikh) Jenis data objek
null ialah objek
Jenis data pembolehubah tidak ditentukan tidak ditentukan
atribut pembina
atribut pembina mengembalikan pembina semua fungsi pembolehubah JavaScript.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <p id="demo"></p> <script> document.getElementById("demo").innerHTML = "john".constructor + "<br>" + (3.14).constructor + "<br>" + false.constructor + "<br>" + [1,2,3,4].constructor + "<br>" + {name:'john', age:34}.constructor + "<br>" + new Date().constructor + "<br>" + function () {}.constructor; </script> </body> </html>
Penukaran eksplisit
Dengan melakukan penukaran jenis secara manual, Javascript menyediakan Transformasi berikut fungsi:
Tukar kepada jenis angka: Number(campuran), parseInt(rentetan,radix), parseFloat(rentetan)
Tukar kepada jenis rentetan: toString(radix), Rentetan(campuran)
Tukar kepada jenis Boolean: Boolean(campuran)
1. Fungsi Nombor(campuran) boleh menukar sebarang jenis campuran parameter kepada jenis berangka
Peraturannya ialah:
Jika nilai boolean, benar dan palsu ditukar kepada 1 dan 0 masing-masing
Jika nilai angka, kembalikan dirinya.
Jika ia batal, kembalikan 0.
Jika ia tidak ditentukan, kembalikan NaN.
Jika ia adalah rentetan, ikut peraturan berikut:
1) Jika rentetan hanya mengandungi nombor, tukarkannya kepada perpuluhan (abaikan pendahuluan 0)
2) Jika rentetan mengandungi format titik terapung yang sah, tukarkannya kepada nilai titik terapung (abaikan pendahuluan 0)
3) Jika ia rentetan kosong, tukarkannya kepada 0
4) Jika rentetan mengandungi format selain daripada di atas, tukarkannya kepada NaN
Jika ia adalah objek, panggil kaedah valueOf() objek, dan kemudian tukar nilai yang dikembalikan mengikut peraturan sebelumnya. Jika hasil penukaran ialah NaN, panggil kaedah toString() objek dan tukar nilai rentetan yang dikembalikan semula mengikut peraturan sebelumnya.
Nombor("3.14") // Kembali 3.14
Nombor(" ") // Kembali 0
Nombor("") // Kembali 0
Nombor("99 88") // Kembalikan NaN
2. fungsi parseInt(rentetan, radix), tukar rentetan Tukar kepada nilai berangka jenis integer. Ia juga mempunyai peraturan tertentu:
Abaikan ruang di hadapan rentetan sehingga aksara bukan kosong pertama ditemui
Jika yang pertama Jika aksara bukan simbol angka atau tanda negatif, NaN dikembalikan
Jika aksara pertama ialah nombor, penghuraian diteruskan sehingga rentetan dihuraikan atau simbol bukan angka ditemui
Jika di atas Jika hasil analisis langkah bermula dengan 0, ia akan dihuraikan sebagai oktal; jika ia bermula dengan 0x, ia akan dihuraikan sebagai heksadesimal
Jika parameter radix ditentukan, radix akan digunakan sebagai asas. Parse
3. Fungsi parseFloat(string) menukar rentetan kepada nilai jenis titik terapung
Peraturannya pada asasnya adalah sama seperti parseInt , tetapi terdapat beberapa perbezaan: simbol titik perpuluhan pertama dalam rentetan adalah sah, dan parseFloat mengabaikan semua 0s pendahuluan Jika rentetan mengandungi nombor yang boleh dihuraikan sebagai integer, nilai integer dikembalikan bukannya nilai titik terapung.
kaedah toString(radix). Semua jenis nilai kecuali undefined dan null mempunyai kaedah toString(), yang mengembalikan perwakilan rentetan objek
Objek Operasi
Array Tukar elemen Array kepada rentetan. Rentetan yang terhasil dipisahkan koma dan digabungkan.
Boolean Jika nilai Boolean adalah benar, kembalikan "true". Jika tidak, kembalikan "palsu".
Tarikh Mengembalikan perwakilan teks tarikh.
Ralat Mengembalikan rentetan yang mengandungi maklumat ralat yang berkaitan.
Fungsi mengembalikan rentetan dalam format berikut, dengan nama fungsi ialah nama fungsi kaedah toString yang dipanggil:
function functionname( ) { [kod asli] }
Nombor Mengembalikan perwakilan teks nombor.
String Mengembalikan nilai objek String.
Lalai mengembalikan "[nama objek]", dengan nama objek ialah nama jenis objek.
5. Fungsi rentetan(campuran), tukar sebarang jenis nilai kepada rentetan, peraturannya ialah:
Jika terdapat kaedah toString(), panggil kaedah (tanpa lulus parameter radix) dan kembalikan hasilnya
Jika ia batal, kembalikan "null"
Jika ia tidak ditentukan, mengembalikan "undefined"
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <p id="demo"></p> <script> var x = 55; document.getElementById("demo").innerHTML = String(x) + "<br>" + String(13.3) + "<br>" + String(100.99 + 23); </script> </body> </html>
6. Fungsi Boolean (campuran), menukar sebarang jenis nilai kepada Nilai Boolean.
Nilai berikut akan ditukar kepada palsu: false, "", 0, NaN, null, undefined dan sebarang nilai lain akan ditukar kepada benar.
Contoh:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script type="text/javascript"> var i="123abc"; i=parseInt(i);//字符串转整形 alert(i+","+typeof(i));//输出:123,number i="12.3abc"; i=parseFloat(i);//字符串转浮点型 alert(i+","+typeof(i));//输出:12.3,number(可见不管是int还是float都是number类型) i="a123abc"; i=parseInt(i);//字符串转整形 alert(i+","+typeof(i));//输出:NaN,number (由于转换失败,所以提示“不是一个数字,Not a Number”) var num=document.getElementById("num").value; function showMsg(num) { for(var i=0;i<num;i++) { document.write("你好,JavaScript!<br/>"); } } </script> </head> <body> </body> </html>
Unary operator +
Operator + boleh digunakan untuk menukar pembolehubah kepada nombor :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <button onclick="myFunction()">点击</button> <p id="demo"></p> <script> function myFunction() { var y = "5"; var x = + y; document.getElementById("demo").innerHTML = typeof y + "<br>" + typeof x; } </script> </body> </html>