JavaScript之空位数组

使用数组字面量初始化数组时,可以使用一串逗号来创建空位(hole)。ECMAScript会将逗号之间相应索引位置的值当成空位,ES6规范重新定义了该如何处理这些空位。

可以像下面这样创建一个空位数组:

const options = [,,,,,]; // 创建包含5 个元素的数组
console.log(options.length);    // 5
console.log(options);             // [,,,,,]
const options = [1, , , ,5];
// map()会跳过空位置
console.log(options.map(() => 6));   // [6, undefined, undefined, undefined, 6]
// join()视空位置为空字符串
console.log(options.join('-'));      // "1----5"

注意:由于行为不一致和存在性能隐患,因此实践中要避免使用数组空位。如果确实需要空位,则可以显式地用undefined值代替。

一个经典的ECMAScript问题是判断一个对象是不是数组。在只有一个网页(因而只有一个全局作用域)的情况下,使用instanceof操作符就足矣:

if (value instanceof Array){
  // 操作数组
}

这个方法的目的就是确定一个值是否为数组,而不用管它是在哪个全局执行上下文中创建的。来看下面的例子:

if (Array.isArray(value)){
  // 操作数组
}
let colors = ["red", "green", "blue"];
alert(colors.join(", "));      // red, green, blue
alert(colors.join("||"));     // red||green||blue

上一篇文章:JavaScript排序之sort()与reverse()方法

更多资源请关注公众号:【全面资源集

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值