„JavaScript“ duomenų tipai: paaiškinta

typeofyra „JavaScript“ raktinis žodis, kuris grąžins kintamojo tipą, kai jį iškviesite. Tai galite naudoti funkcijų parametrams patvirtinti arba patikrinti, ar kintamieji yra apibrėžti. Yra ir kitų naudojimo būdų.

typeofOperatorius yra naudinga, nes tai yra paprastas būdas patikrinti kintamojo tipą kodą. Tai svarbu, nes „JavaScript“ yra dinamiškai įvesta kalba. Tai reiškia, kad jums nereikia priskirti tipų kintamiesiems, kai juos kuriate. Kadangi kintamasis nėra ribojamas tokiu būdu, jo tipas gali pasikeisti programos vykdymo metu.

Pavyzdžiui:

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

Kaip matote iš aukščiau pateikto pavyzdžio, „JavaScript“ kintamasis gali pakeisti tipus vykdant programą. Tai gali būti sunku sekti kaip programuotoją, ir čia typeofoperatorius yra naudingas.

typeofOperatorius grąžina eilutę, kuri atstovauja dabartinę tipo kintamąjį. Jį naudojate įvesdami typeof(variable)arba typeof variable. Grįžtant prie ankstesnio pavyzdžio, jį galite naudoti norėdami patikrinti kintamojo tipą xkiekviename etape:

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

Tai gali būti naudinga tikrinant funkcijos kintamojo tipą ir, jei reikia, tęsti.

Toliau pateiktas funkcijos, kuri gali naudoti kintamąjį, kuris yra eilutė arba skaičius, pavyzdys:

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

Kitas būdas, kuriuo typeofoperatorius gali būti naudingas, yra įsitikinimas, kad kintamasis yra apibrėžtas prieš bandant prieiti prie jo savo kode. Tai gali padėti išvengti klaidų programoje, kurios gali atsirasti, jei bandysite pasiekti nenurodytą kintamąjį.

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

typeofOperatoriaus išvestis ne visada gali būti tokia, kokios tikitės tikrindami numerį.

Skaičiai gali tapti NaN (ne skaičiaus) reikšme dėl kelių priežasčių.

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

Gal bandėte skaičių padauginti iš objekto, nes pamiršote pasiekti numerį objekto viduje.

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

Tikrinant numerį nepakanka patikrinti skaičiaus išvestį typeof, nes NaNtaip pat

išlaikys šį testą.

Ši funkcija tikrina skaičius ir neleidžia perduoti NaNvertės.

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

Net manydami, kad tai yra naudingas patvirtinimo metodas, turime būti atsargūs, nes „javascript“ turi keletą keistų dalių ir viena iš jų yra typeofper daug konkrečių instrukcijų rezultatas. Pavyzdžiui, „javascript“ yra daugybė dalykų objects, kuriuos rasite.

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

Daugiau informacijos:

MDN dokumentacija