Penukaran jenis JavaScript
Number() menukar kepada nombor, String() menukar kepada rentetan dan Boolean() menukar kepada nilai Boolean.
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
tidak ditentukan
jenis operator
Anda boleh menggunakan operator jenis untuk menyemak jenis data pembolehubah JavaScript.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网(php.cn)</title> </head> <body> <p> typeof 操作符返回变量、对象、函数、表达式的类型。</p> <p id="demo"></p> <script> document.getElementById("demo").innerHTML = typeof "john" + "<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>
Jalankan program dan cuba
Sila ambil perhatian:
Jenis data NaN ialah nombor
-
Jenis data tatasusunan (Array) ialah objek
Jenis data tarikh (Tarikh) ialah objek
jenis data null ialah objek
Jenis data pembolehubah yang tidak ditentukan adalah tidak ditentukan
Jika objek ialah Array JavaScript atau Tarikh JavaScript, kita tidak boleh menilai mereka melalui Typeof Type, kerana mereka semua mengembalikan Object. Atribut pembina mengembalikan pembina semua pembolehubah JavaScript.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网(php.cn)</title> </head> <body> <p> constructor 属性返回变量或对象的构造函数。</p> <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>
Jalankan atur cara dan cuba
Anda boleh menggunakan atribut pembina untuk menyemak sama ada objek itu tatasusunan (mengandungi rentetan "Array"):
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网(php.cn)</title> </head> <body> <p>判断是否为数组。</p> <p id="demo"></p> <script> var fruits = ["Banana", "Orange", "Apple", "Mango"]; document.getElementById("demo").innerHTML = isArray(fruits); function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1; } </script> </body> </html>Jalankan atur cara dan cuba
Anda boleh menggunakan atribut pembina untuk melihat sama ada objek itu tarikh (mengandungi rentetan "Tarikh") :
Instance
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网(php.cn)</title> </head> <body> <p>判断是否为日期。</p> <p id="demo"></p> <script> var myDate = new Date(); document.getElementById("demo").innerHTML = isDate(myDate); function isDate(myDate) { return myDate.constructor.toString().indexOf("Date") > -1; } </script> </body> </html>Jalankan program untuk mencubanya
Penukaran jenis JavaScript
Pembolehubah JavaScript boleh ditukar kepada pembolehubah baharu atau jenis data lain:oleh menggunakan fungsi JavaScript Penukaran automatik melalui JavaScript itu sendiri
Tukar nombor kepada rentetan
Kaedah global String() boleh menukar nombor Tukar kepada rentetan.
Kaedah ini boleh digunakan untuk sebarang jenis nombor, huruf, pembolehubah, ungkapan:
Instance
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网(php.cn)</title> </head> <body> <p> String() 方法可以将数字转换为字符串。</p> <p id="demo"></p> <script> var x = 123; document.getElementById("demo").innerHTML = String(x) + "<br>" + String(123) + "<br>" + String(100 + 23); </script> </body> </html>
Jalankan program untuk cubalah
Kaedah nombor toString() juga mempunyai kesan yang sama.
Contoh
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网(php.cn)</title> </head> <body> <p>toString() 方法将数字转换为字符串。</p> <p id="demo"></p> <script> var x = 123; document.getElementById("demo").innerHTML = x.toString() + "<br>" + (123).toString() + "<br>" + (100 + 23).toString(); </script> </body> </html>
Jalankan atur cara dan cuba
Cara menukar nombor kepada rentetan:
方法 描述 toExponential() 把对象的值转换为指数计数法。 toFixed() 把数字转换为字符串,结果的小数点后有指定位数的数字。 toPrecision() 把数字格式化为指定的长度。 Tukar nilai Boolean kepada rentetan
Kaedah global String() boleh menukar nilai Boolean kepada rentetan.
String(false) // Mengembalikan "false"
String(true) // Mengembalikan "true"Kaedah Boolean toString() juga mempunyai yang sama kesan .
false.toString() // Mengembalikan "false"
true.toString() // Mengembalikan "true"Tukar tarikh kepada String
Kaedah global String() boleh menukar tarikh kepada rentetan.
String(Date()) // Kembali Kha 17 Jul 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
Kaedah tarikh keString( ) mempunyai kesan yang sama.
Date().toString() // Kembali Kha 17 Jul 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
Tarikh ditukar kepada Fungsi rentetan:
方法 描述 getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。 getFullYear() 从 Date 对象以四位数字返回年份。 getHours() 返回 Date 对象的小时 (0 ~ 23)。 getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。 getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。 getMonth() 从 Date 对象返回月份 (0 ~ 11)。 getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。 getTime() 返回 1970 年 1 月 1 日至今的毫秒数。 Tukar rentetan kepada nombor
Kaedah global Number() boleh menukar rentetan kepada nombor.
Rentetan yang mengandungi nombor (seperti "3.14") ditukar kepada nombor (seperti 3.14).
Rentetan kosong ditukar kepada 0.
Rentetan lain akan ditukar kepada NaN (bukan nombor).
Nombor("3.14") // Kembali 3.14
Nombor(" ") // Kembali 0
Nombor("") // Kembali 0
Nombor("99 88") // Kembalikan NaNKaedah untuk menukar rentetan kepada nombor:
方法 描述 parseFloat() 解析一个字符串,并返回一个浮点数。 parseInt() 解析一个字符串,并返回一个整数。 Operator unary +
Operator + boleh digunakan untuk menukar pembolehubah kepada nombor:
Contoh
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网(php.cn)</title> </head> <body> <p> typeof 操作符返回变量或表达式的类型。</p> <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>
Jalankan atur cara dan cuba
Jika pembolehubah tidak boleh ditukar, ia masih akan menjadi nombor, tetapi nilainya ialah NaN (bukan nombor):
Instance
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网(php.cn)</title> </head> <body> <p> typeof 操作符返回变量或表达式的类型。</p> <button onclick="myFunction()">点我</button> <p id="demo"></p> <script> function myFunction() { var y = "John"; var x = + y; document.getElementById("demo").innerHTML = typeof x + "<br>" + x; } </script> </body> </html>
Jalankan program untuk mencubanya
Tukar boolean kepada nombor
Kaedah global Number() menukarkan nilai Boolean kepada nombor.
Nombor(salah) // Kembalikan 0
Nombor(benar) // Kembalikan 1Tukar tarikh kepada nombor
Kaedah global Number() boleh menukar tarikh kepada nombor.
d = new Date();
Nombor(d) // Mengembalikan 1404568027739Kaedah tarikh getTime() juga mempunyai kesan yang sama.
d = new Date();
d.getTime() // Return 1404568027739
<🎜 🎜>Penukaran jenis automatik
Apabila JavaScript cuba beroperasi pada jenis data yang "salah", ia akan bertukar secara automatik kepada Jenis data "Betul". Output berikut bukan seperti yang anda jangkakan:5 + null // Kembalikan 5 null Tukar kepada 0
"5" + null // Kembalikan "5null" null Tukar kepada "null"
"5" + 1 // Kembalikan "51" 1 Tukar kepada "1"
"5" - 1 // Kembalikan 4 "5" Tukar kepada 5ditukar secara automatik kepada rentetan
Apabila anda cuba untuk mengeluarkan objek atau pembolehubah JavaScript akan secara automatik panggil kaedah toString() pembolehubah:
document.getElementById("demo").innerHTML = myVar;
// jika myVar = {name:"Fjohn"} / / toString ditukar kepada "[objek Objek]"
// jika myVar = [1,2,3,4] // toString ditukar kepada "1,2,3,4"
// jika myVar = new Date() // toString ditukar kepada "Jum 18 Jul 2014 09:08:55 GMT+0200"Nombor dan nilai Boolean juga sering ditukar kepada setiap lain:
// jika myVar = 123 ... ditukar kepada "123"