typeof JavaScript
- Halaman Sebelumnya Cara Kerja Map JS
- Halaman Berikutnya Penukaran Jenis JS
typeof JavaScript
Ada 5 jenis data yang boleh mengandungi nilai yang berbeza dalam JavaScript:
string
number
boolean
object
function
Terdapat 6 jenis objek:
Object
Date
Array
String
Number
Boolean
dan 2 jenis data yang tidak boleh mengandungi nilai:
null
undefined
operator typeof
Anda dapat menggunakan typeof
operator untuk menentukan jenis data variabel JavaScript.
Contoh
typeof "Bill" // Pulang "string" typeof 3.14 // Pulang "number" typeof NaN // Pulang "number" typeof false // Pulang "boolean" typeof [1,2,3,4] // Pulang "object" typeof {name:'Bill', age:19} // Pulang "object" typeof new Date() // Pulang "object" typeof function () {} // Pulang "function" typeof myCar // Pulang "undefined" * typeof null // Pulang "object"
Perhatian:
- Jenis data NaN adalah bilangan
- Jenis data array adalah objek
- Jenis data tarikh adalah objek
- Jenis data null adalah object
- Jenis data variabel yang belum dijelaskan adalah undefined *
- Jenis data variabel yang belum diisi adalah undefined *
Anda tidak dapat menggunakan typeof
untuk menentukan sama ada objek JavaScript adalah array (atau tarikh).
Tarikh asal
Nilai data asal merujuk kepada nilai data sederhana tunggal tanpa atribut dan metod.
typeof
Operator boleh mengembalikan salah satu jenis jenis tipe asal berikut:
string
number
boolean
undefined
Contoh
typeof "Bill" // 返回 "string" typeof 3.14 // 返回 "number" typeof true // 返回 "boolean" typeof false // 返回 "boolean" typeof x // 返回 "undefined" (if x has no value)
复杂数据
typeof
运算符可以返回两种复杂类型之一:
function
object
typeof
运算符会为对象、数组和 null 返回 "object"。
typeof
运算符不会为函数返回 "object"。
Contoh
typeof {name:'Bill', age:19} // 返回 "object" typeof [1,2,3,4] // 返回 "object"(非 "array",请注意下面的例子) typeof null // 返回 "object" typeof function myFunc(){} // 返回 "function"
typeof
运算符会为数组返回 "object"
,因为在 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:19}.constructor // 返回 function Object() {[native code]} new Date().constructor // 返回 function Date() {[native code]} function () {}.constructor // 返回 function Function(){[native code]}
您可以检查 constructor 属性以确定对象是否为数组(包含 "Array"
一词):
Contoh
function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1; }
或者更简单,您可以检查对象是否为数组函数:
Contoh
function isArray(myArray) { return myArray.constructor === Array; }
您可以检查 constructor 属性以确定对象是否为日期(包含 "Date"
一词):
Contoh
function isDate(myDate) { return myDate.constructor.toString().indexOf("Date") > -1; }
或者更简单,您可以检查对象是否为日期函数:
Contoh
function isDate(myDate) { return myDate.constructor === Date; }
Undefined
在 JavaScript 中,没有值的变量的值是 undefined
。类型也是 undefined
。
Contoh
let car; // 值是 undefined,类型也是 undefined。
通过将其值设置为 undefined
,可以清空任何变量。类型也将是 undefined
。
Contoh
car = undefined; // 值是 undefined,类型也是 undefined。
Null
在 JavaScript 中 null
即是“无”。它应该是不存在的东西。
不幸的是,在 JavaScript 中,null
数据类型是一个对象。
Anda boleh berfikir ia adalah bug dalam JavaScript.typeof null
Adalah objek. Jenis sepatutnya adalah null
。
Anda boleh menetapkan objek menjadi null
Untuk mengosongkan objek:
Contoh
let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"}; person = null; // Kini nilai adalah null, tetapi jenis masih objek
Anda boleh melakukannya dengan menetapkan objek menjadi undefined
Untuk mengosongkan objek:
Contoh
let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"}; person = undefined; // Kini nilai dan jenis adalah undefined
Perbezaan antara undefined dan null
undefined
dan null
Nilai sepadan tetapi jenis berbeza:
typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true
- Halaman Sebelumnya Cara Kerja Map JS
- Halaman Berikutnya Penukaran Jenis JS