【发布时间】:2010-10-04 18:36:21
【问题描述】:
JavaScript 中的对象文字和数组文字有什么区别?我知道它与长度方法有关,但我不完全理解。
【问题讨论】:
标签: javascript
JavaScript 中的对象文字和数组文字有什么区别?我知道它与长度方法有关,但我不完全理解。
【问题讨论】:
标签: javascript
Mozilla.org 用示例很好地解释了不同的文字。
数组文字
数组字面量是一个零列表或 更多的表达式,每一个 表示一个数组元素,括起来 在方括号 ([]) 中。当你 使用数组创建数组 字面量,它被初始化为 指定值作为其元素,以及 它的长度设置为 指定的参数。
对象文字
对象字面量是一个零列表或 更多对属性名称和 对象的关联值, 括在花括号 ({}) 中。你 不应使用对象字面量 声明的开头。这 将导致错误或不表现为 您期望,因为 { 将是 解释为一个开始 块。
【讨论】:
不同之处在于它们的索引方式。
对象具有未排序的名称、值对。在某些浏览器中,您添加值的顺序将是您在遍历对象时获得的顺序,但不是全部。名称通常是一个字符串。
数组是数字索引的,顺序是完全可靠的
【讨论】:
对象字面量
var a = {};
数组字面量
var a = [];
就是这样!
【讨论】:
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
【讨论】: