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

时间:2014-10-31 14:01:13

标签: javascript object element elements console.log

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

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

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

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

console.log(car[1])

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

当我在计算中使用car [1] .wheels.radius时也是如此,例如3.14 * car [1] .wheels.radius返回NaN,即使这是乘法3.14,数字和车[ 1] .wheels.radius,也是一个数字,所以它应该返回一个数字。

任何人都知道问题可能是什么?

1 个答案:

答案 0 :(得分:1)

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

如果将原语发送到日志,则会立即显示该值,因此在这种情况下,当您发送car[1].wheels.radius时,它的值为20

但是,当您记录一个对象car[1]时,在您检查控制台中的对象之前,实际上不会显示属性的值(如果您使用的是chrome,则会有一点蓝色(i)解释这个)。您可以将其视为记录引用,在展开/检查该引用之前,实际对象状态将不会显示。

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

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