我如何打印消息到错误控制台,最好包括一个变量?
例如,像这样:
print('x=%d', x);
我如何打印消息到错误控制台,最好包括一个变量?
例如,像这样:
print('x=%d', x);
当前回答
如果你使用Safari,你可以写
console.log("your message here");
它就出现在浏览器的控制台上。
其他回答
这不会打印到控制台,但会打开一个警告弹出窗口,其中包含你的消息,这可能对一些调试有用:
只做:
alert("message");
为了回答你的问题,你可以使用ES6的特性,
var var=10;
console.log(`var=${var}`);
console.error(message); // Outputs an error message to the Web Console
console.log(message); // Outputs a message to the Web Console
console.warn(message); // Outputs a warning message to the Web Console
console.info(message); // Outputs an informational message to the Web Console. In some browsers it shows a small "i" in front of the message.
你也可以添加CSS:
console.log('%c My message here', "background: blue; color: white; padding-left:10px;");
更多信息可以在这里找到:https://developer.mozilla.org/en-US/docs/Web/API/console
下面是如何将消息打印到浏览器的错误控制台(而不是调试器控制台)的解决方案。(可能有很好的理由绕过调试器。)
正如我在关于建议抛出错误以在错误控制台中获取消息的注释中所指出的,一个问题是这将中断执行线程。如果不想中断线程,可以在使用setTimeout创建的单独线程中抛出错误。因此,我的解决方案(这是Ivo Danihelka的一个详细阐述):
var startTime = (new Date()).getTime();
function logError(msg)
{
var milliseconds = (new Date()).getTime() - startTime;
window.setTimeout(function () {
throw( new Error(milliseconds + ': ' + msg, "") );
});
}
logError('testing');
我以毫秒为单位包含了从开始时间到现在的时间,因为超时可能会打乱您期望看到消息的顺序。
Error方法的第二个参数是文件名,这里是一个空字符串,以防止输出无用的文件名和行号。可以获得调用方函数,但不能以简单的独立于浏览器的方式获得。
如果我们可以用警告或消息图标而不是错误图标来显示消息,那就太好了,但我找不到一种方法来做到这一点。
使用throw的另一个问题是,它可能会被一个封闭的try-catch捕获和丢弃,将throw放在一个单独的线程中也可以避免这个障碍。然而,还有另一种方法可以捕获错误,即如果窗口。Onerror处理程序被替换为执行不同操作的处理程序。我帮不了你。
访问https://developer.chrome.com/devtools/docs/console-api获取完整的控制台api参考
console.error(object[Obj,....])\
在本例中,object将是错误字符串