首页 > 数组的属性名类型是如何转换的?

数组的属性名类型是如何转换的?

years[02]==years[2];
true
years['02']==years[2];
false
years[02]==years['2'];
true
years[2]==years['02'];
false
years[02]==years[2];
true
years['02']==years['2'];
false

这是在谷歌浏览器控制台调试的结果,如果是向前看转换成String或者Number的话,那`years[2]==years['02'];
false`就没法解释了。


数组中的元素都是其对象的属性,像 toString 就是一个属性, 但是使用下面这样使用会抛出语法错误,因为属性名称是非法的:

console.log(arr.0); // a syntax error

这是由非法属性造成的,不是 Array 特有的。JavaScript 中数字开头的属性不能跟在点号后面;必须在方括号中使用。比如说,如果你有一个名为 ‘3d’ 的属性,它只能通过方括号的形式进行访问。在 years[2] 中,2会被Javascript 引擎自动调用 toString 转换成一个 string 类型的变量。也就是所都转换成了String类型。
是我记错了toString()方法中数字转换成文字的规则。

【热门文章】
【热门文章】