IE中debug模式已正常模式下运行结果不一样 bug分析
? ? ? ? 前端时间在写javascript前端代码的时候,因为自己对前端也是半瓢水的水平,js中加了很多console.log的代码,项目在发布的过程中出现了很多诡异的现象,话了很长时间排查,最后发现在IE中,console是未被定义的,如果在非debug的模式下,会导致js出现异常,导致某些js无法正常工作,所以在用console.log调试代码的时候一定要注意加一个typeof console==‘undefined’的判断;
? ? ? ?其实可以吧console.LOG单独写成一个自定义函数,所以调试的代码都通过这个自定义打印,这样可以避免粗心操作最后发布的时候代码中包含直接使用console对象;
? ? ? ?如果在IE中出现debug模式和正常模式运行结果不一样的时候,可以加try{}catch(err){}来捕获异常;异常信息通过如下函数打印出来:
? ? ? ?function alertObject(Obj) ?{
? ? ? ? ? ? ? var propertyList = '';
? ? ? ? ? ? ? var propertyCount = 0;
? ? ? ? ? ? ? for (i in Obj) {
? ? ? ? ? ? ? ? ? ? ? if (Obj.i != null)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? propertyList = propertyList + i + '属性:' + Obj.i+':'+Obj[i] + '\r\n';
? ? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? propertyList = propertyList + i +':'+Obj[i]+ '方法\r\n';
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? alert(propertyList);
? ? ? ?}