JavaScript对象字面量和数组字面量

12
在JavaScript中,对象字面量和数组字面量有什么区别?我知道这与length方法有关,但我并不完全理解。
4个回答

15

Mozilla.org提供了非常好的文字解释,其中包括各种类型的字面量及其示例。

数组字面量

数组字面量是由零个或多个表达式组成的列表,每个表达式表示一个数组元素,它们被方括号([])括起来。使用数组字面量创建数组时,它用指定的值作为其元素进行初始化,并且其长度设置为指定参数的数量。

对象字面量

对象字面量是由零个或多个属性名和与对象关联的值对组成的列表,它们被大括号({})括起来。不应该在语句的开头使用对象字面量。这将导致错误或不按您预期工作,因为{会被解释为块的开始。


3

它们之间的区别在于它们的索引方式不同。
对象具有名称和值对,这些值对没有顺序。在某些浏览器中,添加值的顺序将是遍历对象时获取值的顺序,但并非所有浏览器都是如此。名称通常是字符串。
数组是按数字索引的,顺序完全可靠。


2

对象字面量

var a = {};

数组字面量

var a = [];

就是这样了!


0

PHP的数字数组在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

PHP中的关联数组在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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接