Javascript数组数值索引和字符串索引

本文探讨了JavaScript数组中数值和字符串索引的行为。数组索引值的范围是0到2的32次方,超出此范围的数字会被当作字符串处理,成为对象属性而非数组元素。例如,array[-1]="yes" 实际上是为数组添加了一个名为-1的属性。当使用字符串或数字作为索引时,只要在有效范围内,它们都将被转换为数字进行操作。对于字符串索引,添加属性不会改变length属性,因此数组length始终为零。而数值或数字字符串索引会影响数组的length值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 结论
       Javascript数组索引值的范围为0到2的32次方。
  对于任意给定的数字下标值,如果不在此范围内,js会将它转换为一个字符串,并将该下标对应的值作为该数组对象的一个属性值而不是数组元素,
       例如array[-1] = "yes" 其实就相当于给array对象添加了一个名为-1的属性,属性值为yes。
  如果该下标值在合法范围内,则无论该下标值是数字还是数字字符串,都一律会被转化为数字使用,即 array["100"] = 0 和 array[100] = 0 执行的是相同的操作。


二 字符串索引
        当我们试图为一个js数组添加字符串下标的时候,其实就相当于为该数组对象添加了一个属性,属性名称就是我们所谓的“字符串下标”。
        由于为数组对象添加属性不会影响到同为该对象属性的length的值,因此该数组的length一直等于零。

[JavaScript]  纯文本查看  复制代码
?
1
2
3
4
5
6
var array = [];
     array[ "a" ] = "hello" ;
     array[ "b" ] = "world" ;
     array[ "c" ] = "yes" ;
     console.log(array);
     console.log( "length: " + array.length); //0




三 数值索引
        当我们试图为一个js数组添加数值下标或者数字字符串下标的时候,效果一样都会影响数组的length。

[JavaScript]  纯文本查看  复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
//添加数值下标
     var array = [];
     array[ "a" ] = "hello" ;
     array[ "b" ] = "world" ;
     array[ "c" ] = "yes" ;
     array[100] = 100;
     console.log(array);
     console.log( "length: " + array.length); //101
     //添加字符串数字下标
     var array = [];
     array[ "a" ] = "hello" ;
     array[ "b" ] = "world" ;
     array[ "c" ] = "yes" ;
     array[ '100' ] = 100;
     console.log(array);
     console.log( "length: " + array.length); //101
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值