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遍历的。
养成写规范代码的习惯。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题