search

Home  >  Q&A  >  body text

javascript - 为什么控制台会显示这样?

为什么会这样,展开是有元素的,但是上面显示的却是0?
不是应该像下面这样吗?

巴扎黑巴扎黑2894 days ago244

reply all(2)I'll reply

  • 巴扎黑

    巴扎黑2017-04-10 17:19:43

    这是因为展开前knqk的长度还是0,等到你展开的时候它的长度变成了2,可能是由于某个定时器或其他异步操作更新了这个数组。

    你可以用下面的代码来验证:

    var arr = [];
    var o = {detail:{}, knqk:arr};
    setTimeout(function(){arr[0]=1;arr[1]=2;}, 100);
    console.log(o);

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 17:19:43

    数组的第一个元素下表不就是0

    reply
    0
  • Cancelreply