在寫JavaScript的時候,最煩人的就是進行瀏覽器適配,尤爲是IE。javascript
使用Chrome做爲調試工具時,console.log的功能是很是方便的,可是,包含console.log的代碼在IE下面就沒有這麼省心了。html
在較低版本的IE裏面,並無內置console對象,致使在代碼裏面試圖調用console.log函數時,會直接拋出異常,致使後面的腳本沒辦法繼續解釋。在較高版本的IE裏面,是有console對象的。java
嘗試吧下面的代碼保存爲HTML文件,使用IE9執行:面試
<script> alert("1"); console.log("2"); alert("3"); </script>
這段代碼在IE下面運行會有兩種結果:瀏覽器
沒有打開過開發人員工具函數
只會出現一個alert彈窗工具
打開過開發人員工具測試
會出現兩個alert彈窗調試
無論你是怎麼想的,當我得知這一狀況致使個人腳本工做異常的時候,真是有千萬頭草泥馬在心頭奔馳而過。這個錯誤比較蛋疼的地方是:1. 瀏覽器不報錯,2. 無法「調試」。code
錯誤緣由這裏說的比較清楚,簡單來講就是必須打開開發者工具,JavaScript解釋環境纔會有console變量。
解決方法也很簡單,有如下幾種:
避免在IE中使用console
使用console時先對console進行判斷
var console = console || { log: function () {} }
目前在IE9及以前的版本是有這個問題的,高版本未測試。