相关疑难解决方法(0)

Chrome的JavaScript控制台是否懒于评估数组?

我将从代码开始:

var s = ["hi"];
console.log(s);
s[0] = "bye";
console.log(s);
Run Code Online (Sandbox Code Playgroud)

简单吧?对此,Firebug说:

["hi"]
["bye"]
Run Code Online (Sandbox Code Playgroud)

很棒,但Chrome的JavaScript控制台(7.0.517.41 beta)说:

["bye"]
["bye"]
Run Code Online (Sandbox Code Playgroud)

我做错了什么,或者Chrome的JavaScript控制台在评估我的阵列方面特别懒惰?

在此输入图像描述

javascript arrays console logging google-chrome

116
推荐指数
4
解决办法
2万
查看次数

console.log中的值错误

可能重复:
Chrome的JavaScript控制台是否懒于评估数组?

我在javascript中有以下片段,其输出让我觉得出错了.

1.

a=2;
console.log(a);
a+=2;
console.log(a);
Run Code Online (Sandbox Code Playgroud)

输出:2 4 ; 正如所料

2.

t=[0,2];
console.log(t);
t[0]+=2;
console.log(t);
Run Code Online (Sandbox Code Playgroud)

产出:[2,2] [2,2]

输出不应该是 并且上述两种情况之间的区别是什么导致两种情况都有不同的答案?[0,2] [2,2]

javascript google-chrome

13
推荐指数
2
解决办法
3495
查看次数

Chrome开发者工具中的奇怪的console.log行为

可能重复:
Chrome的JavaScript控制台是否懒于评估数组?

打开Chrome开发者工具并输入:

var a = [];console.log(a);a.push(1);console.log(a);

你会期望这会输出类似的东西

[]
[1]
Run Code Online (Sandbox Code Playgroud)

但相反,它输出

[1]
[1]
Run Code Online (Sandbox Code Playgroud)

行为是相同的

var a = [];console.log(a);a[0] = 1;console.log(a);

谁能解释这种行为?

在OS X上运行Chrome.在32位Windows 7上运行相同的行为.

编辑:无论语句是否在同一行,行为都是相同的.我只是将它们放在一行上,以便于测试.

var a = [];
console.log(a);
a.push(1);
console.log(a);
Run Code Online (Sandbox Code Playgroud)

在一个文件然后运行它会产生相同的行为.

编辑x 2如果您不想制作要测试的文件, 请参阅:http://jsfiddle.net/9N4A6/.

javascript google-chrome

12
推荐指数
1
解决办法
2364
查看次数

console.log中的错误?

可能重复:
Chrome的JavaScript控制台是否懒于评估数组?

我尝试以下代码:

var myList = new Object();
var item   = new Object();
item.text  = "item-1";
myList[3]  = item;

console.log(myList);
console.log(myList[3].text);

// Assign another object to the same entry
var item2   = new Object();
item2.text  = "item-2";
myList[3]  = item2;

console.log(myList);
console.log(myList[3].text);
Run Code Online (Sandbox Code Playgroud)

结果很奇怪:

* Object
  * 3: Object
      text: "item-2"

item-1

* Object
  * 3: Object
      text: "item-2"

item-2
Run Code Online (Sandbox Code Playgroud)

但是 - 如果我在一段时间后执行第二部分(使用setTimeout),并展开第一个对象,我说得对,即:

* Object
  * 3: Object
      text: "item-1"

item-1

* Object
  * 3: Object
      text: "item-2"

item-2
Run Code Online (Sandbox Code Playgroud)

我发现分享它很重要,因为我认为可以浪费大量时间来试图理解他的代码中的错误.如果有人提到一个开放的bug或其他东西 - …

javascript console firefox google-chrome javascript-debugger

5
推荐指数
2
解决办法
1936
查看次数