JavaScript-tietotyypit: Selitetty tyyppi

typeofon JavaScript-avainsana, joka palauttaa muuttujan tyypin, kun sitä kutsutaan. Tämän avulla voit tarkistaa toimintoparametrit tai tarkistaa, onko muuttujia määritelty. On myös muita käyttötarkoituksia.

typeofOperaattori on hyödyllinen, koska se on helppo tapa tarkistaa tyypin muuttujan koodissa. Tämä on tärkeää, koska JavaScript on dynaamisesti kirjoitettu kieli. Tämä tarkoittaa, että sinun ei tarvitse määrittää tyyppejä muuttujille niitä luodessasi. Koska muuttujaa ei ole rajoitettu tällä tavalla, sen tyyppi voi muuttua ohjelman ajon aikana.

Esimerkiksi:

var x = 12345; // number x = 'string'; // string x = { key: 'value' }; // object

Kuten yllä olevasta esimerkistä näet, JavaScriptin muuttuja voi muuttaa tyyppejä koko ohjelman suorituksen ajan. Tätä voi olla vaikea seurata ohjelmoijana, ja tässä typeofoperaattori on hyödyllinen.

typeofOperaattori palauttaa merkkijonon, joka edustaa nykyisen tyyppinen muuttuja. Voit käyttää sitä kirjoittamalla typeof(variable)tai typeof variable. Palataksesi edelliseen esimerkkiin, voit tarkistaa sen muuttujan tyypin xkussakin vaiheessa sen avulla:

var x = 12345; console.log(typeof x) // number x = 'string'; console.log(typeof x) // string x = { key: 'value' }; console.log(typeof x) // object

Tästä voi olla hyötyä tarkistettaessa funktion muuttujan tyyppi ja jatkamalla tarvittaessa.

Tässä on esimerkki funktiosta, joka voi ottaa muuttujan, joka on merkkijono tai numero:

function doSomething(x) { if(typeof(x) === 'string') { alert('x is a string') } else if(typeof(x) === 'number') { alert('x is a number') } }

Toinen tapa, jolla typeofoperaattori voi olla hyödyllinen, on varmistaa, että muuttuja on määritelty ennen kuin yrität käyttää sitä koodissasi. Tämä voi auttaa estämään virheitä ohjelmassa, joita saattaa ilmetä, jos yrität käyttää muuttujaa, jota ei ole määritelty.

function(x){ if (typeof(x) === 'undefined') { console.log('variable x is not defined'); return; } // continue with function here... }

Tuotos typeofoperaattori ei välttämättä ole aina mitä odottaa, kun tarkistaa useita.

Numerot voivat muuttua NaN-arvoksi (ei numero) useista syistä.

console.log(typeof NaN); //"number"

Ehkä yritit kertoa numeron objektilla, koska unohdit käyttää objektin sisällä olevaa numeroa.

var x = 1; var y = { number: 2 }; console.log(x * y); // NaN console.log(typeof (x * y)); // number

Kun tarkistat numeroa, ei riitä tarkistamaan typeofnumeron lähtöä , koska NaNmyös

läpäisee tämän testin.

Tämä toiminto tarkistaa numerot, eikä myöskään salli NaNarvon kulkua.

function isNumber(data) { return (typeof data === 'number' && !isNan(data)); }

Vaikka tämä onkin hyödyllinen validointimenetelmä, meidän on oltava varovaisia, koska javascriptilla on joitain outoja osia ja yksi niistä on seurausta typeoftiettyjen ohjeiden yli. Esimerkiksi javascriptissä monet asiat ovat juuri objectsniin, että löydät.

var x = [1,2,3,4]; console.log(typeof x) // object console.log(typeof null) // object

Lisää tietoa:

MDN-dokumentaatio tyypille