前端调试并非仅限于使用console.log()。
我相信大家在日常开发中都会进行代码调试,因为谁也不能保证代码不会出现问题,所以我们需要进行debug操作,并输出信息来检查数据是否有异常。我们可能会习惯性地使用console.log('XXX')或者debugger来调试。在JavaScript中,console对象提供了许多强大的方法,使得开发者能够更灵活地进行交互。除了我们熟知的console.log之外,还有许多其他强大的方法可供我们使用。
比如console.info、console.warn和console.error,能够以不同级别输出信息,更清晰地表达代码的执行状态。console.table则可将对象数组以表格形式呈现,方便查看结构化数据。在处理性能问题时,console.time和console.timeEnd用于计算代码执行时间,而console.trace提供当前调用栈的追踪信息。
console.info、console.warn、console.error
console.info()、console.warn()、console.error():用于输出不同级别的日志信息,可以帮助我们了解代码的执行流程和可能的问题。通常用于普通日志、信息性日志、警告和错误信息的输出。如果代码中有很多个输出,控制台可能就会很混乱,这时候还可以使用console.warn()、console.error()打印出不同的信息。比如:
const a = { name: '张三', edge: 20 }; console.log('This is a log message', a.name); console.info('This is an informational message', a.name); console.warn('This is a warning message', a.name); console.error('This is an error message', a.name);
console.time()、console.endTime()
有时候数据很多并且处理的逻辑还挺复杂,经过我们一番操作后总是会担心会不会很耗时,这时候就可以测试代码执行的时间,如果页面渲染过慢就能排查是不是某些逻辑写的太耗性能了。
console.time('Timer'); for (let i = 0; i < 10000; i++) {} console.timeEnd('Timer'); console.time('Timer2'); for (let i = 0; i < 100000000; i++) {} console.timeEnd('Timer2');
console.trace()
输出当前调用栈的追踪信息,用于查看函数的调用路径。如果想知道一个函数是何时被调用的,console.trace()就能显示函数的调用链。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <script> function foo() { console.trace('Trace message'); } function test() { return foo(); } foo(); test(); </script> </body> </html>
console.table()
前端用数组结构还是挺多的,有时候想打印出更清晰的数据结构,就可以用console.table()了,它适用于输出对象数组的信息,以表格形式展示,有助于清晰地查看对象的属性。
<script> const myArray = [ { name: 'John', age: 30 }, { name: 'Jane', age: 25 }, ]; console.table(myArray); </script>
console.clear()
很多时候正在调试bug,在控制台打印信息,但控制台可能会出现一些警告或者其他报错,我们需要的信息就会不容易发现,这时候就可以使用console.clear()。清空输出了
console.assert()
断言,如果条件为 false,则输出一条错误消息。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <script> console.assert(1 + 3 === 5, '第一个报错了'); console.assert(1 + 3 === 4, '第二个报错了'); </script> </body> </html>
当然还有其他的,这里就不一一举例了比如:
• console.timeLog():输出指定计时器的当前运行时间。
• console.profile() 和 console.profileEnd():用于性能分析,开始和结束记录分析数据。
• console.group() 和 console.groupEnd():用于将一系列相关的日志信息分组,使输出更有组织,特别是在复杂的应用中。
web
网站开发
小程序开发
阅读排行
-
1. 几行代码就能实现Html大转盘抽奖
大转盘抽奖是网络互动营销的一种常见形式,其通过简单易懂的界面设计,让用户在游戏中体验到乐趣,同时也能增加商家与用户之间的互动。本文将详细介绍如何使用HTML,CSS和JavaScript来实现大转盘抽奖的功能。
查看详情 -
2. 微信支付商户申请接入流程
微信支付,是微信向有出售物品/提供服务需求的商家提供推广销售、支付收款、经营分析的整套解决方案,包括多种支付方式,如JSAPI支付、小程序支付、APP支付H5支付等支付方式接入。
查看详情 -
3. 浙江省同区域公司地址变更详细流程
提前准备好所有需要的资料,包含:房屋租赁合同、房产证、营业执照正副本、代理人身份证正反面、承诺书(由于我们公司其中一区域已有注册另外一公司,所以必须需要承诺书)
查看详情 -
4. 阿里云域名ICP网络备案流程
根据《互联网信息服务管理办法》以及《非经营性互联网信息服务备案管理办法》,国家对非经营性互联网信息服务实行备案制度,对经营性互联网信息服务实行许可制度。
查看详情 -
5. 微信小程序申请注册流程
微信小程序注册流程与微信公众号较为相似,同时微信小程序支持通过已认证的微信公众号进行注册申请,无需进行单独认证即可使用,同一个已认证微信公众号可同时绑定注册多个小程序。
查看详情