`

Chrome浏览器使用Console调试(一)

阅读更多

     个人翻译能力有限,凑活着看吧,原链接

      https://developers.google.com/web/tools/javascript/console/

      这次先翻译了前两节(浏览控制台/诊断和打日志到控制台),后三节会陆续翻译

      使用控制台

            当一个页面在浏览器中的时候,控制台允许使用标准的JavaScript语句和控制台专用命令帮助调试页面。控制台可以查看诊断信息,显示丰富的结构化的数据,控制和过滤输出,检测和修改页面元素,测量执行时间等。

 

      大纲

           1. 浏览控制台

           2. 诊断和打日志到控制台

           3. 比较相似的数据对象

           4. 测量和统计执行

           5. 异常和错误处理

           6. 控制台API 参考

 

      1.浏览控制台

            Chrome DevTools中强大的Javascript 控制台能够以很多方式被定制化和控制,学习如何使用它能够使你成为一个更好的开发者。

  • 打开控制台

       方式如下:

             1.快捷键:

                       Windows and Linux: Ctrl + Shift +J

                       Mac:Cmd + Option +J

             2.选择Chrome的菜单图标 > 更多工具>开发者工具,英文:Chrome Menu icon > More Tools >          JavaScript Console.

             3.chrome devTools 已经打开后,点击“Console”选项卡即可

 

 

  • 控制台抽屉

       在另一个面板里打开控制台,可以使用以下方式:

              1.在Chrome DevTools里按下 Esc按键

              2.点击 ‘Show Drawer icon’图标,



 

 

  • 信息栈



 

       控制台保留了任何一个页面的每条信息的记录,直到页面被关闭,或者导航到其他页面,或者重新刷新页面。如果同样的信息连贯地重复出现,控制台会堆叠它们以保持信息尽可能的简洁。信息被堆叠后,堆叠的次数会被显示在这条信息的左边。

      如果你喜欢每一条日志都是独一无二的,可以在Settings菜单中勾选 Show timestamps,让每一条信息都有一个唯一的时间戳。

 

  • 控制台的历史工作

    清除历史

 

    你可以通过以下方式清除控制台历史:

            1.在控制台区域右键或者Ctrl-click 任何区域,然后选择 'Clear Console'

            2.在控制台的命令行中输入 clear() 然后回车

            3.在你自己的javascript代码中执行console.clear()方法

            4.在Mac中使用快捷键Cmd+K,在Windows和Linux下使用Ctrl+L

 

    保留历史

 

 

    在页面刷新和页面切换期间,勾选 ‘Preserve log’选项(在控制台上方)会保留控制台历史信息。除非你清除console或者关闭tab,否则信息将一直保留。

 

    保存历史

 

    在控制台区域右键,选择 ‘Save As’会保存输出到控制台的信息到一个日志文件中,然后可以使用任何文本编辑器打开它。

 

 

  • 选择正确的目标

    默认地,从frames或者扩展工具的日志和错误是不输出到控制台上的。你可以用控制台上方的下拉选择框,选择其他的frame输出日志。比如,一个iframe元素,能够创建其自己的frame上下文,从这个菜单中选出。

 

 

  • 过滤控制台输出



 

       通过选择过滤选项过滤它的日志等级。在控制台面板的左上角激活过滤功能,就可以看到在下面的过滤条件了,如下:

   选项                                               显示

   All                                      显示所有控制台输出

   Errors                                显示console.error()的输出

   Warnings                           显示console.warn()的输出

   Info                                    显示console.info()的输出

   Logs                                  显示console.log()的输出

   Debug                               显示console.timeEnd()和console.debug()的输出

 

  • 附加设置

你可以定制化控制台,在 'Settings'菜单中

Settings                               Description

Hide network                     默认地,控制台报告网络问题。打开这个开关让控制台隐藏这些错误。

                                           比如,404,500系列的错误就不被记录了。

messages

 

Log                                        明确控制台记录每一个XMLHttpRequest

XMLHttpRequests

 

Preserve log upon                 保留控制台历史,在刷新页面或者浏览页面期间

navigation

 

Show timestamps                   每条console信息都有一个时间戳,对调试很有用


2. 诊断和记录日志到控制台

 

      控制台日志是一个很有效的方式监测页面和应用的情况。让我们开始使用console.log()和探索其他高级的使用方式。

 

      写到控制台

 

       对于任何基本的日志记录到控制台使用console.log()方法,使用一个或者多个表达式作为参数,把它们的值写到控制台上,用空格符将多个参数连接成一行

 

      在Javascript代码中执行:

        

 console.log("Node count:", a.childNodes.length, "and the current time is:", Date.now());

 

    输出:

 

 

 

     组织控制台输出

 

     组信息

     你可以用group命令组织相关的信息输出。使用console.group()方法,使用一个单独的字符串参数作为group的名字。在你的javascript代码中调用后,控制台开始用组来控制输出。结束组控制的时候,仅仅使用console.groupEnd();方法即可。

 

      例子输入:

var user = "jsmith", authenticated = false;
console.group("Authentication phase");
console.log("Authenticating user '%s'", user);
// authentication code here...
if (!authenticated) {
    console.log("User '%s' not authenticated.", user)
}
console.groupEnd();

 

   例子输出:



  

 

内嵌组

 

例子:

   

var user = "jsmith", authenticated = true, authorized = true;
// Top-level group
console.group("Authenticating user '%s'", user);
if (authenticated) {
    console.log("User '%s' was authenticated", user);
    // Start nested group
    console.group("Authorizing user '%s'", user);
    if (authorized) {
        console.log("User '%s' was authorized.", user);
    }
    // End nested group
    console.groupEnd();
}
// End top-level group
console.groupEnd();
console.log("A group-less log trace.");

 

输出:

 

 

自动折叠组

 

当大量使用组的时候,会很有用,可以自动折叠这些组,使用console.groupCollapsed()代替console.group():

console.groupCollapsed("Authenticating user '%s'", user);
if (authenticated) {
    ...
}
console.groupEnd();

 输出:

 

 

 

错误和警告

 

错误和警告和普通的log表现是一样的。唯一不同是error()和warn()以不同的样式做出提醒。

 

console.error()

 

console.error()方法会显示一个红色的icon在红色信息旁边

function connectToServer() {
    console.error("Error: %s (%i)", "Server is  not responding",500);
}
connectToServer();

 输出:

 

 

 

console.warn()

 

console.warn()方法会显示一个黄色的icon在信息旁边

 

if(a.childNodes.length < 3 ) {
    console.warn('Warning! Too few nodes (%d)', a.childNodes.length);
}

 

 输出:



  

 

断言

 

console.assert()方法 显示一个错误字符串(它的第二个参数),如果第一个参数执行为false的话

 

一个简单的断言和如何显示

 

以下代码产生一个错误信息在控制台,仅仅如果child的节点数量大于500

 

console.assert(list.childNodes.length < 500, "Node count is > 500");

 输出:

 

 

 

字符串代替和格式化

 

传递给任何log方法的第一个参数包含一个或者多个格式化标识符。一个格式化标识符是由%符号跟着一个字符表示的,意味着会被传递的值格式化掉。之后的参数是按顺序匹配那些占位符的。

 

以下的例子是使用字符串和数字格式化后,输出字符串的。在控制台里,你会看到 “Sam has 100 points”

console.log("%s has %d points", "Sam", 100);

以下是全部的格式化标识符:

 

标识符                                输出

%s                                      格式化字符串

%i 或者 %d                        格式化整数

%f                                      格式化浮点数

%o                                     格式化一个可扩展的DOM元素,在Elements面板可以看到                                

%O                                     格式化一个可扩展的JavaScript对象

%c                                      接受一个作为第二参数的css样式规则,用来特别地输出该字符串

 

 

看例子:

console.log("Node count: %d, and the time is %f.", 
document.childNodes.length, Date.now());

 

 输出:



 
 

使用css样式装饰控制台输出

 

console.log("%cThis will be formatted with large, blue text",
 "color: blue; font-size: x-large");

 

 输出:



  

 

格式化DOM元素为JavaScript 对象

 

默认地,DOM元素在console中是HTML的,但有时你想将DOM元素作为JavaScript对象,并检测它的属性。

你可以使用%o来格式化,或者使用console.dir来完成同样的需求

 

 

  • 大小: 20.3 KB
  • 大小: 73.4 KB
  • 大小: 58.1 KB
  • 大小: 28.8 KB
  • 大小: 62.2 KB
  • 大小: 25.5 KB
  • 大小: 140.3 KB
  • 大小: 74 KB
  • 大小: 92.6 KB
  • 大小: 125.1 KB
  • 大小: 80.3 KB
  • 大小: 125.8 KB
  • 大小: 67.8 KB
  • 大小: 69.7 KB
  • 大小: 74 KB
  • 大小: 101.7 KB
  • 大小: 63.5 KB
1
1
分享到:
评论

相关推荐

    Chrome 浏览器中执行 JavaScript

    本章节为大家介绍如何在 Chrome 浏览器上进行 JavaScript 代码的运行与调试。 Chrome 是由 Google 开发的免费网页浏览器,对于前端开发来说(尤其是调试代码)非常方便。 Chrome 官网地址:...

    SocketLog:微信调试,API调试和AJAX的调试的工具,可以通过WebSocket输出到Chrome浏览器的控制台中

    客户端会通过一个Chrome插件将调试信息打印到浏览器的Console中,这些信息包括程序的运行时间,吞吐率,内存消耗; PHP的错误,警告,通知信息;程序执行SQL语句以及对SQL语句的解释等等。 SocketLog使用PHP和NodeJs...

    FireFox Chrome IE浏览器调试JavaScript

    在安装好插件之后,先用Firefox浏览器打开需要测试的页面,然后点击右下方的绿色按钮或使用快捷键F12唤出Firebug插件,它会将当前页面分成上下两个框架,如图1所示。 图1:Firebug插件展开图示 从图1中看到,...

    JavaScript检测是否开启了控制台(F12调试工具)

    js检测用户是否打开调试工具(chrome) (function(){ var re=/x/; var i=0; console.log(re); re.toString=function(){ window.close(); return '第'+(++i)+'次打开控制台'; } })(); JavaScript检测是否开启了...

    基于谷歌的反调试工具插件

    有些网站会不停的往Chrome缓存里塞东西(多见于sojson和一些仿sojson的网站),已干掉。 3、基于debugger的卡浏览器 检测devtool 动态debugger hook 了 Function.protype.constructor 替换所有的debugger 字符...

    RemoteConsole:在远程浏览器上调试 HTML 页面

    某些移动设备也不支持经典的调试控制台(safari 和 chrome,在您的桌面上连接移动设备)和代理。 所以在这些情况下,调试似乎是不可能的.. 这就是远程控制台诞生的原因,它允许您查看日志/错误并执行 JS 命令和其他...

    javascript代码调试之console.log 用法图文详解

    可能大家对console.log会有一定的了解,心里难免会想调试的时候用alert不就行了,干嘛还要用console.log这么一长串的字符串来替代alert输出信息呢,下面我就介绍一些调试的入门技巧,让你爱上console.log ...

    微信调试、API、AJAX的调试SocketLog.zip

    效果展示: 我们在浏览网站的时候在浏览器console中就知道程序做了什么,这对于二次开发产品十分有用。 下面效果图在console中打印出浏览discuz程序时,执行了哪些sql语句, 以及执行sql语句的调用栈。程序的...

    customDevTools:在Chrome Dev Tools中使用自定义功能

    Chrome浏览器会自动将console.js (在function customConsole插入自己的自定义代码)注入当前页面。 要修改何时/如果Chrome注入代码,请转到background.js(有相关说明)。 要修改此扩展名适用于哪些页面,以修改...

    wp-chrome-logger:在 chrome 控制台中输出任何内容(又一个调试助手)

    wp-chrome-调试器 感谢 [Craig Campbell] 创建了很棒的调试工具 [chromephp] 安装 从以下位置安装 Chrome 扩展程序: : 单击浏览器中的扩展图标,为当前选项卡的域启用它 下载此插件并激活它。 ##如何工作 使用...

    使用VScode 插件debugger for chrome 调试react源码的方法

    上线还要配置删除掉),但是我竟然使用了很久(这真是一个糟糕的编码习惯吧)。直到今天,我想研究一下react源码,需要断点的地方有很多,不可能在手动console/debugger了!!我才想到我为什么不用浏览器debugger?

    JS检测浏览器开发者工具是否打开的方法详解

    对于一些浏览器,比如Chrome、FireFox,如果控制台输出的是对象,则保留对象的引用,每次打开开发者工具的时候都会重新调用一下对象的toString()方法将返回结果打印到控制台(console tab)上。 所以只需要创建一个...

    inline-console:轻松将JavaScript开发者控制台添加到任何浏览器页面的底部

    内置的浏览器控制台(例如Chrome或FireFox中提供的控制台)远远优于您在此控制台中看到的控制台。 但是,此控制台旨在帮助解决浏览器未提供本机开发人员控制台的情况,例如iOS的移动浏览器。 因此,例如,使用此...

    SocketLogs-crx插件

    这时候用SocketLog最好,SocketLog通过WebSocket将调试日志打印到浏览器的console中。你还可以用它来分析开源程序,分析SQL性能,结合taint分析程序漏洞。 详情查看帮助:https://github.com/xiaoyuit/SocketLogs

    日志记录组件log4web.js.zip

    简介基于浏览器端的console的日志记录组件。支持如下特性:日志级别设置;异常提交到服务器;提交环境信息;日志Tag过滤器;如何使用浏览器下的引用[removed][removed][removed]  log4web.log("houyhea");  log4...

    SocketLog-crx插件

    这时候用SocketLog最好,SocketLog通过WebSocket将调试日志打印到浏览器的console中。你还可以用它来分析开源程序,分析SQL性能,结合taint分析程序漏洞。 详情查看帮助:https://github.com/luofei614/SocketLog

    Tag Manager Server Debug Console-crx插件

    绿色:已激活浏览器控制台日志-橙色:已激活调试模式-紫色:容器预览-红色:无效的debugAuth代码或TMS错误两个数字显示:-标记管理器服务器输入显示从浏览器到TMS API的提交数据。 -跟踪代码管理器服务器操作通过...

    【helloworld】-微信小程序教程-入门篇【5】

    1. 开篇导言  本节目标:通过之前的讲解,相信大家对于微信小程序本身有了一定的认识。本篇将专注于讲解IDE的调试功能。 目标用户:无编程经验,但对...熟悉Chrome浏览器(F12)的同学,可能眼前一(没错,基本一致)。

Global site tag (gtag.js) - Google Analytics