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 nilai:
null
tidak ditentukan
jenis operator
Anda boleh menggunakan operator jenis untuk melihat jenis data pembolehubah JavaScript.
Instance
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>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>
Run Instance»
Klik butang "Run Instance" untuk melihat contoh dalam talian
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
Pembolehubah tidak ditentukan Jenis data tidak ditentukan
Jika objek ialah Tatasusunan JavaScript atau Tarikh JavaScript, kita tidak boleh menilai jenisnya melalui jenis, kerana kedua-duanya mengembalikan Objek.
atribut pembina
pembina atribut mengembalikan pembina semua pembolehubah JavaScript.
Instance
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>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>
Run Instance»
Klik butang "Run Instance" untuk melihat contoh dalam talian
Anda boleh menggunakan atribut pembina untuk menyemak sama ada objek adalah tatasusunan (Mengandungi rentetan "Array"):
Instance
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>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>
Run Instance»
Klik "Run Instance" butang Lihat contoh dalam talian
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.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>
Run Instance»
Klik "Run Instance" butang Lihat contoh dalam talian
Penukaran Jenis JavaScript
Pembolehubah JavaScript boleh ditukar kepada pembolehubah baharu atau jenis data lain:
Dengan menggunakan fungsi JavaScript
Penukaran automatik melalui JavaScript itu sendiri
Tukar nombor kepada rentetan
Kaedah global String() boleh menukar Convert nombor kepada rentetan.
Kaedah ini boleh digunakan untuk sebarang jenis nombor, huruf, pembolehubah, ungkapan:
Instance
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>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 instance »
Klik butang "Run Instance" untuk melihat contoh dalam talian
Kaedah nombor toString() juga mempunyai kesan yang sama.
Instance
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>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>
Run Instance»
Klik butang "Run Instance" untuk melihat contoh dalam talian
Dalam bab kaedah Nombor, anda boleh menemui lebih banyak kaedah untuk menukar nombor kepada rentetan:
方法 | 描述 |
---|---|
toExponential() | 把对象的值转换为指数计数法。 |
toFixed() | 把数字转换为字符串,结果的小数点后有指定位数的数字。 |
toPrecision() | 把数字格式化为指定的长度。 |
Tukar nilai Boolean kepada rentetan
Kaedah global String() boleh menukar nilai Boolean kepada rentetan.
String(true) // Kembali "true"
Kaedah Boolean toString() juga mempunyai kesan yang sama.
true.toString() // Mengembalikan "true"
Tukar tarikh kepada rentetan
Kaedah global String() boleh menukar tarikh kepada rentetan.
Kaedah tarikhkepadaString( ) mempunyai kesan yang sama.
Contoh
Dalam bab kaedah Tarikh, Anda boleh melihat lebih banyak fungsi untuk menukar tarikh kepada 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 Nombor() 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(" ") // Pulangan 0
Nombor("") // Pulangan 0
Nombor("99 88") // Kembalikan NaN
Dalam bab kaedah Nombor, anda boleh melihat lebih banyak kaedah untuk menukar rentetan kepada nombor:
方法 | 描述 |
---|---|
parseFloat() | 解析一个字符串,并返回一个浮点数。 |
parseInt() | 解析一个字符串,并返回一个整数。 |
Operator Unary +
Operator + boleh digunakan untuk menukar pembolehubah kepada nombor:
Instance
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>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 contoh»
Klik butang "Jalankan contoh" untuk melihat tika dalam talian
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.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>
Run Instance»
Klik butang "Run Instance" untuk melihat contoh dalam talian
Tukar nilai Boolean kepada nombor
Kaedah global Nombor() Tukar nilai Boolean kepada nombor.
Nombor(benar) // Mengembalikan 1
Tukar tarikh kepada nombor
Kaedah global Nombor() Tukar tarikh kepada nombor.
Nombor(d) // Pulangan 1404568027739
kaedah getTime()
juga mempunyai kesan yang sama.Tarikh();d.getTime() // Kembali 1404568027739
Apabila JavaScript cuba beroperasi pada jenis data yang "salah", ia secara automatik akan menukar kepada jenis data "betul".
Output berikut bukan seperti yang anda jangkakan:
"5" + null // Mengembalikan "5null" null ditukar kepada "null"
"5" + 1 // Kembalikan "51" 1 ditukar kepada "1"
"5" - 1 // Pulangan 4 "5" ditukar kepada 5
Ditukar secara automatik kepada rentetan
Apabila anda cuba mengeluarkan objek atau pembolehubah, JavaScript akan secara automatik memanggil kaedah toString() pembolehubah:
// if myVar = {name:"Fjohn"} // penukaran toString Untuk "[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 Ia juga sering ditukar kepada satu sama lain: