当前位置: 首页 > news >正文

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

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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

["$$", "$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用于输出调试信息

 

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

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

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

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

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>

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

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

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

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

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

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

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

12、console.time 计时开始

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

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

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

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

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

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

控制台的一些快捷键

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

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

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

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

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

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

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

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

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

6、monitor & unmonitor

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

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

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

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

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

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

2、利用控制台输出图片

3、指定输出文字的样式

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

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

转载于:https://my.oschina.net/wuweixiang/blog/3028572

相关文章:

  • ajax----tomact服务器运行
  • 软件测试工程师的核心竞争力是什么?
  • SQL-乐观锁,悲观锁之于并发
  • iOS:“Invalid top-level type in JSON write”引起程序闪退
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • 真正的反演笔记
  • 作为面试官的一点点感悟,谈谈技术人的成长之路
  • 阿里程序员工作小技巧:理解CPU分支预测,提高代码效率
  • Ubuntu18.04配置双网卡、双路由
  • 刚刚,阿里发布AI谣言粉碎机,识别准确率达81%
  • 如何通过StackStorm自动支持2万多台服务器
  • 流动的SVG线条
  • Spring框架IOC和AOP的实现原理(概念)
  • 使用GlobalSSH加速Ansible海外部署效率
  • gulp的使用方法
  • (三)从jvm层面了解线程的启动和停止
  • CentOS 7 修改主机名
  • ESLint简单操作
  • Java多线程(4):使用线程池执行定时任务
  • js算法-归并排序(merge_sort)
  • learning koa2.x
  • php面试题 汇集2
  • Spring Cloud Feign的两种使用姿势
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 半理解系列--Promise的进化史
  • 技术:超级实用的电脑小技巧
  • 前端代码风格自动化系列(二)之Commitlint
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 【干货分享】dos命令大全
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​渐进式Web应用PWA的未来
  • ​什么是bug?bug的源头在哪里?
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (Note)C++中的继承方式
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (未解决)macOS matplotlib 中文是方框
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转)3D模板阴影原理
  • (转)使用VMware vSphere标准交换机设置网络连接
  • (转)树状数组
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET 解决重复提交问题
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • /dev/sda2 is mounted; will not make a filesystem here!
  • @Mapper作用
  • @Transaction注解失效的几种场景(附有示例代码)
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [30期] 我的学习方法
  • [ASP]青辰网络考试管理系统NES X3.5
  • [Avalon] Avalon中的Conditional Formatting.