JS在生产环境屏蔽console.log的方法以及意义
2022-11-11 本文已影响0人
仰望天空的人
console.log:向web开发控制台打印一条消息,常用来在开发时调试分析。有时在开发时,需要打印一些对象信息,但发布时却忘记去掉console.log语句,这可能造成内存泄露。
在传递给console.log的对象是不能被垃圾回收 ♻️,因为在代码运行之后需要在开发工具能查看对象信息。所以最好不要在生产环境中console.log任何对象。
直接执行以下全局函数即可:
//判断配置文件是否开启日志调试 是否输出日志 True 输出 False 不输出
var logDebug = false;
console.log = (function (oriLogFunc) {
return function () {
if (logDebug) {
oriLogFunc.apply(this, arguments);
}
}
})(console.log);
当然也可以重写console.log函数屏蔽掉其控制台打印操作。
console.log打印的对象是不会被垃圾回收器回收的。因此最好不要在页面中console.log任何大对象,这样可能会影响页面的整体性能,特别在生产环境中。除了console.log外,另外还有console.dir、console.error、console.warn等都存在类似的问题,这些细节需要特别的关注。