58 votes

typeof est un opérateur et une fonction

En JavaScript typeof est un opérateur et une fonction. Est-il préférable de l'utiliser comme opérateur ou comme fonction ? Pourquoi ?

179voto

el.pescado Points 7960

typeof est un opérateur. Vous pouvez facilement le vérifier en utilisant... typeof opérateur :

typeof typeof

Étaient typeof une fonction, cette expression renverrait 'function' mais il en résulte une erreur de syntaxe :

js> typeof typeof;
typein:8: SyntaxError: syntax error:
typein:8: typeof typeof;
typein:8: .............^

donc, typeof ne peut pas être une fonction. Probablement une parenthèse-notation typeof(foo) vous a fait réfléchir typeof est une fonction, mais syntaxiquement, ces parenthèses ne sont pas appel de fonction - ils sont ceux utilisés pour le regroupement, tout comme (2 + 3) *2 . En fait, vous pouvez en ajouter autant que vous le souhaitez :

typeof(((((foo))))); // is equal to typeof foo;

5voto

Nick Craver Points 313913

Je pense que vous choisissez ce que vous voulez en fonction de la clarté, par habitude je l'utilise comme opérateur de la manière suivante parce que c'est assez clair, du moins IMO :

if(typeof thing === "string") { 
  alert("this is a string");
}

if(typeof thing === "function") {
  alert("this is a function");
}

Cela s'oppose à ce format :

if(typeof(thing) === "string") { 
  alert("this is a string");
}

Ce qui, pour moi, le rend légèrement plus lent à lire. Si vous faites typeof(thing) c'est la même chose, donc peu importe ce qui fait flotter votre bateau. Vous pouvez lire l'intégralité de ces informations et savoir quelles sont les chaînes de caractères à attendre ici. .

-1voto

eisverticker Points 1

En termes d'ECMAScript 5.1 et comme les autres l'ont déjà dit, il s'agit d'un opérateur http://www.ecma-international.org/ecma-262/5.1/#sec-11.4.3 et oui, je suis un peu en retard, mais peut-être que ça aidera quelqu'un.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X