jQuery中的console.log是什么?

65

console.log是什么?在jQuery中它有什么作用?


2
一个好问题,完全出乎意料的是jQuery没有修复它或提供替代语法 - 与这里回答者所声称的相反。难道jQuery的主要优点之一不是处理这种浏览器不兼容性吗? - John
1
这些是无关的事情。这个怎么会有52个赞? - zoran404
3个回答

88

jQuery和console.log是无关的实体,但一起使用时非常有用。

如果您使用浏览器内置的开发工具,则console.log会记录有关传递给log函数的对象的信息。

如果控制台不活动,则日志记录将不起作用,并可能破坏您的脚本。在记录之前,请务必检查控制台是否存在:

if (window.console) console.log('foo');
这可能会看到其简化形式的快捷方式:
window.console&&console.log('foo');

还有其他一些有用的调试函数,比如debugdirerror等。Firebug的维基页面上列出了控制台 API中可用的函数。


2
这个快捷方式不是 window.console&&console.log('foo') 吗? - MiniQuark
1
但是,每当您想要添加日志语句时,您不需要执行 window.console&&console.log('foo');,对吧?在文档加载时,如果控制台未定义,您可以将控制台设置为 window.console。 - Kevin Meredith
1
window.console && console.log('foo'); 这段代码需要一些空格的帮助! - David J.

15

这与jQuery无关,它只是现代浏览器内置的一个方便的js方法。

可以将其视为通过window.alert()进行调试的便捷替代方法。


12
“alert()”消息很难称之为“调试”。 - Mike H.

8

它将在你的开发者控制台(firebug/webkit dev tools/ie dev tools)中打印日志消息。


3
这是一个打印日志信息的调试命令。但请记住,在IE浏览器中,一定要激活开发者工具,否则会抛出错误。 - KJYe.Name
2
作为对 @kjy112 的留言的补充,console.log 绝不应出现在生产代码中! - the JinX
1
如果Firebug没有启动,FF也会死掉。但是,这只是一个调试工具,而不是实际的日志记录工具。另一种选择是window.console = {}; window.console.log = function() {}; 将其放入一个noop中,以吞噬日志消息。 - Matt Briggs
1
@JinX 在生产代码中为什么不能打印日志?如果你在生产环境中遇到了错误,那些日志将非常有用,只要记录真正的错误,就不会导致性能问题。当然,你不想在生产环境中记录机密信息,但这并不是从不在控制台记录日志的好理由! - CorayThan
@CorayThan 一些浏览器(如IE)不支持console.log方法,因此会停止JavaScript的执行。 - the JinX
2
@JinX 好的,直截了当地说 console.log 不应该被使用,但如果你像 zzzzBov 建议的一样,在使用之前检查该方法是否存在,那么它应该是可以的。 - CorayThan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接