完全相同变量的不同console.log(变量)结果

Different console.log(variable) outcomes for exactly the same variable

本文关键字:变量 log 结果 console      更新时间:2023-09-26

我的问题是,记录完全相同的变量值,但以不同的方式访问它,会产生两种不同的结果。

console.log(car[1].wheels.radius)

将整数20记录到控制台,因为20是分配给car[1]wheels.radius.的值

现在,如果我记录整个对象:

console.log(car[1])

并且在控制台中手动访问元素radius,我可以看到它的值是"NaN"。

当我在计算中使用car[1].wels.radius时,也会发生同样的情况,例如3.14*car[1].wers.radius返回NaN,尽管这是3.14(一个数字)和car[1].wals.radius(一个数值)的乘积,所以它应该返回一个数字。

有人知道问题出在哪里吗?

可以实际回答标题中关于记录变量时为什么会得到不同结果的问题-

如果一个基元被发送到日志,那么它会立即显示值,因此在这种情况下,当您发送car[1].wheels.radius时,它确实具有值20

然而,当您记录一个对象car[1]时,直到您在控制台中检查该对象时,属性的值才会实际显示(如果您使用chrome,则会有一点蓝色(i)来解释这一点)。就像记录引用一样,在展开/检查引用之前,不会显示实际的对象状态。

因此,您正在对car[1].wheels.radius进行一些计算,在某个时刻将其从20更改为NaN,这解释了差异。

从您显示的代码数量来看,这个问题的原因是未知的。使用调试器逐步检查代码,并查看此值何时更改。