TypeOf est un opérateur, et le résultat qu'il revient à l'opérande est une chaîne, avec 6 types (uniquement pour ES, pas des objets d'environnement hôte).
1.'undalfined '
2.'boolean '
3.'string '
4. 'Number'
5.'object '
6. «Function»
Parce qu'il s'agit d'un opérateur lui-même et que ce n'est pas une fonction, il n'est pas nécessaire d'ajouter des supports lors de l'utilisation.
La copie de code est la suivante:
if (typeof (obj) === 'Undefined') {
// ...
}
Le type de type est utilisé pour juger les types, et il a plusieurs pièges
1. Retour null est «objet», mais vous ne pouvez pas vraiment l'utiliser comme objet.
La copie de code est la suivante:
var obj = null
if (typeof obj === 'objet') {
obj.a () // Une erreur est rapportée ici
}
2. Le retour nan est «numéro», mais vous ne pouvez pas l'utiliser pour effectuer des opérations arithmétiques.
La copie de code est la suivante:
var obj = {}
var num = parseInt (obj.a)
if (typeof num === 'nombre') {
num = num + 10 // num est toujours nan après l'exécution
}
3. Il ne peut pas distinguer les objets, les tableaux et les opérations régulières, et renvoie «objet» pour toutes les opérations.
La copie de code est la suivante:
var obj = {}
var arr = []
var reg = / pop / g
console.log (typeof obj) // 'objet'
console.log (typeof arr) // "objet"
console.log (typeof reg) // "objet"
4. Versions avant Safar5 et Chrome7 renvoient «fonction» à des objets ordinaires.
Enfin, l'explication dans la spécification est publiée