En JavaScript typeof
es un operador y una función. ¿Se usa mejor como operador o función? ¿Por qué?typeof es un operador y una función
Respuesta
typeof
es un operador. Se puede comprobar fácilmente usando:
typeof(typeof)
Fueron typeof
una función, esta expresión volvería 'function'
cadena, pero el resultado es un error de sintaxis:
js> typeof(typeof);
typein:8: SyntaxError: syntax error:
typein:8: typeof(typeof);
typein:8: .............^
así, typeof
no puede ser una función. Probablemente, la notación entre paréntesis typeof(foo)
hizo pensar que typeof
es una función, pero sintácticamente, esos paréntesis no son función llamada - son los que se usan para agrupar, al igual que (2 + 3) *2
. De hecho, puede agregar el número que desee:
typeof(((((foo))))); // is equal to typeof foo;
Tenga en cuenta que esto es cierto para otros operadores: '[] instanceof (Object)'. –
creo que elija el que desea basada en la claridad, como un hábito que suelen utilizar como un operador de la siguiente manera porque es bastante claro, al menos IMO:
if(typeof thing === "string") {
alert("this is a string");
}
if(typeof thing === "function") {
alert("this is a function");
}
Esto se opone a esta formato:
if(typeof(thing) === "string") {
alert("this is a string");
}
Lo que para mí, hace que sea un poco más lento de leer. Si lo haces typeof(thing)
es lo mismo, así que lo que sea que flote tu bote. You can get a full read and what strings to expect from types here.
Entonces, ¿no se entiende una mejor manera? ¿Existe una guía de estilo de JavaScript? – hekevintran
@hekevintran - No hay una guía de estándares específica para todos, puedes encontrar un marco importante maduro y seguir su estilo tal vez, algo como jQuery o Prototype ... pero nuevamente estos son los estilos de ese equipo, por lo que no es necesariamente el "estándar". –
maldita sea, no estaba al tanto de poder especificar sans "()". –
- 1. C# /. NET: ¿`typeof (variable)` es una función de idioma posible?
- 2. ¿Qué es una función "operador int"?
- 3. ¿cuál es el typeof (jQuery)
- 4. ¿Se devuelve un operador o una función?
- 5. es vs typeof
- 6. ¿Es posible guardar un Tipo (usando "typeof()") en una enumeración?
- 7. ¿Pasar un operador a una función?
- 8. typeof operator en C
- 9. ¿Cuándo y dónde usar GetType() o typeof()?
- 10. ¿Qué es una función manejar y cómo es útil?
- 11. F # pasar un operador con argumentos a una función
- 12. OCaml: Usar un operador de comparación pasado a una función
- 13. ¿Por qué se necesita typeof?
- 14. ¿Por qué "lock (typeof (MyType))" es un problema?
- 15. creando una función de operador binario dentro de un paquete
- 16. Plantilla de función con un operador
- 17. Usando == operador sobrecargado en una función genérica
- 18. typeOf on return type
- 19. Efectos secundarios dentro de un typeof() expresión
- 20. ¿Cómo funciona 'typeof'?
- 21. Haskell operador vs función precedencia
- 22. ¿Cómo es la var "jQuery" una función y un objeto?
- 23. ¿Cuál es la diferencia entre un algoritmo y una función?
- 24. ¿Cuál es la diferencia entre un método y una función?
- 25. Operador como puntero de función
- 26. sobrecarga del operador (función de amigo y miembro)
- 27. ¿Por qué mi función eliminada no es typeof "undefined" en Node.js?
- 28. En JavaScript, ¿por qué typeof Function.prototype es "función", no "objeto" como otros objetos prototipo?
- 29. Obteniendo typeof en Java
- 30. Operador condicional C# ¿No es una declaración?
Un poco fuera de tema: en realidad, es raro que use 'typeof' estos días. AFAIK, 'typeof' es más lento que una verificación directa, ya que necesita verificar muchos tipos diferentes para devolver una cadena. Por lo tanto, siempre busco el constructor (si es posible), como 'if ((" hello "). Constructor == String) {...}' –
@Sune Rasmussen - Del perfil limitado que acabo de hacer, el la comprobación del constructor en Firefox 3.6 es dos veces más lenta que 'typeof'. Tuve un 'var func = function() {};' y luego hice tanto una función 'typeof func! =' 'Check '' como una comprobación' func.constructor! = Function'. El primero fue dos veces más rápido. – JulianR
Si usa jQuery, el tiempo de ejecución de 'typeof' es insignificante. –