typeof của JavaScript

typeof của JavaScript

Trong JavaScript có 5 loại dữ liệu có thể chứa giá trị:

  • string
  • number
  • boolean
  • object
  • function

Có 6 loại đối tượng:

  • Object
  • Date
  • Array
  • String
  • Number
  • Boolean

và 2 loại dữ liệu không thể chứa giá trị:

  • null
  • undefined

toán tử typeof

Bạn có thể sử dụng typeof các toán tử để xác định loại dữ liệu của biến JavaScript.

Mẫu

typeof "Bill"                 // Trả về "string"
typeof 3.14                   // Trả về "number"
typeof NaN                    // Trả về "number"
typeof false                  // Trả về "boolean"
typeof [1,2,3,4]              // Trả về "object"
typeof {name:'Bill', age:19}  // Trả về "object"
typeof new Date()             // Trả về "object"
typeof function () {}         // Trả về "function"
typeof myCar                  // Trả về "undefined" *
typeof null                   // Trả về "object"

Thử trực tiếp

Lưu ý rằng:

  • Kiểu dữ liệu của NaN là số
  • Kiểu dữ liệu của mảng là đối tượng
  • Kiểu dữ liệu của ngày tháng là đối tượng
  • Kiểu dữ liệu của null là object
  • Kiểu dữ liệu của biến chưa được định nghĩa là undefined *
  • Kiểu dữ liệu của biến chưa được gán giá trị cũng là undefined *

Bạn không thể sử dụng typeof để xác định đối tượng JavaScript có phải là mảng (hoặc ngày tháng) hay không.

Ngày nguyên thủy

Giá trị dữ liệu nguyên thủy là một giá trị dữ liệu đơn giản không có thuộc tính và phương thức phụ thuộc.

typeof operators có thể trả về một trong các loại dữ liệu nguyên thủy sau:

  • string
  • number
  • boolean
  • undefined

Mẫu

typeof "Bill"              // Trả về "string"
typeof 3.14                // Trả về "number"
typeof true                // Trả về "boolean"
typeof false               // Trả về "boolean"
typeof x                   // Trả về "undefined" (nếu x không có giá trị)

Thử trực tiếp

Dữ liệu phức tạp

typeof Toán tử có thể trả về một trong hai loại dữ liệu phức tạp sau:

  • function
  • object

typeof Toán tử sẽ trả về "object" cho đối tượng, mảng và null.

typeof Toán tử sẽ không trả về "object" cho hàm.

Mẫu

typeof {name:'Bill', age:19} // Trả về "object"
typeof [1,2,3,4]             // Trả về "object"(không phải "mảng",xin hãy chú ý đến ví dụ dưới đây)
typeof null                  // Trả về "object"
typeof function myFunc(){}   // Trả về "function"

Thử trực tiếp

typeof Toán tử sẽ trả về "object" cho mảng. "object"vì trong JavaScript, mảng là đối tượng.

Loại dữ liệu của toán tử typeof

typeof Toán tử không phải là biến. Nó chỉ là một toán tử. Toán tử (+ - * /) không có loại dữ liệu nào.

Nhưng,typeof Toán tử luônTrả về chuỗi(bao gồm loại của operand)。

Thuộc tính constructor

constructor Thuộc tính trả về hàm cấu tạo của tất cả các biến JavaScript.

Mẫu

"Bill".constructor                // Trả về function String()  {[mã hóa tự nhiên]}
(3.14).constructor                // Trả về function Number()  {[mã hóa tự nhiên]}
false.constructor                 // Trả về function Boolean() {[mã hóa tự nhiên]}
[1,2,3,4].constructor             // Trả về function Array()   {[native code]}
{name:'Bill',age:19}.constructor  // Trả về function Object()  {[native code]}
new Date().constructor            // Trả về function Date()    {[native code]}
function () {}.constructor        // Trả về function Function(){[native code]}

Thử trực tiếp

Bạn có thể kiểm tra thuộc tính constructor để xác định đối tượng có phải là mảng (bao gồm "Array" từ khóa):

Mẫu

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

Thử trực tiếp

hoặc đơn giản hơn, bạn có thể kiểm tra đối tượng có phải làChức năng mảng:

Mẫu

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

Thử trực tiếp

Bạn có thể kiểm tra thuộc tính constructor để xác định đối tượng có phải là ngày tháng (bao gồm "Date" từ khóa):

Mẫu

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

Thử trực tiếp

hoặc đơn giản hơn, bạn có thể kiểm tra đối tượng có phải làChức năng ngày tháng:

Mẫu

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

Thử trực tiếp

Undefined

Trong JavaScript, giá trị của biến không có giá trị là undefined. Loại cũng là undefined

Mẫu

let car;    // Giá trị là undefined, loại cũng là undefined.

Thử trực tiếp

Bằng cách đặt giá trị của nó là undefinedcũng có thể làm trống bất kỳ biến nào. Loại cũng sẽ là undefined

Mẫu

car = undefined;    // Giá trị là undefined, loại cũng là undefined.

Thử trực tiếp

Giá trị rỗng

Giá trị rỗng với undefined Không liên quan.

Chuỗi rỗng có giá trị hợp lệ và loại.

Mẫu

let car = "";    // Giá trị là "", loại là "string"

Thử trực tiếp

Null

Trong JavaScript null là “không có”. Nó nên là thứ không có.

Thật không may, trong JavaScriptnull Loại dữ liệu của .data là một đối tượng.

Bạn có thể xem nó là một lỗi trong JavaScript.typeof null Là một đối tượng. Loại nên là null

Bạn có thể đặt đối tượng thành null Để xóa đối tượng:

Mẫu

let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"};
person = null;    // Hiện tại giá trị là null nhưng loại vẫn là đối tượng

Thử trực tiếp

Bạn cũng có thể đặt đối tượng thành undefined Để xóa đối tượng:

Mẫu

let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"};
person = undefined;   // Hiện tại giá trị và loại đều là undefined

Thử trực tiếp

Sự khác nhau giữa undefined và null

undefinednull Giá trị bằng nhau nhưng loại khác nhau:

typeof undefined           // undefined
typeof null                // object
null === undefined         // false
null == undefined          // true

Thử trực tiếp