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