浏览器控制台console常用命令小结

chrome调试工具的Console对象相信很多人使用过,熟练的Web开发人员会经常使用 console.log() 在其代码中打印消息和调试问题,实际上还有很多很有用的功能和技巧,善用之可以极大提高Web开发,网站调优的效率! 这里我们总结一下常用的console常用命令,供大家参考。

1.信息输出  

Console.log,不仅可以向控制台输出信息,而且能接受多个参数并支持按照指定格式输出内容。

var animal = "cat", count = 30;
// The mount of cat are 30
console.log("The mount of %s are %d", animal,count);
or
// The mount of cat are 30
console.info("The mount of %s are %d", animal,count);

也可混合字符替代和字符链接使用。

var name = "Terry", thing1 = "book", thing2 = "pen";
// I am Terry and I have book and pen
console.log("I am %s and I have",name,thing1,"and",thing2);
or  
// I am Terry and I have book and pen
console.info("I am %s and I have %s",name,thing1,"and",thing2);

关于占位符:JS中常用占位符使用方法详解_ |%s|%d|%f|%o|%O|%c| - CSDN博客 

如果输出内容为对象,在控制台中也查看对象的属性和方法等信息。目前输出内容支持以下几种格式:  

格式说明
%s字符串
%d, %i整数(不支持指定位数)
%f浮点数(不支持指定位数)
%OObject对象
%oDom元素
%cCss样式

注意:%o 和 %O的区别:

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

%o、%O都是用来输出Object对象的,对普通的Object对象,两者没区别,但是打印dom节点时就不一样了:前者log 出body节点内的html,后者log 出body对象的属性,方法。

使用%o输出和不使用格式化输出打印出来的结果一样,你可以查看这个dom节点的内容、子节点等;而使用%O,你看到的则是该dom节点各个对象属性。 

另:根据信息的不同性质,console对象还有另外4种显示信息的方法,分别是一般信息console.info()、调试信息console.debug()、警告提示console.warn()、错误提示console.error(),不同性质的信息前面有不同的图标,并且每条信息后面都有超级链接,点击后跳转到网页源码的相应行。  

console.log ()、 console.info ()、 console.debug ()的作用都是在浏览器控制台打印信息的。

使用最多的是 console.log (),console.info ()和 console.debug ()本质上与 console.log ()没有区别。是 console.log()方法的别名而已,用法完全一样,可以理解为它们三个其实就是同一个,只不过名字不一样。

注:浏览器默认情况下,console.debug() 打印输出的信息是不会显示出来的,只有在打开显示级别在verbose的情况下,才会显示。 

因为浏览器在默认情况下是隐藏这个调试信息的而且将这个类型的调试信息归为Verbose,因为Verbose显示的级别很低,将Verbose选上就可以显示出来的

2. 表达式判断

console.assert(判断语句)用于判断一个表达式是否是真,如果为错误的话,会输出错误提示;如果为真,直接输出判断表达式。

console.assert() 方法主要用于程序运行过程中,进行条件判断,如果不满足条件,就显示一个错误,但不会中断程序执行。这样就相当于提示用户,内部状态不正确。

它接受两个参数,第一个参数是表达式,第二个参数是字符串。只有当第一个参数为false,才会提示有错误,在控制台输出第二个参数,否则不会有任何结果。

var a=3,b=4;
console.assert(a+b == 8); // Assertion failed: console.assert

输出结果,如下图:

var aa = 100
var bb = 99
console.assert(aa !== bb ,"aa 不等于 bb") // 为true,无打印
console.assert(aa === bb ,"aa 等于 bb")  // 为false,有打印

 输出结果,如下图: 

3. 信息分组显示

使用console.group()、console.groupEnd()对输出到控制台的信息进行分组显示。如:

有时候打印的消息很多可以使用console.group()打印,针对某一功能分成一个组。

使用console.group()是默认情况下是展开的,不想要展开可以换成console.groupCollapsed()

示例 1: 

console.group("分组1");     
console.log(1);  
console.group("分组1.1");  
console.log(1.1);  
console.groupEnd();   
console.groupEnd(); 
console.group('分组2');   
console.log(2); 
console.groupEnd();  

在控制台显示为:

示例 2: 

const group='Package'
console.group(group)
console.log('one');
console.log('two');
console.log('three');
console.groupEnd(group)

 输出结果,如下图:

4. 打印表格

对于某些复合类型的数据,console.table方法可以在控制台将其转为表格显示。如:

console.table({
  first: { name: "ququ", age: 27 },
  second: { name: "kitty", age: 100 },
});

打印结果,显示如下:

console.log()换成console.table()打印,看上去能更直观得显示数据,而且下面还会列出详情。大家可以通过下面示例,只观感受一下:

let table=[
  {name:'aaa',age:18,sex:'男'},
  {name:'aaa',age:18,sex:'男'},
  {name:'aaa',age:18,sex:'男'}
]
console.log(table);
// console.table(table);

第二个可选参数是你想要显示列表的某列。默认是整个列表,但是我们也能这样做:

let table=[
  {name:'aaa',age:18,sex:'男'},
  {name:'aaa',age:18,sex:'男'},
  {name:'aaa',age:18,sex:'男'}
]
console.table(table,["name"]);

5. 计时器

console.time()、console.timeEnd()可用来计算某段JavaScript代码执行的时间,在检测代码性能和JS优化上十分有用。如:

  • 这两个方法用于计时,可以算出一个操作所花费的准确时间。
  • time方法表示计时开始,timeEnd方法表示计时结束。
  • 它们的参数是计时器的名称,需要保持一致。
  • 调用timeEnd方法之后,控制台会显示“计时器名称: 所耗费的时间”。

示例 1: 

console.time("计时器一");  
for(var i=0;i<1000;i++){  
    for(var j=0;j<1000;j++){}  
}  
console.timeEnd("计时器一");  

 控制台打印结果,显示如下:

示例 2:

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');

控制台打印结果,显示如下:

6. 次数统计

console.count()方法用来输出console.count(); 所在语句执行的次数,也就是用于计数,输出它被调用了多少次。例如,你要看一个循环是否执行了你预想的次数,可以在循环中放入一个console.count("str");这样,循环执行完成后,控制台就会显示出循环执行的次数。

示例 1: 

var count=0;  
for(var i=0;i<10;i++){  
    console.count();  
    count+=i;  
}  
console.log(count);    

控制台打印结果,显示如下:

示例 2:该方法可以接受一个字符串作为参数,作为标签,对执行次数进行分类

function fun(user) {
  console.count(user);
}

fun('aa');
fun('bb');
fun('cc');

 控制台打印结果,显示如下:

7. 输出对象属性

console.dir()用于打印对象结构,可以显示一个对象所有的属性和方法。

console.dir()方法用来对一个对象进行检查(inspect),并以易于阅读和打印的格式显示。

示例 1:

console.dir(document.body) 

控制台打印结果,显示如下:

示例 2:

console.log({f1: 'foo', f2: 'bar'})
console.dir({f1: 'foo', f2: 'bar'})

控制台打印结果,显示如下: 

8. 输出节点内html

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

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 测试 div -->
    <div id="my-div">dzm</div>
    <script>
      // 获取 div
      const div = document.getElementById("my-div");
      // 正常输出
      console.log("console.log:", div);
      // 输出对象结构
      console.dir(div);
      // 输出对象 html/xml 代码
      console.dirxml("console.dirxml:", div);
    </script>
  </body>
</html>

 控制台打印结果,显示如下:

9. 代码跟踪

console.trace()方法用来追踪函数的调用轨迹。

console.trace()堆栈,有时候一个方法会被很多地方调用,但是在运行的过程中没报错但是却没达到我们的预期,我们又不知道是哪里被调用的,这时候就用到了console.trace(),在方法里使用console.trace()就知道是谁调用的了这个方法了

比如,有一个加法器函数。

function add(a,b){    
   console.trace();    
   return a+b; 
}

假定这个函数的调用代码如下:

var x = add3(1,1);  
function add3(a,b){return add2(a,b);}  
function add2(a,b){return add1(a,b);}  
function add1(a,b){return add(a,b);}    

运行后,会显示add()的调用轨迹,从上到下依次为add()、add1()、add2()、add3()。

显示如下:

10. 性能分析

console.profile()和profileEnd()能分析程序各个部分的运行时间,找出瓶颈所在。

参考:Chrome开发者工具 - 性能进阶篇 | JS Profiler |Chrome开发者工具performance面板

 console.profile() 方法用来新建一个性能测试器(profile),它的参数是性能测试器的名字。

console.profile('p')
// Profile 'p' started.

console.profileEnd() 方法用来结束正在运行的性能测试器。

console.profileEnd()
// Profile 'p' finished.

假定有一个函数Foo(),里面调用了另外两个函数funcA()和funcB(),其中funcA()调用10次,funcB()调用1次。

function Foo(){
    for(var i=0;i<10;i++){
        funcA(100);
}  
funcB(1000);  
}  
function funcA(count){  
    for(var i=0;i<count;i++){}  
}  
function funcB(count){  
    for(var i=0;i<count;i++){}  
}  

在控制台中输入:

console.profile('性能分析器一');
Foo();
console.profileEnd();      

11. 信息清空 

clear()方法和console.clear()方法都可以清空Console已有的信息。


相关参考资料

送给前端新秀的礼物:Chrome开发者工具调试入门指南

chrome调试工具之Console - 掘金 | 作为前端必须了解的22种console用法 - 知乎

【JavaScript】你不知道的 console 命令_console.info-CSDN博客

web开发js字符串拼接占位符及conlose对象Api详解 _ 脚本之家

有趣的console.log(console.log输出彩色字,图片等) | console.log详细介绍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/605697.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ansible---Playbook剧本

文章目录 Playbook案例1 Playbook剧本基本用法案例2 Playbook剧本定义、引用变量案例3.when条件判断迭代剧本Roles 模块 Playbook Tasks&#xff1a;任务是 Playbooks 的核心&#xff0c;它们是 Playbook 中的一项指令&#xff0c;告诉 Ansible 在远程主机上执行什么操作。每个…

kubectl_进阶_安全

安全 在前面的学习中&#xff0c;我们知道对于资源对象的操作都是通过 APIServer 进行的&#xff0c;那么集群是怎样知道我们的请求就是合法的请求呢&#xff1f; 这就涉及到k8s的安全相关的知识了。 1. API对象 Kubernetes有一个很基本的特性就是它的所有资源对象都是模型…

pdf2htmlEX:pdf 转 html,医学指南精细化处理第一步

pdf2htmlEX&#xff1a;pdf 转 html&#xff0c;医学指南精细化处理第一步 单文件转换多文件转换 代码&#xff1a;https://github.com/coolwanglu/pdf2htmlEX 拉取pdf2htmlEX 的 Docker&#xff1a; docker pull bwits/pdf2htmlex # 拉取 bwits/pdf2htmlex不用进入容器&…

统信UOS 1070桌面操作系统如何备份及恢复全盘数据

原文链接&#xff1a;统信UOS 1070桌面操作系统如何备份及恢复全盘数据 Hello&#xff0c;大家好啊&#xff01;数据备份和还原对于保护我们的重要信息至关重要&#xff0c;尤其是当系统遭遇意外时&#xff0c;能够快速恢复到正常状态。今天&#xff0c;我将介绍如何在统信UOS …

树莓派配置双网卡分别为AD HOC和AP模式

树莓派配置双网卡分别为AD HOC和AP模式 需求说明&#xff1a;为了实现分级网络管理&#xff0c;将多个无人机分簇&#xff0c;簇间使用AD HOC进行无中心自组织的网络&#xff0c;簇内使用AP-AC模式进行中心化网络。因此&#xff0c;需要配置一台设备&#xff0c;同时完成AD HOC…

设计模式——行为型模式——策略模式(含实际业务使用示例、可拷贝直接运行)

目录 策略模式 定义 组成和UML图 代码示例 实际业务场景下策略模式的使用 策略模式优缺点 使用场景 JDK中使用策略模式示例 参考文档 策略模式 定义 策略模式定义了一系列算法&#xff0c;并将每个算法封装起来&#xff0c;使它们可以相互替换&#xff0c;且算法的变化…

【微信小程序开发】微信小程序、大前端之flex布局方式详细解析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

液晶高抗干扰驱动LCD段码屏驱动芯片VK2C22抗干扰系列瓦斯表段码LCD液晶驱动芯片

VK2C22是一个点阵式存储映射的LCD驱动器&#xff0c;可支持最大176点&#xff08;44SEGx4COM&#xff09;的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据&#xff0c;也可通过指令进入省电模式。其高抗干扰&#xff0c;低功耗的特性适用于水电气表以及工控仪表类产品…

简单几步解决Windows 10播放视频提示安装HEVC扩展

相信有不少人都遇到过以下的问题&#xff0c;废话不多说&#xff0c;直接上干货&#xff01; 1.下载插件 免费地址链接: 点击下载 2.安装插件 如图所示&#xff0c;在下载的目录路径里&#xff0c; 1.按住键盘 SHIFT&#xff0c;点击鼠标右键&#xff0c;选择在此处打开Powe…

4WRPH系列比例阀外置放大器

控制4WRPH6或4WRPH10比例伺服阀放大器适用于驱动带非线性曲线的直动式比例伺服电磁阀&#xff0c;模拟量控制电器放大器模块式的放大器用于安装在机柜内35mm卡轨架上&#xff0c;输出级带电气反馈用于闭环控制。使能输入功能可控制放大器输出开或关&#xff0c;带斜坡时间发生器…

const成员函数、cout/cin和重载运算符<<、>>、

目录 一、为什么cout&#xff0c;cin可以自动识别类型&#xff1f; 二、留提取运算符重载&#xff08;<<&#xff09; 三、留插入运算符重载&#xff08;>>&#xff09; 四、对上述的总结&#xff1a; 五、const成员 成员函数原则&#xff1a; 六、默认成员函…

Object类

Object类 概念&#xff1a;Object类是所有类的父类&#xff0c;也就是说任何一个类在定义时候如果没有明确的指定继承一个父类的话&#xff0c;那么它就都默认继承Object类&#xff0c;因此Object类被称为所有类的父类&#xff0c;也叫做基类/超类。 常用方法 方法类型描述eq…

Python实战开发及案例分析(12)—— 模拟退火算法

模拟退火算法&#xff08;Simulated Annealing&#xff09;是一种概率搜索算法&#xff0c;源自于金属退火过程。在金属退火中&#xff0c;通过缓慢降低温度&#xff0c;金属内部的原子能够从高能态逐步达到较低能态。模拟退火算法利用类似的原理&#xff0c;通过随机搜索和概率…

Samtec连接器应用科普 | 连接智能工厂中的AI

【摘要/前言】 本文是系列的第一部分&#xff0c;我们将探讨人工智能在工业领域的作用。 人工智能&#xff08;AI&#xff09;的话题最近成为头条新闻&#xff0c;因为最新一代基于云的人工智能工具有望为机器的力量带来重大飞跃。在所有关于人工智能将如何影响我们的讨论中&…

Android内核之Binder消息处理:binder_transaction用法实例(七十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

overflow:hidden对解决外边距塌陷的个人理解

外边距塌陷&#xff1a; 子元素的上外边距大于父元素的上外边距&#xff0c;导致边距折叠&#xff0c;取两者之间最大值&#xff0c;即子元素外边距&#xff0c;导致父元素上外边距失效。 解决办法&#xff1a;在父元素样式添加overflow:hidden;或者border:1px solid black;(不…

Python数据分析实战

文章目录 第1关&#xff1a;读取MoMA数据集第2关&#xff1a;计算艺术家年龄第3关&#xff1a;把年龄换算成年代第4关&#xff1a;总结年代数据第5关&#xff1a;将变量插入字符串第6关&#xff1a;创建艺术家频率表第7关&#xff1a;创建显示艺术家信息的函数第8关&#xff1a…

Ubuntu下halcon软件的下载安装

由于工作需求&#xff0c;点云配准需要使用halcon进行实现&#xff0c;并且将该功能放入QT界面中 1.下载halcon 进入halcon官网进行下载 官网链接&#xff1a;https://www.mvtec.com/products/halcon/ 注意&#xff1a;要注册登陆之后才能进行下载 接着点击Downloads->H…

SOCKET编程(3):相关结构体与函数

相关结构体与函数 sockaddr、sockaddr_in结构体 sockaddr和sockaddr_in详解 struct sockaddr共16字节&#xff0c;协议族(family)占2字节&#xff0c;IP地址和端口号在sa_data字符数组中 /* Structure describing a generic socket address. */ struct sockaddr {__SOCKADDR…

Apache POI入门学习

Apache POI入门学习 官网地址 excel中使用到的类读取excel表格内容表格内容maven依赖方式一测试结果 方式二测试结果 向excel中写入数据方式一方式二方式三测试结果 从 Excel 工作表中的公式单元格读取数据测试结果 Excel 工作表中写入公式单元格从受密码保护的Excel中读取数据…