@blog.justoneplanet.info

日々勉強

Webkitのconsole.logで配列を評価すると値が異なる

以前から知られていた不具合。出力直前でalertさせる以外の解決方法があったので記載しておく。

■再現コード

var ary = ["hoge"];
console.log(ary);
ary[0] = "fuga";
console.log(ary);

Firefox3.6

Firefox3.6のfirebugの場合は以下のように表示される。

["hoge"]
["fuga"]

Chrome8

Chrome8の場合は以下のように表示される。

["fuga"]
["fuga"]

■修正

以下のように文字列として表示するとChrome8でもFirefoxのように表示される。

var ary = ["hoge"];
console.log(ary.toString());
ary[0] = "fuga";
console.log(ary.toString());

もしくは以下のようにJSON.stringifyを使用し、JSON文字列とする。

var ary = ["hoge"];
console.log(JSON.stringify(ary));
ary[0] = "fuga";
console.log(JSON.stringify(ary));

■詳細

console.log object maps are read when you open the treeview on the console, not when they’re output in the console

コメントはまだありません»

No comments yet.

RSS feed for comments on this post.TrackBack URL

Leave a comment