console.log()和alert()區別

admin發表於2018-08-21

之所以要對比標題中的兩個方法,是因為它們都可能會用在程式碼除錯中。

比如想要看看一段程式碼會輸出何種結果,可能會使用如下類似程式碼:

[JavaScript] 純文字檢視 複製程式碼
for(var index=0;index<10;index++){
    index=index+index*2;
}
console.log(index);

上面程式碼沒有任何其他用意,僅僅是演示console.log()的列印功能。

谷歌控制檯效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201808/21/005304cmcmrffffq3131f0.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

紅框中的數字就是console.log方法列印結果。

如果替換成alert(),那麼就會彈出一個警告框,更加醒目。

由此看起來好像這兩個方法對於除錯各有特點,但更為有經驗的程式設計師通常使用console.log。

console.log特點:

(1).console.log方法不會中斷程式碼的執行,而alert會:

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
for(var index=0;index<10;index++){
    console.log(index);
}

谷歌控制檯程式碼執行截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201808/21/005346d326b23em12eb8b6.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

console.log不會中斷程式碼的執行,這樣非常便於逐行分析程式碼的執行情況。

而alert則每執行一次就彈出一個數字,甚至感覺比較煩,也難於細緻的分析程式碼。

但也不能一概而論,可能某些時候,就是需要使用alert彈出一些東西。

二.console.log可以列印物件內部結構:

有時候需要分析一個物件的內部結構,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
let obj={
    webName:"螞蟻部落",
    age:5
}
console.log(obj);

假設我們對obj物件內部結構毫不知情,那麼可以使用console.log列印一下:

a:3:{s:3:\"pic\";s:43:\"portal/201808/21/005430dk2apwnzm4qwaz7v.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

但是alert則不會有這效果,因為它它會隱式的呼叫相應物件的toString()方法:

[JavaScript] 純文字檢視 複製程式碼
let obj={
    webName:"螞蟻部落",
    age:5
}
alert(obj);

只會彈出下面這個東西:

a:3:{s:3:\"pic\";s:43:\"portal/201808/21/005505nyh3gjhhne16jhj1.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

相關文章