控制台输出数组问题

本文探讨了在JavaScript中遇到的控制台输出数组时与预期不符的问题。通过使用console.log和console.dir尝试输出,发现结果相同。作者通过引入debugger进行代码调试,揭示了控制台显示的是数组的最终状态,而非运行过程中的中间状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

控制台输出数组问题

var reverse = function(x) {

   var resultArr = [];
   var intToStr = x.toString();
   for(var i = intToStr.length-1;i > 0;i--){
       resultArr.push(intToStr[i]);
       var d = resultArr;
       console.log(d);

   }

   if(intToStr[0] == "-"){
      resultArr.unshift(intToStr[0]);
      var a= resultArr;

   }else{
	    resultArr.push(intToStr[0]);
   }
   
   
   var b = resultArr;

   var resultNum = parseInt(resultArr.join(""));

   if(resultNum <= Math.pow(-2,31) || resultNum >= Math.pow(2,31) - 1 ){
       return 0;
   }
   return resultNum;

};

var m =reverse(-123);
console.log(m);

内心想法控制台输出的内容应该是这样
在这里插入图片描述

没想到浏览器却给了我这样的答案:
在这里插入图片描述

一开始觉得会不会是console.log和console.dir的原因,试着用console.dir输出也一样,后来了解到在js中有一个debugger功能,可以设置断点让我们了解到js运行过程
原来控制台中会根据内存中存放的数据修改数组d里面的内容
结果就是:理想中的想法是js运行的过程没有错,只是控制台是把最终内容呈现给了我们.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值