2024年,前端必会的console骚操作

调试。程序员们努力地避免的东西,只为在代码中制造更多的错误。

编写无错误的代码是即使是最好的程序员也会觉得难以实现的。这就是为什么你应该总是调试代码。

而调试JavaScript代码的最好方法之一就是了不起的console.log()。除此之外,还有更好的方法。

这也正是本文的重点。告诉你与控制台交互的更好方法。

在复杂的IDE中输入控制台会出现各种自动补全。

在Visual Studio Code中输入console时的自动补全选项。

与使用普通的console.log()不同,这里有一些更好的选择。

使用这些使调试过程变得更加容易和快速。

console.warn() 和 console.error()

当有一个错误可以停止你的应用程序的工作时,使用另一个console.log来调试它是行不通的。

你的控制台消息会混在一起。你找不到你要找的消息。

但是,使用console.warn()和console.error()是很好的解决方法。

console.warn("这是一个警告");

Microsoft Edge上的警告消息

console.error("这是一个错误")

Microsoft Edge上的错误消息

计时操作

想看看那段代码运行了多长时间?

使用console.time()

首先,创建一个计时器并给它一个唯一的名称。

console.time("循环计时器")  

然后,运行那段代码。

for(i = 0; i < 10000; i++){// 一些代码
}

然后,调用timeEnd()

console.timeEnd("循环计时器")

这是所有的代码。

console.time("循环计时器")
for(i = 0; i < 10000; i++){// 一些代码
} 
console.timeEnd("循环计时器")

代码运行了大约0.4毫秒。

这对CPU密集型应用程序非常有用,比如神经网络或HTML Canvas读取,这些应用程序需要一些时间。

跟踪代码如何到达那里

想看看一个函数是如何被调用的?

function trace(){console.trace()  
}
function 随机函数(){trace();
}

在这里,有一个名为随机函数的方法,它调用了trace,后者调用了console.trace()

所以,当你调用随机函数时,你会得到这样的输出

Edge上的输出

它显示匿名(即主要的JavaScript代码)调用了随机函数,后者调用了trace()

对控制台消息进行分组

如果你对控制台消息进行分组,可以使你的控制台更易读。

console.log("测试1!");console.group("我的消息组");console.log("测试2!");
console.log("测试2!");
console.log("测试2!");console.groupEnd()

所有Test2消息都在“我的消息组”下。

分组的消息

清空控制台

如果你正在遵循本教程,那么你的控制台将会非常满。让我们清空它。

console.clear();

好的,让我向你展示控制台。

清空的控制台

没有太多东西好展示了。现在我们又清空了,让我们继续。

表格

让我们添加表格来更好地可视化数据。

假设我们有两个对象。

var 人物1 = {name: "怪人", age : "-23", hobby: "唱歌"}
var 人物2 = {name: "某姓名", age : "无穷大", hobby: "编程"}

简单的console.log会使数据看起来很乱。

表格会更好。

console.table({人物1, 人物2})

JavaScript中的控制台表格

你从来不知道JavaScript控制台可以看起来这么整洁,对吧?

控制台里的CSS?

是的,你没看错。

你可以在控制台添加CSS。

console.log("%c 我喜欢JavaScript!","color: red; background-color: lightblue; border: solid");

注意 %c 符号。魔力就在这里。

JS控制台中的CSS样式

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java CAS

CAS 在高并发场景&#xff0c;可以使用加锁 或者CAS来保证原子性&#xff0c;但是加锁是很重量级的操作&#xff0c;CAS类似于乐观锁CAS &#xff08; Compare and swap &#xff09;比较并交换&#xff0c;是实现并发算法时常用到的技术&#xff0c;包含三个操作数&#xff1…

Linux编译器

目录 Linux编译器 程序编译的步骤 gcc编译器完成C语言程序的编译 预处理 编译 汇编 链接 上一期我们学习了Linux中的vim编辑器&#xff0c;其实本质上vim编辑器就是写代码的一个工具。上期内容我们也已经说过&#xff0c;一份合格的代码需要进行编写&#xff0c;编译&am…

4.4 媒资管理模块 - 分布式任务处理介绍、视频处理技术方案

媒资管理模块 - 视频处理 文章目录 媒资管理模块 - 视频处理一、视频转码1.1 视频转码介绍1.2 FFmpeg 基本使用1.2.1 下载安装配置1.2.2 转码测试 1.3 工具类1.3.1 VideoUtil1.3.2 Mp4VideoUtil1.3.3 测试工具类 二、分布式任务处理2.1 分布式任务调度2.2 XXL-JOB 配置执行器 中…

TopAccess验证东芝刷卡打印机苹果电脑连接教程(适用于intel和苹果m芯片)

复制打印机IP地址到谷歌浏览器后回车&#xff0c;默认用户名&#xff1a;admin&#xff0c;密码&#xff1a;123456&#xff0c;点击登录按钮。如果有更改的请按照实际输入。 依次点击用户管理-用户账户-新建。如果需要新建部门的&#xff0c;可以点击用户管理-部门管理-新建。…

今天才知道原来它是这样的HTTP

HTTP介绍 HTTP协议是Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;的缩写,是用于从万维网&#xff08;WWW:World Wide Web &#xff09;服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据&#xff08;HTML 文件, 图片文…

JPEG格式详解Baseline、Progressive的区别

文章目录 JPEG的简介压缩质量/压缩比率色彩空间基线和渐进子采样存储选项 基线和渐进基线格式渐进格式&#xff1a; 子采样4:4:4&#xff08;无损&#xff09;4:2:24:2:0 JPEG的简介 JPEG&#xff08;Joint Photographic Experts Group&#xff09;是一种常见的图像压缩格式&a…

有些应用中不需要使用回原点指令

不是所有的轴运动控制&#xff0c;都一定要使用回原点指令来执行回原点 通过手动找到极限开关&#xff0c;然后往回走一段距离&#xff0c;也是一种方式&#xff0c;所谓的往回走的这段距离方便用于手动校准原点位置&#xff1b; 那使用原点指令回原点后&#xff0c;也可以走一…

【大厂算法面试冲刺班】day0:数据范围反推时间复杂度

常见算法的时间复杂度 规定n是数组的长度/树或图的节点数 二分查找&#xff1a;O(logn) 双指针/滑动窗口&#xff1a;O(n) DFS/BFS&#xff1a;O(n) 构建前缀和&#xff1a;O(n) 查找前缀和&#xff1a;O(1) 一维动态规划&#xff1a;O(n) 二维动态规划&#xff1a;O(n^2) 回溯…

Go采集1688网站数据对比商品价格

最近看了下多多和1688的一些商品价格&#xff0c;发现好多店铺都是无货源拿货一件发货&#xff0c;这就导致层层叠加价格翻了不知道几倍&#xff0c;真所谓多花钱办的事还是一样&#xff0c;因此&#xff0c;今天我就通过一个爬虫程序监控对应商品价格&#xff0c;了解行业龙头…

MCU、MPU、SOC简介

文章目录 前言一、MCU二、MPU三、SOC总结 前言 随着处理器技术的不断发展&#xff0c;CPU(Central Processing Unit)的发展逐渐出现三种分支&#xff0c;分别是MCU(Micro Controller Unit&#xff0c;微控制器单元) 和MPU&#xff08;Micro Processor Unit&#xff0c;微处理器…

Java web设计:在线微友圈网站

项目背景 微友圈是一个基于Java Web开发的社交网络平台&#xff0c;旨在为用户提供一个轻松互动、分享生活和交流观点的在线社区。随着社交网络的普及&#xff0c;人们更加渴望与朋友、家人以及其他志同道合的人保持联系并分享彼此的生活点滴。微友圈的目标是打造一个简洁、高…

什么情况?DDD 中的每个任务都执行了两次?

最近在使用 COLA 框架自带的异步任务时&#xff0c;发现每次执行异步都执行了两次&#xff0c;如果一些没有做幂等的接口&#xff0c;这样是会有问题的&#xff0c;比如入库操作之类的&#xff0c;就会造成数据重复入库&#xff0c;造成严重 bug。 带着疑惑&#xff0c;开始了…