javascript中alert()與console.log()的區(qū)別
[1]alert()
[1.1]有阻塞作用,不點擊確定,后續(xù)代碼無法繼續(xù)執(zhí)行
[1.2]alert()只能輸出string,如果alert輸出的是對象會自動調(diào)用toString()方法
e.g. alert([1,2,3]);//'1,2,3'
[1.3]alert不支持多個參數(shù)的寫法,只能輸出第一個值
e.g. alert(1,2,3);//1
[2]console.log()
[2.1]在打印臺輸出
[2.2]可以打印任何類型的數(shù)據(jù)
e.g. console.log([1,2,3]);//[1,2,3]
[2.3]支持多個參數(shù)的寫法
e.g. console.log(1,2,3)// 1 2 3
alert 和 console.log 的結(jié)果不同?
score = [1,2,3];
sortedScore = [];
console.log(score);
sortedScore = score.sort(sortNumber)
console.log(sortedScore);
function sortNumber(a, b) {
return b - a;
}
以上輸出:
[3, 2, 1]
[3, 2, 1]
但是改成alert:
score = [1,2,3];
sortedScore = [];
alert(score);
sortedScore = score.sort(sortNumber)
alert(sortedScore);
function sortNumber(a, b) {
return b - a;
}
以上輸出:
1, 2, 3
3, 2, 1
為什么會這樣?不應(yīng)該都是:
1, 2, 3
3, 2, 1
嗎?
經(jīng)過一番研究發(fā)現(xiàn)是chrome實現(xiàn)的問題,對輸出做了不太合適的優(yōu)化,把console.log的實際執(zhí)行推遲,相當(dāng)于“惰性”求值,遇上數(shù)組、對象這樣的引用類型就出上面的問題了。
https://bugs.webkit.org/show_bug.cgi?id=35801
這是一個很有歷史的 BUG,上個月在開發(fā)版已經(jīng)修復(fù)了。
相關(guān)文章
詳細(xì)分析Javascript中創(chuàng)建對象的四種方式
這篇文章詳細(xì)介紹了Javascript中創(chuàng)建對象的幾種方式與每種方式的優(yōu)缺點,其中包括工廠模式、構(gòu)造函數(shù)模式、原型模式和組合使用構(gòu)造函數(shù)模式和原型模式,有需要的小伙伴們一起來學(xué)習(xí)學(xué)習(xí)吧。2016-08-08
HTML5+Canvas調(diào)用手機(jī)拍照功能實現(xiàn)圖片上傳(上)
這篇文章主要為大家詳細(xì)介紹了HTML5+Canvas,和jquery技術(shù),調(diào)用手機(jī)拍照功能實現(xiàn)圖片上傳,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04
JavaScript兩種axios取消請求方式小結(jié)
本文主要介紹了JavaScript兩種axios取消請求方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03

