console.log格式输出全解及console的其他方法
console.log格式化这一用法一般都在个人博客或其他官网上有,当F12查看网页元素时,在控制台(console)那里偶尔会发现一些个性化的输出,其实现原理不难看一遍就晓得,具体实现如下:
一、console.log格式化打印
console.log支持的格式标志有:
占位符 | 描述 |
---|---|
%s | 字符串 |
%d%i | 整数 |
%f | 浮点数 |
%o/%O | object对象 |
%c | css样式 |
1、%c 表示css样式
2、%d 和 %i 表示整数
3、%f 表示浮点类型number
4、%s 表示字符串类型
console.log("%s","first","second"); // 输出结果:first second
5、%o 表示DOM元素
6、%O 表示javascript对象
7、输出 %
console.log("%%"); // 输出结果:% console.log("%%","zzk"); // 输出结果:% zzk
二、console对象的一些方法
首先在控制台(console)输入console回车,会看到
常用的方法有:
log // 打印日志
debug // 打印调试
error // 打印错误
info // 打印信息
warn // 打印警告
assert // 打印断言
clear // 清空控制台
console.time & console.timeEnd
这是性能调试的利器啊,熟悉NodeJs的童鞋更是清楚。肯定不少童鞋干过这事:在我们的某块代码前新增一个类似startTime的变量,给它一个时间戳,然后在我们执行完代码后,再打一个时间戳,再将两者相减,再将结果输出。现在我们使用上面的函数,就可以省下很多功夫了:
console.time('wait'); setTimeOut(()=>{ console.timeEnd('wait'); },1000); wait: 1000ms
使用这两个接口是何其方便!而且我们还可以将一个字符串作为函数参数,来区分不同的性能计时。
console.count
这是一个计数器,我们可以传个名字给它,如a,然后每次调用console.count(‘a’)(可以在不同函数不同地方),它就能打印出这样一个调用执行了多少次:
let a = ()=>{ console.count('Call function a'); }; let b = ()=>{ a(); } let c = ()=>{ b(); } b(); c(); Call function a:1 Call function a:2
这个函数特别适用于在一些复杂的场景,有时一个函数被多个地方调用到,而我们想知道该函数是否少调用或重复调用,此时使用计数器比js断点自己还要默记调了几次快多了。
console.assert
assert,搞编程的应该对这个单词不陌生:断言。
let a = ()=>{ let el = document.getElementById('test'); console.assert(el,'没有ID为test的节点'); } a(); // Assertion failed: 没有ID为test的节点
不难说,使用该函数可以让我们在某些地方只在符合某个条件才进行调试输出,使输出更加干净。当然你也可以用if语句,不过写起来就麻烦了一些。
console.group
一看就知道是分组输出:
console.group('group1'); console.log('a'); console.log('b'); console.groupEnd('group1'); console.group('group2'); console.log('a2'); console.log('b2'); console.groupEnd('group2');
显然这个函数特别适合有一大堆调试输出的情况,做大项目估计会用上。不过有时你打开控制台看到满屏满屏的输出你也会很头痛的,于是你可以分组输出且默认收起。
console.clear
最后的最后,该清场了。
特别适用于,在一个多人开发项目,你不爽别人的调试输出,那你可以用这个函数统统清掉,再输出自己的调试信息,不用跟这个函数客气。
原文地址:https://www.cnblogs.com/youknowUL/p/11944879.html
- Python(3):文件读写与异常
- 向ASP.NET Core迁移
- Gitlab CI 自动部署 asp.net core web api 到Docker容器
- 从XMLHttpRequest请求响应里getResponseHeader(header)报错:Refused to get unsafe header "**" 问题解决
- 全面理解 ASP.NET Core 依赖注入
- jq实现上传头像并实时预览功能
- 初探领域驱动设计(2)Repository在DDD中的应用
- js取整并保留两位小数的方法
- 异步编程 In .NET
- 判断标签是否包含class的方法
- vue.js使用props在父子组件之间传参
- JS中使用正则表达式替换对象里的大小写
- JS中const、var 和let的区别
- 动态计算rem的js代码
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 没啥用,更换注册表信息使webbrower选择适合的版本
- linux下分割和合并压缩包
- 编译.net .net Core程序 代码,仅做备份
- js删除数组对象中符合条件的数据
- .net core webapi jwt 更为清爽的认证 ,续期很简单(2)
- 手把手教你写一个windows服务 【基于.net】 附实用小工具{注册服务/开启服务/停止服务/删除服务}
- 一网打尽枚举操作 .net core
- Jenkins 发布.net core 程序,服务端无法下载nuget包的解决方法 error NU1102: 找不到版本为 (>= 3.1.6) 的包
- NET Core Kestrel部署HTTPS 一个服务器绑一个证书 一个服务器绑多个证书
- .net core webapi jwt 更为清爽的认证 ,续期很简单(1)
- 用flask来在线管理你的iptables
- Linux Shell命令速查表
- Windows10实现滑动锁屏
- Vue&uni-app在微信浏览器隐藏titleNView的一个方法
- 使用OData服务将SAP C4C自定义BO的TextCollection暴露给外部消费者