typeof di JavaScript

typeof di JavaScript

In JavaScript ci sono 5 tipi di dati diversi che possono contenere valori:

  • string
  • number
  • boolean
  • object
  • function

Ci sono 6 tipi di oggetti:

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

e 2 tipi di dati non contenenti valori:

  • null
  • undefined

operatore typeof

Puoi utilizzare typeof operatore per determinare il tipo di dati di una variabile JavaScript.

Esempio

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

Prova personalmente

Attenzione:

  • Il tipo di dati di NaN è numero
  • Il tipo di dati dell'array è oggetto
  • Il tipo di dati della data è oggetto
  • Il tipo di dati di null è object
  • Il tipo di dati di una variabile non definita è undefined *
  • Il tipo di dati di una variabile non assegnata è anche undefined *

Non è possibile utilizzare typeof per determinare se un oggetto JavaScript è un array (o una data).

Data originale

Il valore di dati originali si riferisce a un singolo valore dati semplice senza attributi e metodi aggiuntivi.

typeof Gli operatori possono restituire uno dei seguenti tipi di dati originali:

  • string
  • number
  • boolean
  • undefined

Esempio

typeof "Bill"              // Restituisce "string"
typeof 3.14                // Restituisce "number"
typeof true                // Restituisce "boolean"
typeof false               // Restituisce "boolean"
typeof x                   // Restituisce "undefined" (se x non ha un valore)

Prova personalmente

Dati complessi

typeof L'operatore può restituire uno dei due tipi complessi:

  • function
  • object

typeof L'operatore typeof restituirà "object" per gli oggetti, gli array e null.

typeof L'operatore typeof non restituirà "object" per le funzioni.

Esempio

typeof {name:'Bill', age:19} // Restituisce "object"
typeof [1,2,3,4]             // Restituisce "object"(non "array",attenzione agli esempi seguenti)
typeof null                  // Restituisce "object"
typeof function myFunc(){}   // Restituisce "function"

Prova personalmente

typeof L'operatore typeof restituirà per gli array "object"poiché gli array sono oggetti in JavaScript.

Tipi di dati di typeof

typeof L'operatore typeof non è una variabile. È solo un operatore. Gli operatori (+ - * /) non hanno alcun tipo di dati.

Ma,typeof L'operatore è sempreRestituisce una stringa(include il tipo dell'operando)。

Proprietà constructor

constructor L'attributo restituisce il costruttore di tutti i variabili JavaScript.

Esempio

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

Prova personalmente

Puoi controllare l'attributo constructor per determinare se un oggetto è un array (incluso "Array" una parola):

Esempio

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

Prova personalmente

o più semplicemente, puoi controllare se un oggetto èFunzione di array:

Esempio

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

Prova personalmente

Puoi controllare l'attributo constructor per determinare se un oggetto è una data (incluso "Date" una parola):

Esempio

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

Prova personalmente

o più semplicemente, puoi controllare se un oggetto èFunzione di data:

Esempio

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

Prova personalmente

Undefined

In JavaScript, il valore di una variabile senza valore è undefined. Anche il tipo è undefined

Esempio

let car;    // Il valore è undefined, il tipo è anche undefined.

Prova personalmente

configurando il suo valore come undefinedpuò svuotare qualsiasi variabile. Il tipo sarà anche undefined

Esempio

car = undefined;    // Il valore è undefined, il tipo è anche undefined.

Prova personalmente

Un valore vuoto

Un valore vuoto con undefined Non rilevante.

Una stringa vuota ha sia un valore legittimo che un tipo.

Esempio

let car = "";    // Il valore è "", il tipo è "string"

Prova personalmente

Null

In JavaScript null è chiamato “null”. Dovrebbe essere qualcosa che non esiste.

Sfortunatamente, in JavaScript,null Il tipo di dati è un oggetto.

Puoi considerarlo un bug di JavaScripttypeof null È un oggetto. Il tipo dovrebbe essere null

Puoi impostare l'oggetto come null Per svuotare l'oggetto:

Esempio

let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"};
person = null;    // Ora il valore è null ma il tipo rimane oggetto

Prova personalmente

Puoi anche impostare l'oggetto come undefined Per svuotare l'oggetto:

Esempio

let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"};
person = undefined;   // Ora il valore e il tipo sono entrambi undefined

Prova personalmente

Differenze tra undefined e null

undefined e null Valori uguali ma tipi diversi:

typeof undefined           // undefined
typeof null                // oggetto
null === undefined         // false
null == undefined          // true

Prova personalmente