JS数据下标自动转换问题

var arr = [1,2,3,4,5,6,7]
for(var j in arr){
   console.log(j+1);
   console.log(j-1);
}

输出 j+1 时会将j自动转换为字符串处理。
输出 j-1 时会按照数字处理。
请问这是什么原因?

阅读 1.8k
2 个回答

for in 循环的变量都是字符串(index),+可以用作字符串连接符,你可以改成
console.log(+j+1);

楼上正解。
补充一下,数组是不建议用for in遍历的。
养成写规范代码的习惯。

推荐问题