我如何打印调试消息在谷歌Chrome JavaScript控制台?
请注意,JavaScript控制台和JavaScript调试器是不一样的;它们有不同的语法AFAIK,所以在JavaScript调试器中的打印命令在这里将不起作用。在JavaScript控制台中,print()会将参数发送给打印机。
我如何打印调试消息在谷歌Chrome JavaScript控制台?
请注意,JavaScript控制台和JavaScript调试器是不一样的;它们有不同的语法AFAIK,所以在JavaScript调试器中的打印命令在这里将不起作用。在JavaScript控制台中,print()会将参数发送给打印机。
当前回答
或者使用这个函数:
function log(message){
if (typeof console == "object") {
console.log(message);
}
}
其他回答
我个人使用这个,它类似于tarek11011的:
// Use a less-common namespace than just 'log'
function myLog(msg)
{
// Attempt to send a message to the console
try
{
console.log(msg);
}
// Fail gracefully if it does not exist
catch(e){}
}
主要的一点是,至少有一些日志记录的实践,而不仅仅是将console.log()直接插入到JavaScript代码中,这是一个好主意,因为如果您忘记了它,而它位于生产站点上,它可能会破坏该页面的所有JavaScript代码。
只需要添加一个许多开发者忽略的功能:
console.log("this is %o, event is %o, host is %s", this, e, location.host);
这是JavaScript对象的可点击和深度浏览内容的神奇%o转储。%s只是一个记录。
这个也很酷:
console.log("%s", new Error().stack);
它提供到新的Error()调用点的类似java的堆栈跟踪(包括文件路径和行号!)
%o和new Error()。堆栈可用在Chrome和Firefox!
在Firefox中也可以使用堆栈跟踪:
console.trace();
正如https://developer.mozilla.org/en-US/docs/Web/API/console所说。
黑客快乐!
更新:一些库是由坏人编写的,他们为了自己的目的重新定义了控制台对象。要在加载库后恢复原始的浏览器控制台,请使用:
delete console.log;
delete console.warn;
....
参见堆栈溢出问题恢复console.log()。
进一步完善Delan和Andru的观点(这就是为什么这个答案是编辑版本);Console.log可能存在,而其他函数可能不存在,因此默认映射到与Console.log ....相同的函数
你可以写一个脚本来创建不存在的控制台函数:
if (!window.console) console = {};
console.log = console.log || function(){};
console.warn = console.warn || console.log; // defaults to log
console.error = console.error || console.log; // defaults to log
console.info = console.info || console.log; // defaults to log
然后,使用以下任何一种方法:
console.log(...);
console.error(...);
console.info(...);
console.warn(...);
这些函数将记录不同类型的项目(可以根据log, info, error或warn进行过滤),并且在控制台不可用时不会导致错误。这些功能将在Firebug和Chrome控制台中工作。
尽管这个问题已经很老了,而且已经有了很好的答案,但是我想提供关于其他日志功能的更新。
你也可以打印组:
console.group("Main");
console.group("Feature 1");
console.log("Enabled:", true);
console.log("Public:", true);
console.groupEnd();
console.group("Feature 2");
console.log("Enabled:", false);
console.warn("Error: Requires auth");
console.groupEnd();
打印:
根据本页,所有主要浏览器都支持此功能:
console.debug("");
使用此方法在控制台中以明亮的蓝色打印文本。