console.log不打开开发者工具也会执行吗?
this.intervalConsoleId = setInterval(() => {console.log('', this.devtools);
}, 1000);
上述console.log('', this.devtools)这句代码在不打开开发者模式的前提下一直在运行,是正常的吗?
回答:
原则上,代码是被设计成只要满足条件就要运行的。
但是浏览器厂商可以根据实际情况来进行一些优化,比如没有实际产生输出的 console.log
代码可能被优化掉。chrome
中就有一些这样的优化,比如用 console.log
输出 DOM
信息这个操作,如果开发者工具没有打开的话确实没有什么影响,所以 chrome
并不会真正去获取 DOM
信息,这个特性被用到了检测开发者工具以进行反调试的项目中。
回答:
当然会运行,你要这样的一个数据干什么呢,打开控制台不控制台不打印,这个数据那本来也就是没用的数据直接删除代码就行了,要着干什么呢,如果非要的打开控制台不显示的话。。。
解决办法:
在脚本中重新定义控制台日志函数。
var console={};console.log=function(){};//禁用所有控制台输出
在页面加载完之后,添加这个脚本就可以关闭页面上的打印了。
如果需要再次进行调试将上述代码注释即可
回答:
这种情况是正常的:)
回答:
看了其他回答我明白你的疑问了,console.log这代码并不识别你的开发环境,任何情况下都会执行,你可能看到过非开发模式下不执行的情景,那基本上都是一些框架工具配置的结果,具体做法就是在生成生产环境代码的时候删除或者注释了console.log,这些配置的初衷是为了让一些开发的时候一些log不在生产环境下显示,提升性能而已,实际上你自己写个js文件没有任何别的配置去运行,console.log永远都会打印的。
以上是 console.log不打开开发者工具也会执行吗? 的全部内容, 来源链接: utcz.com/p/936933.html