Array类型、数组创建、数组检测

一、创建数组的基本方式(两种):

1、使用Array构造函数(可以省略new操作符,省略后的效果一样):

    var arr = new Array(10); //创建一个length属性值为10的数组
    var arr = new Array("哈哈"); //创建一个包含一项,即字符串"哈哈"的数组

括号里只有一个数值时,该数值为创建数组元素的个数;两个或多个时,数值为数组的元素

2、数组字面量表示法

    var arr = [];
    var arr = [1,2,]; //不要这样!这样可能会创建一个包含2或3项的数组
    console.log(arr.length); //IE返回3;其他浏览器返回2

    var all = [, , , , ,]; //不要这样!这样可能会创建一个包含5或6项的数组
    console.log(all.length); //IE返回6;其他浏览器返回5

数组all的结果与调用Array构造函数时传递项数在逻辑上是相同的。但是由于IE的实现与其他浏览器不一致(IE会创建包含6项的数组,而其他浏览器会创建包含5项的数组),因此建议不要使用这种语法。

ps: 域对象一样,在使用数组字面量表示法时,也不会调用Array构造函数(Firefox3-除外)

二、索引

读取或设置书序的值。

var arr = ["red", "blue"];
arr[0] = "green"; //设置
arr[4] = "back"; //新增

三、length属性

通过设置这个属性,可以从数组的末尾移除项或向数组中添加新项。

var arr = ["red", "blue", "green"];
arr.length = 1; //移除索引值为0后面的所有元素

var arr = ["red", "blue", "green"];
arr.length = 5; //新增项 arr = ["red", "blue", "green", ,] 以逗号扩展补充

新增项,等同于push()方法:

var arr = ["red", "blue", "green"];
arr[arr.length] = "gray";
arr[arr.length] = "yellow";
document.write(arr);

创建复杂的数组:

var arr = [
    {
        name: "zhangsan",
        age: 20
    },
    [1, 3, 4, "haha", new Object()],
    "hello!",
    20 + 10,
    new Array(1, 2, 3)
];
document.write(arr.length); //5
document.write(arr[0].name); //zhangsan

arr[1][4].say = "hi";
document.write(arr[1][4].say);

ps: 数组最多可包含4 294 967 295个项,超出即会发生异常。

四、检测数组

  • ArrayName instanceof Array; 操作符
  • Array.isArray(ArrayName);方法

instanceof操作符

对于一个全局作用域而言,使用instanceof操作符就能得道结果(有些IE不支持)。
instanceof操作符的问题在于,它假定只有一个全局执行环境。如果有两个以上全局执行环境(如有多

个框架时)就会存在两个以上不同版本的Array构造函数。

var ary = [1, 2, 3, 4, 5];
var obj = {name:"lis", age: 13};

console.log("ary是不是数组:" + (ary instanceof Array));
console.log("obj是不是数组:" + (obj instanceof Array));

Array.isArray()方法

支持此方法的浏览器有IE9+、Firefox 4+、Safari 5+、opera 10.5+和chrome。

console.log("ary是不是数组:" + Array.isArray(ary));
console.log("obj是不是数组:" + Array.isArray(obj));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值