使用调试功能会console.log降低JavaScript的执行性能吗?它会影响生产环境中脚本执行的速度吗?
是否有一种方法可以从单个配置位置禁用生产环境中的控制台日志?
我目前在我的代码中到处都有这个JS语句:
window.console && console.log("Foo");
Run Code Online (Sandbox Code Playgroud)
我想知道这是否成本高昂,或者在生产中是否有任何负面影响.
我可以自由离开客户端登录,还是应该离开?
编辑:最后,我认为我(以及其他任何人?)能够提出的最佳论点是,通过留下记录消息,在服务器和客户端之间传输的额外数据可能是不可忽略的.如果生产代码将被完全优化,必须删除日志记录以减少发送到客户端的javascript的大小.
我正在使用MEAN,Angular 2,Node/Express,Angular-CLI和ng build --prod构建我的应用程序,我对我的应用程序中的一次性注释代码和十亿次调试console.log语句进行了讽刺.有没有办法让构建过程在构建时删除所有注释和console.log语句?手动做的想法是可怕的!
我在 780 行代码 JS 脚本中的 3 个地方使用了 console.log() 和 console.dir() 语句。但是所有这些对于调试和发现使用应用程序时可能出现的问题都很有用。
我有一个打印内部应用程序状态的函数,即变量的当前值:
printData: function () {
var props = {
operation: this.operation,
operand: this.operand,
operandStr: this.operandStr,
memory: this.memory,
result: this.result,
digitsField: this.digitsField,
dgField: this.dgField,
operationField: this.operationField,
opField: this.opField
};
console.dir(props);
}
Run Code Online (Sandbox Code Playgroud)
我还有一个用闭包隐藏的不可变“常量”列表,但我可以使用名为 list() 的访问器方法打印它们;在控制台中。像这样的东西:
list: function () {
var index = 0,
newStr = "",
constant = '';
for (constant in constants) {
if (constants.hasOwnProperty(constant)) {
index = constant.indexOf('_');
newStr = constant.substr(index + 1);
console.log(newStr + ": " + constants[constant]); …Run Code Online (Sandbox Code Playgroud)