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


Posted in Javascript onSeptember 30, 2016

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

先的简单介绍一下chrome的控制台,打开chrome浏览器,按f12就可以轻松的打开控制台

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

大家可以看到控制台里面有一首诗还有其它信息,如果想清空控制台,可以点击左上角那个javascript代码调试之console.log 用法图文详解来清空,当然也可以通过在控制台输入console.clear()来实现清空控制台信息。如下图所示

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

现在假设一个场景,如果一个数组里面有成百上千的元素,但是你想知道每个元素具体的值,这时候想想如果你用alert那将是多惨的一件事情,因为alert阻断线程运行,你不点击alert框的确定按钮下一个alert就不会出现。

下面我们用console.log来替换,感受一下它的魅力。

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

看了上面这张图,是不是认识到log的强大之处了,下面我们来看看console里面具体提供了哪些方法可以供我们平时调试时使用。

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

目前控制台方法和属性有:

["$$", "$x", "dir", "dirxml", "keys", "values", "profile", "profileEnd", "monitorEvents", "unmonitorEvents", "inspect", "copy", "clear", "getEventListeners", "undebug", "monitor", "unmonitor", "table", "$0", "$1", "$2", "$3", "$4", "$_"]

下面我们来一一介绍一下各个方法主要的用途。

一般情况下我们用来输入信息的方法主要是用到如下四个

1、console.log 用于输出普通信息

2、console.info 用于输出提示性信息

3、console.error用于输出错误信息

4、console.warn用于输出警示信息

5、console.debug用于输出调试信息

用图来说话

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

console对象的上面5种方法,都可以使用printf风格的占位符。不过,占位符的种类比较少,只支持字符(%s)、整数(%d或%i)、浮点数(%f)和对象(%o)四种

console.log("%d年%d月%d日",2011,3,26);console.log("圆周率是%f",3.1415926);

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

%o占位符,可以用来查看一个对象内部情况

var dog = {};dog.name = "大毛";dog.color = "黄色";console.log("%o", dog);

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

6、console.dirxml用来显示网页的某个节点(node)所包含的html/xml代码

<body>
  <table id="mytable">
    <tr>
      <td>A</td>
      <td>A</td>
      <td>A</td>
    </tr>
    <tr>
      <td>bbb</td>
      <td>aaa</td>
      <td>ccc</td>
    </tr>
    <tr>
      <td>111</td>
      <td>333</td>
      <td>222</td>
    </tr>
  </table>
</body>
<script type="text/javascript">
  window.onload = function () {
    var mytable = document.getElementById(‘mytable‘);
    console.dirxml(mytable);
  }
</script>

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

7、console.group输出一组信息的开头

8、console.groupEnd结束一组输出信息

看你需求选择不同的输出方法来使用,如果上述四个方法再配合group和groupEnd方法来一起使用就可以输入各种各样的不同形式的输出信息。

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

哈哈,是不是觉得很神奇呀!

9、console.assert对输入的表达式进行断言,只有表达式为false时,才输出相应的信息到控制台

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

10、console.count(这个方法非常实用哦)当你想统计代码被执行的次数

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

11、console.dir(这个方法是我经常使用的 可不知道比for in方便了多少)直接将该DOM结点以DOM树的结构进行输出,可以详细查对象的方法发展等等

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

12、console.time 计时开始

13、console.timeEnd 计时结束(看了下面的图你瞬间就感受到它的厉害了)

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

14、console.profileconsole.profileEnd配合一起使用来查看CPU使用相关信息

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

在Profiles面板里面查看就可以看到cpu相关使用信息

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

15、console.timeLineconsole.timeLineEnd配合一起记录一段时间轴

16、console.trace 堆栈跟踪相关的调试

上述方法只是我个人理解罢了。如果想查看具体API,可以上官方看看,具体地址为:https://developer.chrome.com/devtools/docs/console-api

控制台的一些快捷键

1、方向键盘的上下键,大家一用就知晓。比如用上键就相当于使用上次在控制台的输入符号

2、$_命令返回最近一次表达式执行的结果,功能跟按向上的方向键再回车是一样的

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

上面的$_需要领悟其奥义才能使用得当,而$0~$4则代表了最近5个你选择过的DOM节点。

什么意思?在页面右击选择审查元素,然后在弹出来的DOM结点树上面随便点选,这些被点过的节点会被记录下来,而$0会返回最近一次点选的DOM结点,以此类推,$1返回的是上上次点选的DOM节点,最多保存了5个,如果不够5个,则返回undefined

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

3、Chrome 控制台中原生支持类jQuery的选择器,也就是说你可以用$加上熟悉的css选择器来选择DOM节点

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

4、copy通过此命令可以将在控制台获取到的内容复制到剪贴板

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

(哈哈 刚刚从控制台复制的body里面的html可以任意粘贴到哪, 比如记事本, 是不是觉得功能很强大)

5、keys和values前者返回传入对象所有属性名组成的数据,后者返回所有属性值组成的数组

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

说到这,不免想起console.table方法了

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

6、monitor & unmonitor

monitor(function),它接收一个函数名作为参数,比如function a,每次a被执行了,都会在控制台输出一条信息,里面包含了函数的名称a及执行时所传入的参数。

而unmonitor(function)便是用来停止这一监听。

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

看了这张图,应该明白了,也就是说在monitor和unmonitor中间的代码,执行的时候会在控制台输出一条信息,里面包含了函数的名称a及执行时所传入的参数。当解除监视(也就是执行unmonitor时)就不再在控制台输出信息了。

$ // 简单理解就是 document.querySelector 而已。$$ // 简单理解就是 document.querySelectorAll 而已。$_ // 是上一个表达式的值$0-$4 // 是最近5个Elements面板选中的DOM元素,待会会讲。dir // 其实就是 console.dirkeys // 取对象的键名, 返回键名组成的数组values // 去对象的值, 返回值组成的数组

下面看一下console.log的一些技巧

1、重写console.log 改变输出文字的样式

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

2、利用控制台输出图片

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

3、指定输出文字的样式

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

最后说一下chrome控制台一个简单的操作,如何查看页面元素,看下图就知道了

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

你在控制台简单操作一遍就知道了,是不是觉得很简单!

Javascript 相关文章推荐
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
Jan 01 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
Jul 09 Javascript
JS小游戏之仙剑翻牌源码详解
Sep 25 Javascript
简单方法判断JavaScript对象为null或者属性为空
Sep 26 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
Mar 20 Javascript
js随机生成26个大小写字母
Feb 12 Javascript
javascript回到顶部特效
Jul 30 Javascript
vue router demo详解
Oct 13 Javascript
vue-cli3 从搭建到优化的详细步骤
Jan 20 Javascript
JavaScript递归函数定义与用法实例分析
Jan 24 Javascript
vue eslint简要配置教程详解
Jul 26 Javascript
详解JavaScript 中的批处理和缓存
Nov 19 Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
Sep 30 #Javascript
微信小程序 Audio API详解及实例代码
Sep 30 #Javascript
微信小程序 Record API详解及实例代码
Sep 30 #Javascript
微信小程序 Image API实例详解
Sep 30 #Javascript
微信小程序 wx.request(object) API详解及实例代码
Sep 30 #Javascript
JavaScript 链式结构序列化详解
Sep 30 #Javascript
Bootstrap3 Grid system原理及应用详解
Sep 30 #Javascript
You might like
屏蔽机器人从你的网站搜取email地址的php代码
2012/11/14 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
2014/12/17 PHP
php5.3不能连接mssql数据库的解决方法
2014/12/27 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
asp 取文本框名称代码
2008/12/02 Javascript
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
jQuery 注意事项 与原因分析
2009/04/24 Javascript
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
Bootstrap table使用方法详细介绍
2016/12/09 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
Vue按需加载的具体实现
2017/12/02 Javascript
vue中axios的封装问题(简易版拦截,get,post)
2018/06/15 Javascript
Vue组件系列开发之模态框
2019/04/18 Javascript
CountUp.js数字滚动插件使用方法详解
2019/10/17 Javascript
[00:20]TI9不朽观赛名额抽取
2019/08/05 DOTA
在Python中使用HTML模版的教程
2015/04/29 Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
详解python的webrtc库实现语音端点检测
2017/05/31 Python
Python模拟脉冲星伪信号频率实例代码
2018/01/03 Python
python发送邮件脚本
2018/05/22 Python
Python enumerate内置库用法解析
2020/02/24 Python
python中altair可视化库实例用法
2021/01/26 Python
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
环境科学专业个人求职信
2013/09/26 职场文书
理工类毕业自我鉴定
2014/02/20 职场文书
财务主管岗位职责
2014/02/28 职场文书
2015年数学教研组工作总结
2015/05/23 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
纪检监察立案决定书
2015/06/24 职场文书
go语言中GOPATH GOROOT的作用和设置方式
2021/05/05 Golang
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技
win10怎么设置右下角图标不折叠?Win10设置右下角图标不折叠的方法
2022/07/15 数码科技