Maison >interface Web >js tutoriel >Plusieurs pièges auxquels vous devez faire attention lors de l'utilisation de l'opérateur typeof dans les conseils JavaScript_javascript

Plusieurs pièges auxquels vous devez faire attention lors de l'utilisation de l'opérateur typeof dans les conseils JavaScript_javascript

WBOY
WBOYoriginal
2016-05-16 16:32:081551parcourir

typeof est un opérateur, et le résultat qu'il renvoie à l'opérande est une chaîne, il existe 6 types (uniquement pour ES, sans compter les objets de l'environnement HOST).

1.'non défini'
2.'booléen'
3.'chaîne'
4.'numéro'
5.'objet'
6.'fonction'

Comme il s'agit d'un opérateur en soi, ce n'est pas une fonction, il n'est donc pas nécessaire d'ajouter des parenthèses lors de son utilisation.

Copier le code Le code est le suivant :

if (typeof(obj) === 'indéfini') {
// ...
>

typeof est utilisé pour déterminer le type, mais il présente plusieurs pièges

1. Renvoyer null est un « objet », mais vous ne pouvez pas vraiment l'utiliser comme objet.

Copier le code Le code est le suivant :

var obj = nul
if (typeof obj === 'objet') {
Obj.a() // Erreur signalée ici
>

2. La valeur de retour de NaN est « nombre », mais vous ne pouvez pas l'utiliser pour des opérations arithmétiques.

Copier le code Le code est le suivant :

var obj = {}
var num = parseInt(obj.a)
if (typeof num === 'numéro') {
num = num 10 // Après exécution, num est toujours NaN
>

3. Les objets, les tableaux et les expressions régulières ne peuvent pas être distingués, et les opérations sur eux renvoient toutes « objet ».

Copier le code Le code est le suivant :

var obj = {}
var arr = []
var reg = /pop/g
console.log (type d'obj) // 'objet'
console.log(typeof arr) // 'objet'
console.log(typeof reg) // 'objet'

4. Safar5 et les versions antérieures à Chrome7 renvoient la « fonction » pour les objets normaux.

Enfin, collez l'explication dans le cahier des charges

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn