typeof ของ JavaScript

typeof ของ JavaScript

在 JavaScript 中有 5 种不同的可以包含值的数据类型:

  • string
  • number
  • boolean
  • object
  • function

有 6 种类型的对象:

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

以及 2 种不能包含值的数据类型:

  • null
  • undefined

typeof 运算符

您可以使用 typeof 运算符来确定 JavaScript 变量的数据类型。

ตัวอย่าง

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

ลองด้วยตัวเอง

请注意:

  • NaN 的数据类型是数字
  • 数组的数据类型是对象
  • 日期的数据类型是对象
  • null 的数据类型是 object
  • 未定义变量的数据类型为 undefined *
  • 未赋值的变量的数据类型也是 undefined *

您无法使用 typeof 来确定 JavaScript 对象是否是数组(或日期)。

วันที่ตัวเดิม

ข้อมูลตัวเดิมหมายถึงค่าข้อมูลที่เป็นค่าที่เรียบง่ายโดยไม่มีคุณสมบัติและวิธีที่เพิ่มเติม。

typeof ตัวประกาศสามารถคืนค่าประเภทข้อมูลตัวเดิมหนึ่งในรายการต่อไปนี้:

  • string
  • number
  • boolean
  • undefined

ตัวอย่าง

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"。

ตัวอย่าง

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 变量的构造函数。

ตัวอย่าง

"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" คำว่า:

ตัวอย่าง

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

ลองด้วยตัวเอง

หรือง่ายขึ้น คุณสามารถตรวจสอบว่าวัตถุเป็นฟังก์ชันแถว:

ตัวอย่าง

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

ลองด้วยตัวเอง

คุณสามารถตรวจสอบค่า constructor ในวัตถุเพื่อตรวจสอบว่าวัตถุเป็นวันที่ (รวมถึง "Date" คำว่า:

ตัวอย่าง

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

ลองด้วยตัวเอง

หรือง่ายขึ้น คุณสามารถตรวจสอบว่าวัตถุเป็นฟังก์ชันวันที่:

ตัวอย่าง

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

ลองด้วยตัวเอง

undefined

ใน JavaScript ตัวแปรที่ไม่มีค่ามีค่าคือ undefinedประเภทก็เป็น undefined

ตัวอย่าง

let car;    // ค่าคือ undefined ประเภทก็เป็น undefined

ลองด้วยตัวเอง

โดยการตั้งค่าค่าของมันเป็น undefinedสามารถทำให้ตัวแปรว่างได้ undefined

ตัวอย่าง

car = undefined;    // ค่าคือ undefined ประเภทก็เป็น undefined

ลองด้วยตัวเอง

ค่าว่าง

ค่าว่างกับ undefined ไม่เกี่ยวข้อง

ข้อความว่างเปล่ามีค่าที่ถูกต้องและประเภท

ตัวอย่าง

let car = "";    // ค่าคือ "", ประเภทคือ "string"

ลองด้วยตัวเอง

null

ใน JavaScript null คือ "null" มันควรเป็นสิ่งที่ไม่มีอยู่

แต่เมื่อใช้ JavaScriptnull ข้อมูลประเภทของ . คือองค์ประกอบ

คุณสามารถคิดว่ามันเป็น bug หนึ่งของ JavaScripttypeof null มันเป็นวัตถุ null

คุณสามารถกำหนดว่า null เพื่อที่จะเคลี่ยนแปลงตัวแปรเป็นว่าง

ตัวอย่าง

let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"};
person = null;    // ความเป็นค่าของมันตอนนี้คือ null แต่ชนิดยังคงเป็นวัตถุ

ลองด้วยตัวเอง

คุณยังสามารถทำได้โดยการกำหนดว่า undefined เพื่อที่จะเคลี่ยนแปลงตัวแปรเป็นว่าง

ตัวอย่าง

let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"};
person = undefined;   // ความเป็นค่าและชนิดของมันตอนนี้คือ undefined

ลองด้วยตัวเอง

ความแตกต่างระหว่าง undefined และ null

undefined และ null ค่าเท่ากันแต่ชนิดต่างกัน:

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

ลองด้วยตัวเอง