ElleryQu 2018-12-30 19:14 采纳率: 100%
浏览 516
已采纳

javascirpt,用谷歌控制台跑,一个代码块里的所有代码,不是按顺序串行执行的吗?

for (i in Array.from(Array(5).keys())){
    ii = parseInt(i+1)
    path="a"+i+" "+parseInt(i+1)+" "+ii+"b"
    console.log(path)
    }

/** 谷歌控制台执行结果:
    a0 1 1b
    a1 11 11b
    a2 21 21b
    a3 31 31b
    a4 41 41b

    想象的输出结果:
    a0 1 1b
    a1 2 2b 
    ...
**/
  1. 如题。如果不是按顺序执行,我该怎么控制它的执行顺序呢?
  2. parseInt()函数在第一次遍历后为什么会输出这样的结果?它是以什么样的形式被缓存的?第一次执行调用了两次parseInt(),为什么都正确输出了(i+1)的值?

萌新初学JS,被这个东西整蒙了- -

  • 写回答

1条回答 默认 最新

  • 天际的海浪 2018-12-30 11:45
    关注

    在用for (i in 对象) 遍历时 i 是对象中的属性名称,是字符串。
    执行 i+1 是字符串的拼接,不是数值的相加。
    应该是先把i转换成数值再 +1

    for (i in Array.from(Array(5).keys())){
        ii = parseInt(i)+1
        path="a"+i+" "+(parseInt(i)+1)+" "+ii+"b"
        console.log(path)
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么