纯干货分享
小编胡说八道
现在前端开发使用console.log是最常见的调试方式之一,在控制台能很方便的看到程序执行日志,但存在几个问题,今天就分享下其中两个问题!
问题一.并不是所有的浏览器都有console对象,比如IE6-IE7本身是没有开发控制台的,除非自己安装IEDevtoolbar,IE8自带DevToolbar,但如果不开启,console是undefined,会导致浏览器报错。
问题二.console.log本身是打出程序执行日志,这些信息本身是用于调试,发布到线上之后是否需要清除掉?
第一个问题
1.使用前先判断
使用console.log的时候需要先判断console是否是对象,并且console.log是否是方法!
2.抽象成函数
但每次都这么用,势必很复杂,所以可以抽象成自己的函数,比如:
这样做的缺点有:一是用自己的函数去替换console.log这种深入人心的代码,在落地执行上多少都有些困难,尤其是团队越大,越有人不遵循规范。另外,在控制台打出日志的代码行数提示时,提示myLog那一行,而不是真正的代码逻辑行。
3.还有种方案,在JS初始化的时候对console做一次判断,防止出错
比如:
第二个问题
发布时如何去掉console.log的调试信息,保证线上环境的干净,也两种方案。
1.使用grunt插件grunt-removing-log