相关疑难解决方法(0)

console.log()在值实际更改之前显示变量的更改值

我理解这段代码.我们制作A的副本并将其称为C.当A被更改时,C保持不变

var A = 1;
var C = A;
console.log(C); // 1
A++;
console.log(C); // 1
Run Code Online (Sandbox Code Playgroud)

但是当A是阵列时,我们会有不同的情况.C不仅会改变,而且会在我们触及A之前发生变化

var A = [2, 1];
var C = A;
console.log(C); // [1, 2]
A.sort();
console.log(C); // [1, 2]
Run Code Online (Sandbox Code Playgroud)

有人可以解释第二个例子中发生的事情吗?

javascript variables google-chrome

43
推荐指数
4
解决办法
3万
查看次数

Google Chrome 的 console.log() 打印 DOM 节点不一致

不是Google Chrome console.log() inconsistency with objects and arrays的重复,因为这个问题与对象和数组无关。


这是一个简单的 HTML 页面:

<head>
  <link rel="stylesheet" href="style.css">
</head>

<body>
  <div></div>
  <div></div>
  <div></div>
  <div></div>

  <script>
    for (const div of document.querySelectorAll("div")) {
      console.log(div);
    }
  </script>
</body>
Run Code Online (Sandbox Code Playgroud)

有时结果会按预期显示:

在此输入图像描述

有时好像我用console.dir()而不是console.log()

在此输入图像描述

很少,我会混合:

在此输入图像描述

当我尝试创建上面所示的最小的、可重现的示例时,我删除了<link>,因为它似乎与问题无关。然而,删除它之后,不一致的情况消失了,所以我恢复了它,并尝试最小化 CSS 本身,直到style.css目前完全为空。因此,不知何故,标签的存在<link>似乎至少与问题有关。

这种行为是否有原因,或者是一个错误?

javascript google-chrome google-chrome-devtools console.log

15
推荐指数
1
解决办法
1621
查看次数

Javascript中的数组行为

我尝试在Chrome Developer Console中执行代码,我得到了这个奇怪的结果,我无法理解

var arr = [[2,2]];console.log('Array is',arr);arr[0] = [3,3]
Run Code Online (Sandbox Code Playgroud)

执行此操作后得到的输出是

Array is [[3,3]]

任务应该在console.log执行完毕后发生.但它在那之前神奇地发生了.

为了澄清我尝试在JsBin中运行相同的代码.但是在JSBin中,我得到了预期的结果

Array is [[2,2]]

但是,此代码会产生预期的chrome结果

var arr = [2,2];console.log('Array is',arr);arr[0] = 3;console.log(arr)

产量 Array is [2,2] [3,2]

有人可以帮助我理解这一点.

javascript arrays google-chrome

8
推荐指数
1
解决办法
79
查看次数

为什么在已经输出后修改来自console.log的chrome开发者工具输出?

以下应该让你理解:

我将值设置为 1。然后在控制台中输出它。这里的输出显示 1。在我将值设置为 2 之后。相同的控制台输出显示 2。

我怎样才能避免这种情况?我尝试调试一些疯狂的东西,并且在输出对象时必须知道对象的值。不是来自对象的最新值。 在此处输入图片说明

javascript google-chrome developer-tools console.log

0
推荐指数
1
解决办法
364
查看次数