chrome控制台使用(Using the Console)

控制台提供了两个主要的方法给开发者测试网页和应用程序:

  通过使用控制台提供的Console API方法来诊断日志信息,比如说:console.log(),console.profile().

  即时响应的命令窗口可以和document以及chrome开发工具相互联调.在控制台可以直接测试表达式,并且可以使用Command Line API提供的方法,比如$()可以查找元素,或者使用profile()来打开CPU分析器.

本文提供关于这两个API的概述和一些基本使用,你也可以直接去Console APICommand Line API查看详细信息.

基础操作

打开控制台

在调试工具里面有两种有效的方式打开控制台:主标签栏里面的console标签,或者当你在其他标签里面时作为分离的视图展示出来(比如在Elements或者Sources).

要打开控制台,做下面任意一种操作:

  • 按住 Command - Option - J (Mac) 或者 Control -Shift -J(Windows/Linux).
  • 选择 View > Developer > JavaScript Console.
  • 按下 F12 > console

当你在其他标签栏内时可以按下Esc键打开或关闭控制台的分离视图,或者也可以点击在chrome调试工具窗口左下角的Show/Hide Console按钮.看图说话

清除控制台历史记录

要清除控制台历史记录,可以选择一下方式中的一种:

  • 右击或者Ctrl-click控制台内任何区域出现文本菜单选择Clear Console.
  • 在控制台输入clear()回车(Command Line API).
  • 输入console.clear()回车(Console API).
  • 按下键盘上 ?K 或者 ?L (Mac) Control - L (Windows and Linux).

当你跳转到其他网页时控制台默认会清空历史记录,通过控制台区域的设置对话框设置Preserve log upon navigation可以改变这个行为 (详见 Console preferences).

控制台设置

控制台有两个全局的设置可以修改在通用的设置对话框内:

  • Log XMLHTTPRequests—每一个完成的XMLHTTPRequest 请求显示在空台上.
  • Preserve log upon navigation—页面刷新或跳转时不清除历史记录. 默认两个设置是不生效的.

也可以右击控制台内任意区域在弹出的文本菜单内设置.

Console API的使用

Console API就是调试工具定义的全局对象console提供的方法集合.其中一个主要目的就是当你的应用运行时将日志信息(比如一个变量值,或者一个对象再或者DOM元素)输出到控制台.为了避免视觉混乱也可以有组织的输出到控制台.

控制台的书写

console.log() 方法可以传递一个或多个表达式作为参数,并且会输出他们的当前值到控制台.例如:

var a = document.createElement(‘p‘);a.appendChild(document.createTextNode(‘foo‘));a.appendChild(document.createTextNode(‘bar‘));console.log("Node count: " + a.childNodes.length);

通过"+"操作符将表达式连接到一起(如上所示),你可以放置每一个它自己的方法参数而且他们被连接成以空格分隔的行.

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

错误和警告

console.error()方法会以一个红叉的图标和红色字体展示文本信息.

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

console.warn()方法会带有黄色图标展示文本信息.

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

断言

console.assert()方法会在第一个参数值为false时抛出一个异常(第二个参数).比如下面的例子,当list元素的子节点个数大于500的时候会抛出一个错误信息到控制台.

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

控制台信息的过滤

通过严格的层级控制可以快速过滤控制台输出信息--错误,警告,或者标准日志信息--选择其中一个过滤选项.可以通过点击漏斗(如下所示)去选择一个你想要使用的条件.

过滤选项:

  • All—展示所有控制台输出信息.
  • Errors—仅展示从console.error()的输出信息
  • Warnings—仅展示从console.warn()的输出信息
  • Logs—仅展示从console.log()console.info()console.debug()的输出信息.
  • Debug—仅展示从console.timeEnd()和其他控制台输出.

组织化输出

在控制台使用console.group()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 groupconsole.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 groupconsole.groupEnd();console.log("A group-less log trace.");

要创建一个默认收起的组,可以使用console.groupCollapsed().看下面的例子:

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

字符串替换和格式化

任何一个传递给控制台的日志方法(例如log(),error())的第一个参数都可能包含一个或多个占位符.占位符由一个%和一个声明应该用于插入值类型的字母(比如%s 字符串).占位符会识别在哪替换后面提供的参数值.

下面的例子就是使用%s(字符串)和%d(整数)占位符来插入值到控制台输出中.

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

输出结果是"Sam has 100 points"

下面的表格就是一些占位符的信息:

占位符 描述
%s 字符串.
%d or %i 整数.
%f 浮点数.
%o dom元素的链接.
%O js对象的链接.
%c css格式字符串.

下面的例子是用占位符%d将document的子节点数量式化为整数,用占位符%f将时间格式化为时间戳.

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

dom元素&JS对象

默认情况下,当你输出一个DOM元素到控制台显示为XML格式,如元素面板:

console.log(document.body.firstElementChild);

当然也可以使用console.dir()来显示对象的全部属性

console.dir(document.body.firstElementChild);

等价的也可以通过console.log()使用占位符 %O来实现上面的结果.

console.log("%O", document.body.firstElementChild);

控制台&css

在console.log()里面使用占位符%c可以实现在控制台的输出样式.

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

时间检测

console.time()console.timeEnd()方法可以帮助我们检测一个方法需要用多长时间完成.console.time()放在要开始检测的任务前面来开启时间检测,在任务的末尾添加console.timeEnd()来停止,时间差将会输出到控制台.

console.time("Array initialize");var array= new Array(1000000);for (var i = array.length - 1; i >= 0; i--) {      array[i] = new Object();};console.timeEnd("Array initialize");

注意:在console.time()和timeEnd()里面必须要使用相同的字符串,否则可能会得不到你想要的结果.

断点调试

可以开启debug模式在你的js代码中写入debugger命令.下面的例子演示了当brightness()方法执行时呼出debug模式:

brightness : function() {      debugger;      var r = Math.floor(this.red*255);      var g = Math.floor(this.green*255);      var b = Math.floor(this.blue*255);      return (r * 77 + g * 150 + b * 29) >> 8;}

附上一篇非常有趣的调试文章Breakpoint Actions in JavaScript--Brian Arnold

Command Line API

下期继续...

中文console api: http://visionsky.blog.51cto.com/733317/543789

chrome控制台使用(Using the Console)

时间: 2024-08-03 11:26:51

chrome控制台使用(Using the Console)的相关文章

Chrome 控制台新玩法-console显示图片以及为文字加样式

有兴趣的同学可以文章最后的代码复制贴到控制台玩玩. Go for Code 在正常模式下,一般只能向console 控制台输出简单的文字信息.但为了把信息输出得更优雅更便于阅读,除了cosole.log()方法外还可以调用 cosole.warn() 来输出警告信息,在控制台中出来的效果如下: 在输出信息前面会有一个带感叹号的黄色三角警告符号.似乎比一般的console信息要友好得多了.虽然图标是黄色的,但输出的文字仍然是黑色. 另外经常用到的是输出错误信息.可以通过调用console.erro

Chrome 控制台console的用法(转)

下面我们来看看console里面具体提供了哪些方法可以供我们平时调试时使用. 目前控制台方法和属性有: ["$$", "$x", "dir", "dirxml", "keys", "values", "profile", "profileEnd", "monitorEvents", "unmonitorEvents&q

Chrome 控制台console的用法

原文出处: ctriphire 大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的,因为它对于调试脚本及前端设计调试都有它比其它浏览器有过之而无不及的地方.可能大家对console.log会有一定的了解,心里难免会想调试的时候用alert不就行了,干嘛还要用console.log这么一长串的字符串来替代alert输出信息呢,下面我就介绍一些调试的入门技巧,让你爱上console.log 先的简单介绍一下chrome的控制台,打开chr

[转]Chrome 控制台console的用法

大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的,因为它对于调试脚本及前端设计调试都有它比其它浏览器有过之而无不及的地方.可能大家对console.log 会有一定的了解,心里难免会想调试的时候用 alert 不就行了,干嘛还要用 console.log 这么一长串的字符串来替代 alert 输出信息呢,下面我就介绍一些调试的入门技巧,让你爱上 console.log 先的简单介绍一下chrome的控制台,打开chrome浏览器,按

Chrome 控制台console的用法(学了之后对于调试js可是大大有用)

大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的,因为它对于调试脚本及前端设计调试都有它比其它浏览器有过之而无不及的地方.可能大家对console.log会有一定的了解,心里难免会想调试的时候用alert不就行了,干嘛还要用console.log这么一长串的字符串来替代alert输出信息呢,下面我就介绍一些调试的入门技巧,让你爱上console.log 先的简单介绍一下chrome的控制台,打开chrome浏览器,按f12就可以轻松

【repost】Chrome 控制台console的用法

下面我们来看看console里面具体提供了哪些方法可以供我们平时调试时使用. 目前控制台方法和属性有: ["$$", "$x", "dir", "dirxml", "keys", "values", "profile", "profileEnd", "monitorEvents", "unmonitorEvents&q

Chrome控制台的console详述

Chrome控制台的console详述 在详述之前让我们来看看打开浏览器控制台的方式都有那些吧,毕竟这才是开始. 要想打开谷歌开发者工具,有三种方式 ctrl+shift+i f12 在网页中右击鼠标,点击[审查元素],你会打开浏览器的开发者工具 大家可以看到控制台里面有一首诗还有其它信息,如果想清空控制台,可以点击左上角那个来清空,当然也可以通过在控制台输入console.clear()来实现清空控制台信息.如下图所示 现在假设一个场景,如果一个数组里面有成百上千的元素,但是你想知道每个元素具

Chrome 控制台不完全指南(转)

Chrome的开发者工具已经强大到没朋友的地步了,特别是其功能丰富界面友好的console,使用得当可以有如下功效: 更高「逼格」更快「开发调试」更强「进阶级的Frontender」 Bug无处遁形「Console大法好」 console.log 大家都会用log,但鲜有人很好地利用console.error , console.warn 等将输出到控制台的信息进行分类整理. 他们功能区别不大,意义在于将输出到控制台的信息进行归类,或者说让它们更语义化. 各个所代表的语义如下: console.

Chrome 控制台不完全指南

本文转自  http://www.cnblogs.com/Wayou/p/chrome-console-tips-and-tricks.html Chrome的开发者工具已经强大到没朋友的地步了,特别是其功能丰富界面友好的console,使用得当可以有如下功效: 更高「逼格」更快「开发调试」更强「进阶级的Frontender」 Bug无处遁形「Console大法好」 console.log 大家都会用log,但鲜有人很好地利用console.error , console.warn 等将输出到控