Typeof est un opérateur et une fonction

Dans JavaScript, typeof est un opérateur et une fonction. Est-il mieux utilisé comme opérateur ou comme fonction? Pourquoi?

  • Comment puis-je passer l'ID du client réel d'un contrôle de serveur à une fonction javascript?
  • Appeler une fonction dans un plugin jQuery de l'extérieur
  • Comment travailler avec FileList (de <input type = "file">) en Javascript?
  • La variable globale JS n'est pas définie lors de la première itération
  • Fonction javascript vs. (function () {...} ());
  • Mise à jour de la série Highchart en javascript
  • Sécuriser les nombres aléatoires en javascript?
  • Javascript: ajouter une méthode à la classe de chaîne
  • Trouvez la fonction js avec Firebug
  • Vue partielle MVC4 javascript groupage Problème
  • Jouez 2.0.1 et définissez Access-Control-Allow-Origin
  • Actualiser la page à redimensionner avec javascript ou jquery
  • 2 Solutions collect form web for “Typeof est un opérateur et une fonction”

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

     typeof(typeof) 

    Si vous typeof une fonction, cette expression renverrait 'function' chaîne 'function' , mais cela entraînerait 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 parenthèse-type de notation typeof(foo) vous a fait penser que typeof est une fonction, mais de manière syntaxique, ces parenthèses ne sont pas un appel de fonction – ce sont celles utilisées pour le regroupement, tout comme (2 + 3) *2 . En fait, vous pouvez ajouter n'importe quel nombre de ceux que vous souhaitez:

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

    Je pense que vous choisissez ce que vous voulez en fonction de la clarté, comme une habitude, je l'utilise habituellement comme opérateur de la manière suivante, car il est assez clair, au 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, rend légèrement plus lent à lire. Si vous faites le typeof(thing) c'est la même chose, alors tout ce qui flotte votre bateau. Vous pouvez obtenir une lecture complète et les chaînes à attendre des types ici .

    JavaScript rend le site Web intelligent, beauté et facile à utiliser.