tablas - obtener datos de una tabla html javascript
_.función(a) vs. tipo de a=== ''función''? javascript (2)
Creo que podría ser solo un caso de rendimiento: http://jsperf.com/comparing-underscore-js-isfunction-with-typeof-function/2
Y parece que typeof
es más rápido ... entonces mi pregunta es: ¿cuál es más apropiado usar?
No hay ninguna razón para no usar typeof
.
No solo es más rápido, sino que la especificación ECMAScript asegura que todas las funciones tienen un tipo de "función" y que solo las funciones pueden tener un tipo de "función":
Este operador fue diseñado específicamente para obtener el tipo de valor, ¿por qué no usarlo?
En primer lugar, Underscore ya no usa esa implementación. Se optimiza a typeof
menos que typeof /./
function
, como lo hizo al menos en versiones anteriores de Chrome
Puede encontrar esto en el código fuente: http://underscorejs.org/underscore.js
// Optimize `isFunction` if appropriate.
if (typeof (/./) !== ''function'') {
_.isFunction = function(obj) {
return typeof obj === ''function'';
};
}
Nueva jsperf: http://jsperf.com/comparing-underscore-js-isfunction-with-typeof-function/3
Aún muestra un buen rendimiento en FF (pero MUCHO menos que la implementación ingenua que publicaste en la pregunta), que se debe a la sobrecarga de una llamada de función frente a un código recién ingresado.