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中文網(wǎng)(php.cn)</title> </head> <body> <p> typeof 操作符返回變量、對(duì)象、函數(shù)、表達(dá)式的類型。</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中文網(wǎng)(php.cn)</title> </head> <body> <p> constructor 屬性返回變量或?qū)ο蟮臉?gòu)造函數(shù)。</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中文網(wǎng)(php.cn)</title> </head> <body> <p>判斷是否為數(shù)組。</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中文網(wǎng)(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中文網(wǎng)(php.cn)</title> </head> <body> <p> String() 方法可以將數(shù)字轉(zhuǎn)換為字符串。</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中文網(wǎng)(php.cn)</title> </head> <body> <p>toString() 方法將數(shù)字轉(zhuǎn)換為字符串。</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() 把對(duì)象的值轉(zhuǎn)換為指數(shù)計(jì)數(shù)法。 toFixed() 把數(shù)字轉(zhuǎn)換為字符串,結(jié)果的小數(shù)點(diǎn)后有指定位數(shù)的數(shù)字。 toPrecision() 把數(shù)字格式化為指定的長度。 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 對(duì)象返回一個(gè)月中的某一天 (1 ~ 31)。 getDay() 從 Date 對(duì)象返回一周中的某一天 (0 ~ 6)。 getFullYear() 從 Date 對(duì)象以四位數(shù)字返回年份。 getHours() 返回 Date 對(duì)象的小時(shí) (0 ~ 23)。 getMilliseconds() 返回 Date 對(duì)象的毫秒(0 ~ 999)。 getMinutes() 返回 Date 對(duì)象的分鐘 (0 ~ 59)。 getMonth() 從 Date 對(duì)象返回月份 (0 ~ 11)。 getSeconds() 返回 Date 對(duì)象的秒數(shù) (0 ~ 59)。 getTime() 返回 1970 年 1 月 1 日至今的毫秒數(shù)。 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() 解析一個(gè)字符串,并返回一個(gè)浮點(diǎn)數(shù)。 parseInt() 解析一個(gè)字符串,并返回一個(gè)整數(shù)。 Operator unary +
Operator + boleh digunakan untuk menukar pembolehubah kepada nombor:
Contoh
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)(php.cn)</title> </head> <body> <p> typeof 操作符返回變量或表達(dá)式的類型。</p> <button onclick="myFunction()">點(diǎn)我</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中文網(wǎng)(php.cn)</title> </head> <body> <p> typeof 操作符返回變量或表達(dá)式的類型。</p> <button onclick="myFunction()">點(diǎn)我</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"