Le typeof
ne fonctionne pas parfaitement bien, typeof null
renvoie par exemple object
. Existe-t-il une meilleure alternative à ce type d'alternative améliorée intégrée ou sur mesure?typeof fonction correctif/alternative
4
A
Répondre
9
Voir Fixing the JavaScript typeof Operator.
En un mot, vous pouvez utiliser cette fonction:
var toType = function (obj) {
return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
}
toType(null); // -> "null"
toType({}); // -> "object"
toType([]); // -> "array"
toType("asdf"); // -> "string"
toType(/asdf/); // -> "regexp"
// etc.
Vous devriez voir l'article pour les détails sur la raison pour laquelle cela fonctionne comme il le fait et exactement ce que vous pouvez attendre. Il retournera toujours une chaîne, tout comme typeof
.
+0
Vous pouvez utiliser 'var toString = Object.prototype.toString; toString.call (obj) .slice (8, -1) 'qui empêche la création d'objets vides –
Questions connexes
- 1. Pourquoi utiliser ('function' === typeof x) et non (typeof x === 'fonction')
- 2. typeof est un opérateur et une fonction
- 3. typeof dans scriptsharp
- 4. typeof & GetType
- 5. JavaScript: résultat inattendu typeof
- 6. Typeof === 'undefined' question
- 7. javascript typeof/NaN confusion
- 8. typeof (ICollection <>) .GetTypeInfo(). IsAssignableFrom (typeof (IList <>))
- 9. Pourquoi typeof Object, String, Number ... -a fonction Javascript
- 10. Sun Studio compilateur: déclaration de fonction implicite: typeof
- 11. Pourquoi typeof est appelé opérateur au lieu de fonction?
- 12. Javascript instanceof & typeof GWT (JSNI)
- 13. Obtenir typeof en Java
- 14. NHibernate.ISession.CreateCriteria (typeof (BusinessObject)) est {}
- 15. GetType et typeof
- 16. est vs typeof
- 17. Trouver typeof Voir
- 18. Générateur TypeOf générique?
- 19. GCC extension typeof
- 20. Opérateur Typeof() dans vC++
- 21. TypeOf est myType
- 22. RegisterType (typeof) vs RegisterType
- 23. Rhino, typeof et autoboxing confusion
- 24. Comment 'typeof' fonctionne-t-il?
- 25. 'typeid' contre 'typeof' en C++
- 26. MyApphow pour vérifier "typeof MyApp.User.current.language"
- 27. Get typeof (...). Nom utilisant Spring.NET
- 28. équivalent Java de typeof (SomeClass)
- 29. paramètre typeof() - comment ça marche?
- 30. Effectuer une comparaison `typeof JSON`
Que voulez-vous réaliser? Vous pouvez vérifier null avec 'if (variable === null)' – Niko
Une meilleure alternative à 'typeof' généralement, personnalisé ou intégré. –
Qu'est-ce que vous essayez de faire? Une meilleure alternative à 'typeof', mais pour quoi? – sachleen