typeof
est un mot-clé JavaScript qui retournera le type d'une variable lorsque vous l'appelez. Vous pouvez l'utiliser pour valider les paramètres de fonction ou vérifier si des variables sont définies. Il existe également d'autres utilisations.
L' typeof
opérateur est utile car c'est un moyen simple de vérifier le type d'une variable dans votre code. Ceci est important car JavaScript est un langage typé dynamiquement. Cela signifie que vous n'êtes pas obligé d'assigner des types aux variables lorsque vous les créez. Comme une variable n'est pas limitée de cette manière, son type peut changer pendant l'exécution d'un programme.
Par exemple:
var x = 12345; // number x = 'string'; // string x = { key: 'value' }; // object
Comme vous pouvez le voir dans l'exemple ci-dessus, une variable en JavaScript peut changer de type tout au long de l'exécution d'un programme. Cela peut être difficile à suivre en tant que programmeur, et c'est là que l' typeof
opérateur est utile.
L' typeof
opérateur renvoie une chaîne qui représente le type actuel d'une variable. Vous l'utilisez en tapant typeof(variable)
ou typeof variable
. En revenant à l'exemple précédent, vous pouvez l'utiliser pour vérifier le type de la variable x
à chaque étape:
var x = 12345; console.log(typeof x) // number x = 'string'; console.log(typeof x) // string x = { key: 'value' }; console.log(typeof x) // object
Cela peut être utile pour vérifier le type d'une variable dans une fonction et continuer le cas échéant.
Voici un exemple de fonction qui peut prendre une variable qui est une chaîne ou un nombre:
function doSomething(x) { if(typeof(x) === 'string') { alert('x is a string') } else if(typeof(x) === 'number') { alert('x is a number') } }
L' typeof
opérateur peut également être utile en s'assurant qu'une variable est définie avant d'essayer d'y accéder dans votre code. Cela peut aider à éviter les erreurs dans un programme qui peuvent se produire si vous essayez d'accéder à une variable qui n'est pas définie.
function(x){ if (typeof(x) === 'undefined') { console.log('variable x is not defined'); return; } // continue with function here... }
La sortie de l' typeof
opérateur peut ne pas toujours correspondre à ce que vous attendez lorsque vous recherchez un nombre.
Les nombres peuvent devenir la valeur NaN (Not A Number) pour plusieurs raisons.
console.log(typeof NaN); //"number"
Peut-être avez-vous essayé de multiplier un nombre avec un objet parce que vous avez oublié d'accéder au nombre à l'intérieur de l'objet.
var x = 1; var y = { number: 2 }; console.log(x * y); // NaN console.log(typeof (x * y)); // number
Lors de la vérification d'un nombre, il ne suffit pas de vérifier la sortie de typeof
pour un nombre, car NaN
également
réussit ce test.
Cette fonction vérifie les nombres et ne permet pas non plus à la NaN
valeur de passer.
function isNumber(data) { return (typeof data === 'number' && !isNan(data)); }
Même si c'est une méthode de validation utile, nous devons être prudents car javascript comporte des parties étranges et l'une d'entre elles est le résultat d' typeof
instructions plus particulières. Par exemple, en javascript, beaucoup de choses sont juste objects
pour que vous les trouviez.
var x = [1,2,3,4]; console.log(typeof x) // object console.log(typeof null) // object
Plus d'information:
Documentation MDN pour typeof