什么是控制台日志?

IT技术 javascript firebug console.log
2021-01-25 20:52:03

有什么用console.log

请用代码示例解释如何在 JavaScript 中使用它。

6个回答

它不是 jQuery 功能,而是用于调试目的的功能。例如,当发生某些事情时,您可以将某些内容记录到控制台。例如:

$('#someButton').click(function() {
  console.log('#someButton was clicked');
  // do something
});

然后#someButton was clicked,当您单击按钮时,您会在 Firebug 的“控制台”选项卡(或其他工具的控制台 — 例如 Chrome 的 Web Inspector)中看到。

由于某些原因,控制台对象可能不可用。然后您可以检查它是否是 - 这很有用,因为您在部署到生产时不必删除调试代码:

if (window.console && window.console.log) {
  // console is available
}
谷歌浏览器的开发者工具也集成了一个控制台。
2021-03-17 20:52:03
这对于不让 IE 因控制台未定义而引发错误也很有用
2021-03-18 20:52:03
“这很有用,因为您在部署到生产环境时不必删除调试代码”<-- 如果最终用户打开 Firebug 怎么办?
2021-03-20 20:52:03
if (console.log)if (console && console.log)如果控制台不可用,(甚至)仍然会抛出错误。您应该使用window.consolewindow保证存在)并且一次只检查一个深度级别。
2021-04-01 20:52:03
恕我直言,比每次检查 console.log 是否可用更好,最好有这样的东西:if(typeof(console) == 'undefined') { console = {'log': function() {return}} } 在在这种情况下,您可以在每次需要时编写 console.log,而无需检查它是否存在!
2021-04-09 20:52:03

可以查看控制台的地方!只是将它们全部放在一个答案中。

火狐

http://getfirebug.com/

(您现在也可以使用 Firefox 的内置开发人员工具 Ctrl+Shift+J(工具 > Web 开发人员 > 错误控制台),但 Firebug 更好;使用 Firebug)

Safari 和 Chrome

基本一样。

https://developers.google.com/chrome-developer-tools/docs/overview

https://developer.apple.com/technologies/safari/developer-tools.html

IE浏览器

别忘了你可以使用兼容模式在IE9或IE10中调试IE7和IE8

http://msdn.microsoft.com/en-us/library/ie/gg589507(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/dd565628(v=vs.85).aspx

如果您必须在 IE6 中访问 IE7 控制台,请使用 Firebug Lite 书签

http://getfirebug.com/firebuglite/寻找稳定的书签

http://en.wikipedia.org/wiki/Bookmarklet

歌剧

http://www.opera.com/dragonfly/

IOS

适用于所有 iPhone、iPod touch 和 iPad。

http://developer.apple.com/library/ios/ipad/#DOCUMENTATION/AppleApplications/Reference/SafariWebContent/DebuggingSafarioniPhoneContent/DebuggingSafarioniPhoneContent.html

现在使用 iOS 6,如果您插入设备,您可以通过 OS X 中的 Safari 查看控制台。或者您可以使用模拟器执行此操作,只需打开 Safari 浏览器窗口并转到“开发”选项卡。在那里,您会找到让 Safari 检查器与您的设备进行通信的选项。

视窗手机、安卓

这两者都没有内置控制台,也没有书签功能。所以我们使用 http://jsconsole.com/ type :listen 它会给你一个脚本标签来放置在你的 HTML 中。从那时起,您可以在 jsconsole 网站内查看您的控制台。

iOS和安卓

您还可以使用http://html.adobe.com/edge/inspect/使用其方便的浏览器插件在任何设备上访问 Web 检查器工具和控制台。


旧浏览器问题

最后,如果您在代码中使用 console.log 并且没有同时打开开发人员工具,旧版本的 IE 将崩溃。幸运的是,这是一个简单的修复。使用代码顶部的以下代码片段:

 if(!window.console){ window.console = {log: function(){} }; } 

这会检查控制台是否存在,如果不存在,则将其设置为具有名为 的空白函数的对象log这样 window.console 和 window.console.log 永远不会真正undefined.

@Dane411 这是真的,但萤火虫更好,更常用。
2021-03-11 20:52:03
在 window.console.log 之前有 window.dump。它比空日志功能更好
2021-03-11 20:52:03
如果错了请纠正我,但我认为 Firefox 中不需要 Firebug 来查看控制台,只需单击 Ctrl+Shift+J(工具 > Web 开发人员 > 错误控制台)
2021-03-14 20:52:03
@Fresheyeball 有人必须清除所有垃圾,但我认为在某些时候收集这些代表并实际保持社区清洁变得不那么有趣了。
2021-04-05 20:52:03
谁不赞成这个答案,请发表评论。没有评论的downvote是无用的
2021-04-08 20:52:03

如果您使用 Firebug 等工具检查代码,则可以查看记录到控制台的任何消息。假设你这样做:

console.log('Testing console');

当您在 Firebug(或您决定用来检查代码的任何工具)中访问控制台时,您将看到您告诉函数记录的任何消息。当您想查看函数是否正在执行,或者变量是否被正确传递/分配时,这特别有用。实际上,找出代码出了什么问题非常有value。

不要忘记先定义它以避免在 IE 中出错:stackoverflow.com/a/7585409/318765
2021-03-16 20:52:03

它将向浏览器的 javascript 控制台(例如 Firebug 或开发人员工具(Chrome / Safari))发布一条日志消息,并将显示执行它的行和文件。

此外,当您输出 jQuery 对象时,它将在 DOM 中包含对该元素的引用,单击它会转到 Elements/HTML 选项卡中的引用。

您可以使用各种方法,但要注意它要在 Firefox 中工作,您必须打开 Firebug,否则整个页面会崩溃。无论您记录的内容是变量、数组、对象还是 DOM 元素,它都会为您提供完整的细分,包括对象的原型(随便看看总是很有趣)。您还可以根据需要包含任意数量的参数,它们将被空格替换。

console.log(  myvar, "Logged!");
console.info( myvar, "Logged!");
console.warn( myvar, "Logged!");
console.debug(myvar, "Logged!");
console.error(myvar, "Logged!");

这些显示为每个命令的不同徽标。

您还可以console.profile(profileName);用来开始分析函数、脚本等。然后以console.profileEnd(profileName);结束,它将显示在 Chrome 的“个人资料”选项卡中(不知道 FF)。

如需完整参考,请访问http://getfirebug.com/logging ,我建议您阅读它。(跟踪、组、分析、对象检查)。

希望这可以帮助!

console.log("x:", x)明显更好,因为当x是对象或数组(或字符串以外的任何内容)时,它会正确显示,无需转换为字符串。
2021-03-21 20:52:03
在我看来,当你输出许多不同的东西时,它更容易阅读。在这种情况下,它可能应该+严格使用,但我想表明您也可以在控制台函数中使用逗号。此外,如果两个变量都是整数或数组,则可以避免出现问题。
2021-04-07 20:52:03
为什么console.log("x:", x)比 好console.log("x:" + x)因为 a,比 a 更容易阅读,所以更不容易出错+吗?
2021-04-09 20:52:03

与 jQuery 无关,如果您想使用它,我建议您这样做

if (window.console) {
    console.log("your message")
}

因此,当代码不可用时,您不会破坏代码。

正如评论中所建议的,您也可以在一个地方执行它,然后console.log正常使用

if (!window.console) { window.console = { log: function(){} }; }
我可以建议改为if(!window.console){ window.console = function(){}; }在一个地方进行,然后像往常一样使用 console.log。
2021-04-01 20:52:03