为什么javascript在迭代时会将数组索引转换为字符串?

前端之家收集整理的这篇文章主要介绍了为什么javascript在迭代时会将数组索引转换为字符串?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这个 Javascript逻辑让我困惑.我正在创建一个数组并将其第一个元素设置为数字.当我使用“for”循环进行交互时,Javascript将数组键转换为字符串.为什么?我希望它留下一个数字.
stuff = [];
stuff[0] = 3;

for(var x in stuff) {
    alert(typeof x);
}

解决方法

这是因为你使用for …循环遍历数组,其中通常用于循环对象的属性. javascript引擎可能会转换为字符串,因为字符串类型适合于对象属性名称.

尝试这种更传统的方法

stuff = [];
stuff[0] = 3;

for(var i=0; i<stuff.length; i++) {
    var x = stuff[i];
    alert(typeof x);
}

猜你在找的JavaScript相关文章