316,135
社区成员
发帖
与我相关
我的任务
分享
console.log("----------------------------111111")
let arr = [];
arr.push(1,2,3,4,5,"12345")
console.log(arr)
console.log("----------------------------22222")
arr.splice(1,3,"abc")
console.log(arr)
请问,上面打印的内容是什么??
是不是觉得两次分别打印不同的两次内容?
嘿嘿,用浏览器打开,恰好不同!

应该是打印的两次不一样的内容才对!
我用在线js产生的解雇恰好相反:

用在线js平台打印,却可以得到两次不同的结果
有哪位大佬知道为什么会这样吗???
不是js有问题,而是js在线平台有问题,上面代码在浏览器执行的结果是正确的,因为数组在js中属于引用类型,数组是存储到堆内存中的,splice是对原数组进行修改的,而不是返回一个新的数组,所以两次修改操作数组都是指向的同一个堆内存的空间
这个不是js的问题,是浏览器机制的问题。我曾经也出现过一个类似的,就是浏览器断点打印值是a,但实际打印出来却是b值,即断点值和最终输出值不一致。可能最终输出的时候,值已经发生了变化。
浏览器刷新一下就正常了,我第一次也是一样的
