JavaScript特质

问题描述

我正在研究一个程序来学习和提高基本的前端技能。首先,我们使用CodesandBox.io来运行和学习,并在学习的同时进行一些实验。最终,今天下午,当我们遍历数组时,我们遇到了一个奇怪的特性。

我们创建了一个基本的简单数组,并遍历了pop,push,shift,unshift之类的内容,并在通过console.log方法读取动作的结果时,注意到.push和{ {1}}没有被报告。我做了一些快速搜索,并创建了另一个console.log命令:.unshift 该命令返回正确的结果,但我想知道为什么,我不太了解JavaScript的许多更深层次的细节,这种奇怪的性质促使我提出了这个问题。

代码

console.log(JSON.parse(JSON.stringify(lb)));

控制台日志:

let lb = ['bob','Joe','Mike'];

lb.push('last');
lb.unshift('first');

console.log(lb);
console.log(JSON.parse(JSON.stringify(lb)));
console.log('==')
function logArray(arr){
  console.log(arr)
  console.log(JSON.parse(JSON.stringify(lb)));
  console.log('-')
}
logArray(lb);
lb.pop();
logArray(lb);
lb.shift();
logArray(lb);

我会很高兴有人详细介绍为什么["bob","Joe","Mike"] ["first","bob","Mike","last"] == ["bob","last"] - ["bob","Mike"] - ["bob","Mike"] ["bob","Mike"] - 不在阵列中时会返回所有项目,但是更长的爱好者console.log会按预期返回阵列中的项目。我绝对会喜欢这些细节,并希望与本计划中的其他开发人员分享这些细节。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)