typeof este un cuvânt cheie JavaScript care va returna tipul unei variabile atunci când o apelați. Puteți utiliza acest lucru pentru a valida parametrii funcției sau pentru a verifica dacă sunt definite variabilele. Există și alte utilizări.

typeof operatorul este util deoarece este o modalitate ușoară de a verifica tipul unei variabile din codul dvs. Acest lucru este important deoarece JavaScript este un este un limbaj tastat dinamic. Aceasta înseamnă că nu vi se cere să atribuiți tipuri variabilelor atunci când le creați. Deoarece o variabilă nu este restricționată în acest fel, tipul acesteia se poate schimba în timpul rulării unui program.

De exemplu:

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

După cum puteți vedea din exemplul de mai sus, o variabilă din JavaScript poate schimba tipurile de-a lungul executării unui program. Acest lucru poate fi greu de urmărit ca programator, și aici este typeof operatorul este util.

typeof operatorul returnează un șir care reprezintă tipul curent al unei variabile. O folosiți tastând typeof(variable) sau typeof variable. Revenind la exemplul anterior, îl puteți folosi pentru a verifica tipul variabilei x în fiecare etapă:

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

Acest lucru poate fi util pentru verificarea tipului de variabilă într-o funcție și continuarea după caz.

Iată un exemplu de funcție care poate lua o variabilă care este un șir sau un număr:

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

Un alt mod typeof operatorul poate fi util este asigurându-vă că o variabilă este definită înainte de a încerca să o accesați în codul dvs. Acest lucru poate ajuta la prevenirea erorilor dintr-un program care pot apărea dacă încercați să accesați o variabilă care nu este definită.

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

Ieșirea fișierului typeof este posibil ca operatorul să nu fie întotdeauna ceea ce vă așteptați când verificați un număr.
Numerele se pot transforma în valoare NaN (nu un număr) din multiple motive.

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

Poate ați încercat să înmulțiți un număr cu un obiect pentru că ați uitat să accesați numărul din interiorul obiectului.

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

Când verificați un număr, nu este suficient să verificați rezultatul typeof pentru un număr, din moment ce NaN de asemenea
trece acest test.
Această funcție verifică numerele și, de asemenea, nu permite NaN valoare de trecut.

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

Chiar dacă am crezut că aceasta este o metodă de validare utilă, trebuie să fim atenți, deoarece javascript are câteva părți ciudate și una dintre ele este rezultatul typeof peste instrucțiuni particulare. De exemplu, în javascript multe lucruri sunt corecte objects așa că veți găsi.

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

console.log(typeof null)  // object