Javascript数组声明:new Array(),new Array(3),['a', 'b', 'c'] 创建不同行为的数组。

11 浏览
0 Comments

Javascript数组声明:new Array(),new Array(3),['a', 'b', 'c'] 创建不同行为的数组。

考虑以下示例的Javascript代码:

`

a = new Array();
a['a1']='foo';
a['a2']='bar';
b = new Array(2);
b['b1']='foo';
b['b2']='bar';
c=['c1','c2','c3'];
console.log(a);
console.log(b);
console.log(c);

`

在Firebug控制台中的结果如下:

对于a(必须通过点击“+”按钮来展开“[]”):

`

[]      
a1  "foo"   
a2  "bar"

`

对于b:

`

[undefined, undefined]

`

对于c:

`

["c1", "c2", "c3"]

`

我的问题是:

  1. 我是否正确使用了array['key']='value'的语法?
  2. 为什么数组b没有按预期工作?
  3. 为什么数组a和c在控制台中显示不同?同时,jQuery似乎无法使用它的.each()方法迭代数组a。
  4. 你能推荐一些关于Javascript数组行为的好教程吗?

注意: Google Chrome的Firebug仅显示[]作为数组'a',没有展开的选项。

编辑:好吧,似乎Javascript中的数组只有数字键,所以将字符串作为键名添加到数组中会创建一个对象。但为什么jQuery的.each不能使用它呢?

`

$.each(a, function ()
    {
    alert ('derp');
    })

`

将此代码追加到脚本中,不会产生任何警报。

0