数组的空元素empty与undefined的区别
- 数组的空元素 empty 表示空位,它不是一种数据类型,而是由于人为修改 arr.length 或者写入时多写了逗号造成的。
1 | var arr = [1, 2, 3, 4, , , 5]; |
- undefined 是一种数据类型,在数组中表示这个位置的值未定义,但它仍然指向某个内存地址,这个内存地址指向的是 undefined。
1 | var arr = [1, 2, 3, undefined, 4, 5]; |
- empty 和 undefined 在操作数组时的主要区别在于:
使用数组的 forEach()
方法遍历时会自动忽略空位,而使用 for 循环则会将 empty 转换为 undefined 并遍历。