typeof JavaScript

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"

Coba Sendiri

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)

Coba Sendiri

复杂数据

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"

Coba Sendiri

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]}

Coba Sendiri

您可以检查 constructor 属性以确定对象是否为数组(包含 "Array" 一词):

Contoh

function isArray(myArray) {
  return myArray.constructor.toString().indexOf("Array") > -1;
}

Coba Sendiri

或者更简单,您可以检查对象是否为数组函数

Contoh

function isArray(myArray) {
  return myArray.constructor === Array;
}

Coba Sendiri

您可以检查 constructor 属性以确定对象是否为日期(包含 "Date" 一词):

Contoh

function isDate(myDate) {
  return myDate.constructor.toString().indexOf("Date") > -1;
}

Coba Sendiri

或者更简单,您可以检查对象是否为日期函数

Contoh

function isDate(myDate) {
  return myDate.constructor === Date;
}

Coba Sendiri

Undefined

在 JavaScript 中,没有值的变量的值是 undefined。类型也是 undefined

Contoh

let car;    // 值是 undefined,类型也是 undefined。

Coba Sendiri

通过将其值设置为 undefined,可以清空任何变量。类型也将是 undefined

Contoh

car = undefined;    // 值是 undefined,类型也是 undefined。

Coba Sendiri

空值

空值与 undefined 无关。

空字符串既有合法值又有类型。

Contoh

let car = "";    // 值是 "",类型是 "string"

Coba Sendiri

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

Coba Sendiri

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

Coba Sendiri

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

Coba Sendiri