数组一些细节
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组一些细节相关的知识,希望对你有一定的参考价值。
1.数组是特殊的对象,使用方括号访问数组元素就像用方括号访问对象的属性一样,JS将指定的数字索引值转换为字符串(例如 1 变为 ‘1’);来当做属性名来使用。
2.索引值是 0 ~ 2的32次方-2之间的整数。
3.(1)可以用负数或非整数来索引数组,这时,数值转换为字符串,字符串作为属性名来使用。
(2)如果使用非负整数的字符串,他被当做数组索引,而不是对象属性。
(3)当使用一个浮点数和一个非负整数相等,该浮点数被当做数组索引。
a[-1.23] = true; // 创建一个名为‘-1.23’的属性 a[‘1000‘] = 0; // 这是数组的第1001个元素 a[1.000] // 和a[1]相等
4.拥有length属性值的有:数组,类数组,字符串,函数
(1). 数组的length值代表数组的长度,若为非稀疏数组,则代表数组的元素个数。类数组类似数组。
(2). 字符串的length值代表字符串的长度。
(3). 函数的length值代表函数形参的个数。(注意不是实际传入的数目,而是函数定义时设置的形参数目)
有关数组length修改的一些注意:
(1)当用push或其他方式向数组添加新元素,length值自动加1.
(2)当设置length值为一个小于当前长度的非负整数n时,当前数组中那些索引值大于或等于n的元素将被删除。
(3) 当设置length值为一个大于当前长度的非负整数时,将会在尾部创建空区域,但并不添加新元素,数组会变成稀疏数组
5.数组遍历时跳过一些不合法数据:
(1)跳过null 、undefined和不存在的元素 if(!arr[i]) continue;
(2) 跳过undefined和不存在的元素, if(a[i] === undefined) continue;
(3) 跳过不存在的元素 if(!(i in arr)) continue;
以上是关于数组一些细节的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段