Pengubah Tipe JavaScript
Number()
转换数值,String()
转换字符串,Boolean()
转换布尔值。
Tipe Data JavaScript
JavaScript 中有五种可包含值的数据类型:
- 字符串(string)
- 数字(number)
- 布尔(boolean)
- 对象(object)
- 函数(function)
有三种对象类型:
- 对象(Object)
- 日期(Date)
- 数组(Array)
同时有两种不能包含值的数据类型:
- null
- undefined
typeof 运算符
您可以使用 typeof
运算符来确定 JavaScript 变量的数据类型。
contoh
typeof "Bill" // 返回 "string" typeof 3.14 // 返回 "number" typeof NaN // 返回 "number" typeof false // 返回 "boolean" typeof [1,2,3,4] // 返回 "object" typeof {name:'Bill', age:62} // 返回 "object" typeof new Date() // 返回 "object" typeof function () {} // 返回 "function" typeof myCar // 返回 "undefined" * typeof null // 返回 "object"
请注意:
- NaN 的数据类型是数值
- 数组的数据类型是对象
- 日期的数据类型是对象
- null 的数据类型是对象
- 未定义变量的数据类型是 undefined
- 尚未赋值的变量的数据类型也是 undefined
您无法使用 typeof
去判断 JavaScript 对象是否是数组(或日期)。
typeof 的数据类型
typeof
运算符不是变量。它属于运算符。运算符(比如 +
-
*
/
)没有数据类型。
但是,typeof
始终会返回字符串(包含运算数的类型)。
constructor 属性
constructor
属性返回所有 JavaScript 变量的构造器函数。
contoh
"Bill".constructor // 返回 "function String() { [native code] }" (3.14).constructor // 返回 "function Number() { [native code] }" false.constructor // 返回 "function Boolean() { [native code] }" [1,2,3,4].constructor // 返回 "function Array() { [native code] }" {name:'Bill', age:62}.constructor // 返回" function Object() { [native code] }" new Date().constructor // Mengembalikan "function Date() { [native code] }" function () {}.constructor // Mengembalikan "function Function(){ [native code] }"
Anda boleh memeriksa constructor
Properti untuk menentukan sama ada objek adalah array (termasuk kata "Array"):
contoh
function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1; }
Atau lebih mudah, anda boleh memeriksa sama ada objek adalah fungsi array:
contoh
function isArray(myArray) { return myArray.constructor === Array; }
Anda boleh memeriksa constructor
Properti untuk menentukan sama ada objek adalah tarikh (termasuk kata "Date"):
contoh
function isDate(myDate) { return myDate.constructor.toString().indexOf("Date") > -1; }
Atau lebih mudah, anda boleh memeriksa sama ada objek adalah fungsi tarikh:
contoh
function isDate(myDate) { return myDate.constructor === Date; }
Pengubah Tipe JavaScript
Variabel JavaScript boleh diubah kepada variabel baru serta jenis data lain:
- Dengan menggunakan fungsi JavaScript
- Melalui JavaScript sendiriAutomatikPenuh
Mengubah nilai kepada string
Metode global String()
Mampu mengubah nombor kepada string.
Ia boleh digunakan untuk jenis nombor, teks, variabel atau ekspresi sebarang:
contoh
String(x) // Mengembalikan string daripada variabel nombor x String(123) // Mengembalikan string daripada teks nombor 123 String(100 + 23) // Mengembalikan string daripada nombor dalam ekspresi
metode nombor toString()
Dengan demikian.
contoh
x.toString() (123).toString() (100 + 23).toString()
dimetode nomborDi bab ini, anda akan belajar lebih banyak tentang cara-cara yang boleh digunakan untuk mengubah nombor kepada string:
metode | deskripsi |
---|---|
toExponential() | Mengembalikan string, menggerakkan nombor dan menulis dengan sistem bilangan eksponen. |
toFixed() | Mengembalikan string, menggerakkan nombor dan menulis dengan titik desimal yang ditetapkan. |
toPrecision() | Mengembalikan string, menulis nombor dalam panjang yang ditetapkan. |
mengubah boolean kepada string
Metode global String()
boleh mengubah boolean kepada string.
String(false) // kembali "false" String(true) // kembali "true"
metode boolean toString()
Dengan demikian.
false.toString() // kembali "false" true.toString() // kembali "true"
mengubah tarikh kepada string
Metode global String()
boleh diubah tarikh kepada string.
String(Date())
Metode tanggal toString()
Dengan demikian.
contoh
Date().toString()
diMetode tanggalDalam bab ini, anda akan mendapati lebih banyak metode yang boleh digunakan untuk mengubah tarikh kepada string:
metode | deskripsi |
---|---|
getDate() | mendapatkan hari dalam bentuk nombor (1-31) |
getDay() | atau dalam bentuk nombor (0-6) minggu |
getFullYear() | mendapatkan tahun empat digit (yyyy) |
getHours() | mendapatkan jam (0-23) |
getMilliseconds() | mendapatkan mili detik (0-999) |
getMinutes() | mendapatkan minit (0-59) |
getMonth() | mendapatkan bulan (0-11) |
getSeconds() | mendapatkan saat (0-59) |
getTime() | mendapatkan masa (mili detik sejak 1 Januari 1970) |
mengubah string kepada bilangan
Metode global Number()
boleh mengubah string kepada nombor
string yang mengandungi nombor (contohnya "3.14") diubah kepada nombor (contohnya 3.14).
string kosong diubah kepada 0。
string lain akan diubah kepada NaN
(Not a number,bukan nombor)。
Number("3.14") // kembali 3.14 Number(" ") // kembali 0 Number("") // kembali 0 Number("99 88") // kembali NaN
dimetode nomborDalam bab ini, anda akan mendapati lebih banyak metode yang boleh digunakan untuk mengubah string kepada nombor:
metode | deskripsi |
---|---|
parseFloat() | menguraikan string dan mengembalikan bilangan genap. |
parseInt() | menguraikan string dan mengembalikan integer. |
operator unary +
unary +
operatorBoleh digunakan untuk mengubah variabel kepada nombor:
contoh
var y = "5"; // y ialah string var x = + y; // x ialah nombor
Jika pengalihan variabel gagal, ia masih akan menjadi nombor, tetapi nilai NaN
(Not a number):
contoh
var y = "Bill"; // y ialah string var x = + y; // x adalah angka (NaN)
Mengubah boolean menjadi angka
Metode global Number()
Juga dapat mengubah boolean menjadi angka.
Number(false) // kembali 0 Number(true) // kembali 1
Mengubah tanggal menjadi angka
Metode global Number()
Dapat digunakan untuk mengubah tanggal menjadi angka.
d = new Date(); Number(d)
Metode tanggal getTime()
Dengan demikian.
d = new Date(); d.getTime()
Pengubahan jenis data otomatis
Jika JavaScript mencoba mengoperasikan jenis data "keliru", dia akan mencoba mengubah nilai tersebut menjadi jenis data "benar".
Hasilnya tidak selalu seperti yang Anda harapkan:
5 + null // kembali 5 karena null diubah menjadi 0 "5" + null // kembali "5null" karena null diubah menjadi "null" "5" + 2 // kembali 52 karena 2 diubah menjadi "2" "5" - 2 // kembali 3 karena "5" diubah menjadi 5 "5" * "2" // kembali 10 karena "5" dan "2" diubah menjadi 5 dan 2
pengubahan string otomatis
JavaScript secara otomatis memanggil toString()
Fungsi, ketika Anda mencoba "mengeluarkan" objek atau variabel:
document.getElementById("demo").innerHTML = myVar; // jika myVar = {name:"Fjohn"} // toString mengubah "[object Object]" // jika myVar = [1,2,3,4] // toString mengubah "1,2,3,4" // jika myVar = new Date() // toString mengubah ""
Angka dan boolean juga akan diubah, tetapi tidak terlihat:
// jika myVar = 123 // toString mengubah "123" // jika myVar = true // toString mengubah "true" // jika myVar = false // toString mengubah "false"
JavaScript 类型转换表
下表中列出了将不同的 JavaScript 值转换为数字、字符串和布尔值的结果:
原始值 | 转换为数字 | 转换为字符串 | 转换为逻辑 | 试一试 |
---|---|---|---|---|
false | 0 | "false" | false | 试一试 |
true | 1 | "true" | true | 试一试 |
0 | 0 | "0" | false | 试一试 |
1 | 1 | "1" | true | 试一试 |
"0" | 0 | "0" | true |
试一试 |
"000" | 0 | "000" | true |
试一试 |
"1" | 1 | "1" | true | 试一试 |
NaN | NaN | "NaN" | false | 试一试 |
Infinity | Infinity | "Infinity" | true | 试一试 |
-Infinity | -Infinity | "-Infinity" | true | 试一试 |
"" | 0 |
"" | false |
试一试 |
"20" | 20 | "20" | true | 试一试 |
"twenty" | NaN | "twenty" | true | 试一试 |
[ ] | 0 |
"" | true | 试一试 |
[20] | 20 |
"20" | true | 试一试 |
[10,20] | NaN | "10,20" | true | 试一试 |
["twenty"] | NaN | "twenty" | true | 试一试 |
["ten","twenty"] | NaN | "ten,twenty" | true | 试一试 |
function(){} | NaN | "function(){}" | true | 试一试 |
{ } | NaN | "[object Object]" | true | 试一试 |
null | 0 |
"null" | false | 试一试 |
undefined | NaN | "undefined" | false | 试一试 |
引号中的值指示字符串值。
红色的值指示了(某些)程序员可能不希望的值。