3
console.log()應該在JavaScript中調用變量時打印出變量的值嗎?這是我的假設,但是當我在Firefox(使用Firebug)或Google Chrome(並使用內置的開發工具)中運行下面的代碼時,我似乎得到了數組的「最終」值,而不是陣列。如果我使用alert()語句,它們會打印出我期望的內容 - alert()語句被調用時的數組值。JavaScript:console.log()給出的結果不同於alert()
var params = new Array();
var tmp = new Array('apple', 'banana', 'cat');
for (var i=0; i < tmp.length; i++) {
params[tmp[i]] = [];
}
console.log(params);
/*
SHOWS IN CONSOLE:
- []
+ apple ["jan", "feb", "mar", "apr"]
+ banana ["jan", "feb", "mar", "apr"]
+ apple ["jan", "feb", "mar", "apr"]
*/
alert(print_arr(params));
/*
ALERT BOX TEXT:
[apple]:
[banana]:
[cat]:
*/
console.log('===========================================');
var tmp2 = new Array('jan', 'feb', 'mar', 'apr');
for (var i=0; i < tmp.length; i++) {
for (var j=0; j < tmp2.length; j++) {
params[tmp[i]].push(tmp2[j]);
}
}
console.log(params);
/*
SHOWS IN CONSOLE:
- []
+ apple ["jan", "feb", "mar", "apr"]
+ banana ["jan", "feb", "mar", "apr"]
+ apple ["jan", "feb", "mar", "apr"]
*/
alert(print_arr(params));
/*
ALERT BOX TEXT:
[apple]:jan,feb,mar,apr
[banana]:jan,feb,mar,apr
[cat]:jan,feb,mar,apr
*/
function print_arr(arr) {
var str = '';
for (var k in arr) {
str += '[' + k + ']:' + arr[k].toString() + "\n";
}
return str;
}
控制檯日誌的對象,所以對對象所作的任何更改都將得到體現在記錄objet – 2013-03-20 15:49:54
'console.log(JSON.stringify(yourObj));' - 試試。 – 2013-03-20 15:50:20
爲什麼你創建一個數組並填充屬性而不是值?爲什麼不使用Object來代替? – newtover 2013-03-20 15:53:53