programming objects new mdn initialize es6 basics array javascript

objects - JavaScript Object Literals & Array Literals



mdn javascript object (4)

¿Cuál es la diferencia entre Object Literals y Array Literals en JavaScript? Sé que tiene algo que ver con el método de longitud, pero no lo entiendo del todo.


La diferencia es la forma en que están indexados.
Los objetos tienen nombre, pares de valores que no están ordenados. En algunos navegadores, el orden en que agregó valores será el orden que obtenga cuando atraviese el objeto pero no en todos. El nombre suele ser una cadena.
Las matrices están indexadas numéricamente y el orden es totalmente confiable


Objeto literal

var a = {};

Array Literal

var a = [];

¡Eso es!


Mozilla.org tiene una muy buena explicación de los diferentes literales con ejemplos.

Array Literals

Una matriz literal es una lista de cero o más expresiones, cada una de las cuales representa un elemento de matriz, entre corchetes ([]). Cuando crea una matriz usando una matriz literal, se inicializa con los valores especificados como sus elementos, y su longitud se establece en la cantidad de argumentos especificados.

Literales de objetos

Un objeto literal es una lista de cero o más pares de nombres de propiedades y valores asociados de un objeto, entre llaves ({}). No debe usar un literal de objeto al comienzo de una instrucción. Esto dará lugar a un error o no se comportará como espera, porque {se interpretará como el comienzo de un bloque.


La matriz numérica de PHP se convierte en una matriz literal o literal de objeto en JavaScript

$ar = array(''apple'', ''orange'', ''banana'', ''strawberry''); echo json_encode($ar); // ["apple","orange","banana","strawberry"] - Array literal echo json_encode($ar, **JSON_FORCE_OBJECT**); // {"0":"apple","1":"orange","2":"banana","3":"strawberry"} - Object Literal

La matriz asociativa de PHP se convierte en un objeto literal en JavaScript

$book = array( "title" => "JavaScript: The Definitive Guide", "author" => "David Flanagan", "edition" => 6 ); echo json_encode($book); // {title: "JavaScript: The Definitive Guide", author: "David Flanagan", edition: 6} - Object Literal