控制台输出数组问题
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运行的过程没有错,只是控制台是把最终内容呈现给了我们.