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 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员