JavaScript typeof

JavaScript typeof

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

  • string
  • number
  • boolean
  • object
  • function

有 6 种类型的对象:

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

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

  • null
  • undefined

typeof 运算符

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

Mifano

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"

Tenda kwa pamoja

请注意:

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

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

原始日期

原始数据值指的是没有附加属性和方法的单个简单数据值。

typeof 运算符可以返回以下原始类型之一:

  • string
  • number
  • boolean
  • undefined

Mifano

typeof "Bill"              // Inaisha "string"
typeof 3.14                // Inaisha "number"
typeof true                // Inaisha "boolean"
typeof false               // Inaisha "boolean"
typeof x                   // Inaisha "undefined" (if x has no value)

Tenda kwa pamoja

Data ya uadilifu

typeof Operator inaisha aina mbinu ya data moja kati ya mabinafsi:

  • function
  • object

typeof Operator inaisha viumbe, vijificho na null kwa "object".

typeof Operator hauwezi kumwambia function "object".

Mifano

typeof {name:'Bill', age:19} // Inaisha "object"
typeof [1,2,3,4]             // Inaisha "object" (hakuna "array", angalia maelezo ya hapa chini)
typeof null                  // Inaisha "object"
typeof function myFunc(){}   // Inaisha "function"

Tenda kwa pamoja

typeof Operator inaisha viumbe kwa vijificho "object"kwa sababu katika JavaScript, vijificho ni viumbe.

Data type ya operator typeof

typeof Operator hauwezi kumwambia data type. Hauwezi kumwambia data type. Bado ni operator. Operator (+ - * /) hauwezi kumwambia data type.

lakini,typeof Operator zaidi kufikiaInaisha stringi(kuna aina ya matokeo)。

Mashirika ya constructor

constructor Mashirika ya properti inaishia kila matokeo wa JavaScript kwa mchakato wa kumaliza.

Mifano

"Bill".constructor                // Inaisha function String()  {[kampi cha kifupi]}
(3.14).constructor                // Inaisha function Number()  {[kampi cha kifupi]}
false.constructor                 // Inaisha function Boolean() {[kampi cha kifupi]}
[1,2,3,4].constructor             // Inaonekana function Array()   {[native code]}
{name:'Bill',age:19}.constructor  // Inaonekana function Object()  {[native code]}
new Date().constructor            // Inaonekana function Date()    {[native code]}
function () {}.constructor        // Inaonekana function Function(){[native code]}

Tenda kwa pamoja

Unaweza kuangalia mabaki ya 'constructor' ili kubadilisha kwamba kina ni mafanikio (kumekadiri): "Array" Kwa (ingawa):

Mifano

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

Tenda kwa pamoja

au bora zaidi, unaweza kuangalia kwamba kina niFaa leo kipya ya mafanikio:

Mifano

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

Tenda kwa pamoja

Unaweza kuangalia mabaki ya 'constructor' ili kubadilisha kwamba kina ni tarehe (kumekadiri): "Date" Kwa (ingawa):

Mifano

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

Tenda kwa pamoja

au bora zaidi, unaweza kuangalia kwamba kina niFaa leo kipya:

Mifano

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

Tenda kwa pamoja

Bila yaangalau

Kwenye JavaScript, muona yana wakati bila wakati yake ni undefined. Aina pia itakuwa undefined.

Mifano

let car;    // Wakati ni undefined, aina pia ni undefined.

Tenda kwa pamoja

Kwa kumaliza wakati wake kwa undefinedinaweza kumaliza kila muona. Aina pia itakuwa undefined.

Mifano

car = undefined;    // Wakati ni undefined, aina pia ni undefined.

Tenda kwa pamoja

Bila yaangalau

Bila yaangalau na, undefined Haukumia.

Bila yaangalau niwe niwe niwe, ina wakati na aina.

Mifano

let car = "";    // Wakati ni "", aina ni 'string'

Tenda kwa pamoja

Bila

Kwenye JavaScript, null inaangalia 'bila' yaani 'bila'. Niwe niwe niwe yanaonekana.

Mafaragati, kwenye JavaScript,null 数据类型 niwe niwe niwe.

Inaweza kusema kwamba hii ni kosa cha JavaScript kwa kuzalishwa.typeof null Ni mifano ya kuzalishwa. Aina inayotarajiwa ni null.

Inaweza kumekota kwa kusoma kwa kufikia null Tenda kwa kumekota kwa kusoma kila mifano:

Mifano

let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"};
person = null;    // Hivi sasa thamani ni null, lakini aina inaendelea kuwa object

Tenda kwa pamoja

Inaweza kumekota kwa kusoma kwa kufikia undefined Tenda kwa kumekota kwa kusoma kila mifano:

Mifano

let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"};
person = undefined;   // Hivi sasa, thamani na aina zinafuata

Tenda kwa pamoja

Muundo wa undefined na null

undefined na null Wazito wana ukweli lakini aina tumewahitisha:

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

Tenda kwa pamoja