typeof w JavaScript

typeof w JavaScript

W JavaScript istnieją 5 różnych typów danych, które mogą zawierać wartości:

  • string
  • number
  • boolean
  • object
  • function

Istnieją 6 typów obiektów:

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

oraz 2 typów danych, które nie mogą zawierać wartości:

  • null
  • undefined

Operator typeof

Możesz użyć typeof Operator do określenia typu danych zmiennej JavaScript.

Przykład

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

Spróbuj sam

Uwaga:

  • Typ danych NaN to liczba
  • Typ danych tablicy to obiekt
  • Typ danych daty to obiekt
  • Typ danych null to obiekt
  • Typ danych niezdefiniowanej zmiennej wynosi undefined *
  • Typ danych nieprzypisanej zmiennej również jest undefined *

Nie możesz użyć typeof aby określić, czy obiekt JavaScript jest tablicą (lub datą).

Oryginalna data

Wartość danych oryginalnych to pojedyncza prosta wartość danych bez dodatkowych atrybutów i metod.

typeof Operator może zwrócić jeden z następujących typów danych oryginalnych:

  • string
  • number
  • boolean
  • undefined

Przykład

typeof "Bill"              // Zwraca "string"
typeof 3.14                // Zwraca "number"
typeof true                // Zwraca "boolean"
typeof false               // Zwraca "boolean"
typeof x                   // Zwraca "undefined" (jeśli x nie ma wartości)

Spróbuj sam

Złożone dane

typeof Operator może zwrócić jeden z dwóch złożonych typów:

  • function
  • object

typeof Operator zwróci "object" dla obiektów, tablic i null.

typeof Operator nie zwróci "object" dla funkcji.

Przykład

typeof {name:'Bill', age:19} // Zwraca "object"
typeof [1,2,3,4]             // Zwraca "object"(nie "array",proszę zwrócić uwagę na poniższy przykład)
typeof null                  // Zwraca "object"
typeof function myFunc(){}   // Zwraca "function"

Spróbuj sam

typeof Operator zwróci dla tablicy "object"ponieważ w JavaScript array jest obiektem.

Typ danych typeof

typeof Operator nie jest zmienną. Jest to tylko operator. Operator (+ - * /) nie ma żadnego typu danych.

Ale,typeof Operator zawszeZwraca ciąg znaków(zawiera typ operanda)。

Atrybut constructor

constructor Atrybut zwraca konstruktor wszystkich zmiennych JavaScript.

Przykład

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

Spróbuj sam

Możesz sprawdzić atrybut constructor, aby określić, czy obiekt jest tablicą (włączając "Array" słowo):

Przykład

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

Spróbuj sam

albo bardziej prosto, możesz sprawdzić, czy obiekt jestfunkcja tablicy:

Przykład

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

Spróbuj sam

Możesz sprawdzić atrybut constructor, aby określić, czy obiekt jest datą (włączając "Date" słowo):

Przykład

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

Spróbuj sam

albo bardziej prosto, możesz sprawdzić, czy obiekt jestfunkcja daty:

Przykład

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

Spróbuj sam

Undefined

W JavaScriptie, zmienna bez wartości ma wartość undefined. Typ również jest undefined

Przykład

let car;    // Wartość to undefined, typ również jest undefined.

Spróbuj sam

przez ustawienie jego wartości na undefinedmoże wyczyścić każdą zmienną. Typ również będzie undefined

Przykład

car = undefined;    // Wartość to undefined, typ również jest undefined.

Spróbuj sam

Pusta wartość

Pusta wartość z undefined Bez znaczenia.

Pusta strona zarówno ma legalną wartość, jak i typ.

Przykład

let car = "";    // Wartość to "", typ to "string"

Spróbuj sam

Null

w JavaScriptie null to "nie ma wartości". Powinno to być coś, co nie istnieje.

Niestety, w JavaScriptie,null Typ danych jest obiektem.

Możesz myśleć o nim jako o błędzie w JavaScripttypeof null To jest obiekt. Typ powinien być null

Możesz ustawić obiekt na: null Aby wyczyścić obiekt:

Przykład

let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"};
person = null;    // teraz wartość to null, ale typ nadal jest obiektem

Spróbuj sam

Możesz również ustawić obiekt na: undefined Aby wyczyścić obiekt:

Przykład

let person = {firstName:"Bill", lastName:"Gates", age:19, eyeColor:"blue"};
person = undefined;   // teraz wartość i typ są undefined

Spróbuj sam

Różnice między undefined a null

undefined i null Wartości są równe, ale typy różne:

typeof undefined           // undefined
typeof null                // obiekt
null === undefined         // fałsz
null == undefined          // prawda

Spróbuj sam