js语言精粹——数组


数组是一段线性分配的内存,它通过整数去计算偏移并访问其中的元素。数组可以是很快的数据结构。不幸的是,Javascript没有这种数据结构。
js数组提供一个拥有类数组特性的对象。它把数组的下标转变为字符串,用其作为属性。它明显比一个真正的数组慢,但它可以更方便地使用。属性的检索和更新方式与对象一模一样。

数组字面量

js允许数组包含任一混合类型的值。

var numbers = [1,2,3];
//numbers继承array;

长度

每个数组都有一个length属性。js数组的length是没有上界的。如果你用大于或等于当前length的数字作为下标来保存一个元素,那么length将增大来容纳新元素。不会发生数组边界错误。

你可以直接设置length的值,设置更大的length无须给数组分配更多的空间。而把length设小将导致下标大于等于length的属性被删除。

枚举

用for…in…可能导致数组不按顺序出来

辨识数组(区分数组和对象)

var is_array = function(value){
  return value&&
             typeof value === 'object'&&
             value.constructor === Array;
};

var is_array = function(value){
  return value&&typeof value === 'object'&&
            typeof value.length ==='number'&&
            typeof value.splice === 'function'&&
            !(value.propertyIsEnumerable('length'));
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值