Javascript - 数组如何在内部存储?

标签 javascript arrays object

在 fiddle 中 - http://jsfiddle.net/vwwkf18c/或以下代码片段 -

var a = [3, 4];
var b = [6, 2];
var c = $.extend({}, a, b);
alert(c[1]); //alerts 2
alert(a); //alerts array a contents
alert(c); //does not return contents of c

我的问题 - 1) alert后,我们可以推断“c”是一个对象而不是数组对象。请确认。 2)其次据说数组的内部表示是对象文字,对吗? 这意味着数组“a”将按以下方式存储 -

var a = {
0: 3,
1: 4
}

是吗? 3) a 或 b 是如何在内部存储的,它与“c”的内部表示有何不同?

最佳答案

  1. 参见 the docs : "返回:对象"
  2. 没有。对象字面量是用于创建对象的一段 JavaScript 语法。数组是一种对象类型,它(沿原型(prototype)链)继承自基本对象。 Array 类型具有与基本 Object 不同的 toString 方法,这就是 alert 给出不同结果的原因。
  3. 这是特定于实现的(并且对于任何编写 JavaScript 而不是 JavaScript 运行时的人来说也不重要)

关于Javascript - 数组如何在内部存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27867658/

相关文章:

javascript - 将参数传递给 Raphael.js 中的 .mouseover 函数

javascript - IE JavaScript 重定向

javascript - 在第一个响应时解析 JSON 数组

javascript - 如何在 Shiny R 应用程序中设置 DataTables 行回调?

java - 在Java中创建数组时是否调用了Object构造函数?

PHP MySQL : GET new way to query SQL

Java对象赋值行为不一致?

c - AVR C 中字符数组的按位移位

python - 如何将对象传递给机器人框架中的关键字?

javascript - 如何使用 for in 循环遍历仅打印第二个属性的对象?