Comprender la contradicción: por qué typeof Array con objetos devuelve "Objeto"
Los desarrolladores pueden encontrar un fenómeno sorprendente: al invocar typeof en un array Al contener objetos, inexplicablemente devuelve "objeto" en lugar de "matriz". Este artículo profundiza en este comportamiento aparentemente contradictorio.
Al examinar un ejemplo, ilustremos el problema:
$.ajax({
url: 'http://api.twitter.com/1/statuses/user_timeline.json',
data: { screen_name: 'mick__romney'},
dataType: 'jsonp',
success: function(data) {
console.dir(data); //Array[20]
alert(typeof data); //Object
}
});
Aunque console.dir(data) identifica correctamente la variable como una matriz, typeof data devuelve incongruentemente "Objeto".
La explicación radica en la peculiar especificación de JavaScript, donde el operador typeof devuelve el tipo de propiedad interna [[Clase]] del objeto. En el caso de matrices, su propiedad [[Clase]] se establece en "Matriz", pero cuando están rodeadas de objetos, la propiedad [[Clase]] cambia a "Objeto".
Para garantizar una verificación de tipos precisa , los desarrolladores pueden emplear varios enfoques:
Al comprender esta peculiaridad y utilizar estas técnicas, los desarrolladores pueden manejar eficazmente matrices de objetos en su código JavaScript.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3