利用console提高写bug的效率

这篇具有很好参考价值的文章主要介绍了利用console提高写bug的效率。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前端面试题库 (面试必备)            推荐:★★★★★

地址:前端面试题库文章来源地址https://www.toymoban.com/news/detail-657621.html

自从入坑前端后,日常写bug就没离开过console。

要说用得多,不如说是console.log用得多,console.warn和console.error配合使用下,几乎就是我的使用日常了。

开发调试场景各式各样,小问题很容易hold得住,问题一复杂,这打印出来的是啥玩意?眼花脑糊。

为了提高写bug效率(不是),我去了解了console的各种玩法。

丰富的文本打印姿势

使用字符串替换

有点C语言的printf那味,对字符串进行格式化输出。

替代字符串 说明
%o or %O 替换成JavaScript对象
%s 替换成字符串
%d or %i 替换成整数,支持数字格式化,例如console.log("Foo %.2d", 1.1),会输出Foo 01
%f 替换成浮点数,支持数字格式化,例如console.log("Foo %.2d", 1.1),会输出Foo 1.10
const person = {
    name: 'Amy',
    age: 18, 
    contact: {
        phone: 123456789,
        email: 'amy@gmail.com'
    }
}

如果是打印字符串,用模板字符串也能有类似的效果。

利用console提高写bug的效率,前端面试题,bug

如果是打印字符串+对象,可以通过传多个参数打印,或者使用字符串替换,写法更清晰舒适些。

利用console提高写bug的效率,前端面试题,bug

定义内容样式

%c表示为该指令后的文本使用特定的CSS样式。

利用console提高写bug的效率,前端面试题,bug

 

利用console提高写bug的效率,前端面试题,bug

借助这个能力,我们可以在控制台中打印出这样的版本号:

利用console提高写bug的效率,前端面试题,bug

function printVersion(name, version) {
  console.log(
    `%c${name}%cv${version}`,
    'color: white;padding: 4px 6px;border-radius: 4px 0 0 4px;background-color: #515151',
    'color: white;padding: 4px 6px;border-radius: 0 4px 4px 0;background-color: #0575b7'
  );
}

字符串中有两个%c,值得注意的是,第二个%c无法继承第一个%c的样式,比如其中的color: white;padding: 4px 6px,可见%c作用的文本样式都是独立的。

%c支持background属性,也就意味着background-image可以作用起来打印图片了,有兴趣的可以玩一玩看。(这个我没有测试成功,甚至直接copy了别人打印成功的代码,就奇怪。先pass了,后面研究下)

只会用console.log吗?

console提供了5种打印信息的方法,最常用的当属console.log,其次是console.warn和console.error,最后是console.info和console.debug。

console.warn、console.error

跟其他方法相比,console.warn和console.error能很明显表达出对应的日志级别,主要体现在:

  1. 在控制台中显示效果差异较大。
  2. 抛出堆栈信息。
  3. 源码中高亮提示。

利用console提高写bug的效率,前端面试题,bug

利用console提高写bug的效率,前端面试题,bug

这对于问题提示和定位均有较大的帮助,在别人阅读到自己代码的时候,也能推测出这个位置可能是处理错误场景。

console.log、console.info、console.debug的区别

很多人都搞不清楚这三个方法的区别在哪里,在控制台打印出来效果几乎没差,或者说其他功能我们不怎么需要?看下文档说明:

console.log: 向控制台打印消息。

console.info: 向控制台打印消息,仅在Firefox中,输出日志旁边会有一个小的"i"图标。

利用console提高写bug的效率,前端面试题,bug

console.debug: 向控制台打印“调试”级别的消息,浏览器默认情况下不会显示该消息,需要调整控制台日志级别的过滤选项,使其支持Debug或Verbose后才会显示。

利用console提高写bug的效率,前端面试题,bug

大部分时候我们只是想打印消息而已,就挑个最短的console.log来用了。

提高debug效率的小技巧

这是一个🌰

const isStudent = true;
const onLine = false;
const person = {
    name: 'Amy',
    age: 18, 
    contact: {
        phone: 123456789,
        email: 'amy@gmail.com'
    },
    followers: [
        { name: 'Anna', email: 'anna@gmail.com' },
        { name: 'Bob', email: 'bob@gmail.com' },
        { name: 'Robin', email: 'robin@gmail.com' },
        { name: 'Arthur', email: 'arthur@gmail.com' }
    ]
}

1. 打印变量值

在控制台打印多个变量,尤其是同类型的变量,我们需要进行标识,比如:

利用console提高写bug的效率,前端面试题,bug

应该很多人都会这么操作,我曾经还出现过标识错误的大乌龙,可以这么写:

利用console提高写bug的效率,前端面试题,bug

输出内容是一样的,更便捷准确。

2. 快速查看对象

在控制台查看数组or对象,经常是收起来的,内容比较多会被直接省略:

利用console提高写bug的效率,前端面试题,bug

改成表格输出,可读性一下子就上来了,相当舒适。

利用console提高写bug的效率,前端面试题,bug

再者,我们往往仅关心某个数据/字段,你还可以指定要查看哪些列(字段),针对性处理。

利用console提高写bug的效率,前端面试题,bug

3. 分组打印

在调试函数,尤其是定位执行过程时:

function b() {
    console.log('This is b');
    console.log('Test');
}
function a() {
    console.log('This is a');
    console.log('Test1');
    b();
    console.log('Test2');
}
a();

利用console提高写bug的效率,前端面试题,bug

即使做了标识,一时间还是很难辨别Test2是哪个方法打印出来的。

这种时候,推荐使用console.group()/console.groupCollapsed()进行分组打印,console.groupEnd()则用来闭合分组。

function b() {
    console.group('This is b');
    console.log('Test');
    console.groupEnd();
}
function a() {
    console.group('This is a');
    console.log('Test1');
    b();
    console.log('Test2');
    console.groupEnd();
}
a();

利用console提高写bug的效率,前端面试题,bug

分组打印支持嵌套,这种打印效果直观不少,面对复杂逻辑时,这种方式性价比更高。

4. 统计执行次数

console.count()对输出的内容进行次数统计,可以用于调试方法是否被多次调用,比如React v18: Why useEffect Suddenly Got Crazy?就有现成的例子,统计useEffect回调被调用的次数:

利用console提高写bug的效率,前端面试题,bug

console.countReset()可进行重置。

5. 统计执行时间

统计方法执行耗时也是可能遇到的调试手段,console也提供了快速的计时通道:

利用console提高写bug的效率,前端面试题,bug

console.time()启动计时,可以为该计时提供名称,否则使用default。

在计时期间,可以通过console.timeLog()实时查看。

完成计时后,使用console.timeEnd()结束计时。

结尾

以上简单整理了开发过程中可能会遇到的console用法,还有好些方法未提及,比如console.dir()、console.dirxml()等,有兴趣的可以去MDN上了解下。

前端面试题库 (面试必备)            推荐:★★★★★

地址:前端面试题库

到了这里,关于利用console提高写bug的效率的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 利用大语言模型(LLM )提高工作效率

    日常工作就是面向 google/ 百度编程,除了给变量命名是手动输入,大多时候就是通过搜索引擎拷贝别人的代码,或者找到旧项目一段代码拷贝过来使用。这无疑是开发人员的真实写照;然而,通过搜索引擎搜索答案,无疑是粪堆里淘金子,遇到简单的问题,一次搜索点三个连

    2024年02月05日
    浏览(48)
  • 如何利用AR技术提高农业生产效率

    农业是世界上最古老的产业,也是最重要的产业。在过去的几千年里,人类一直在尝试提高农业生产效率,以满足人类的饮食需求和生存。随着科技的发展,人类在农业生产中应用了各种技术手段,如机械化、化学化、生物化等,以提高农业生产效率。 在21世纪初,随着互联

    2024年04月14日
    浏览(50)
  • 如何利用云计算提高大数据分析的效率

    大数据分析是指通过对大量、多样化的数据进行处理、清洗、分析、挖掘,以揭示隐藏的信息和知识的过程。随着数据的增长和复杂性,大数据分析的挑战也随之增加。云计算是一种基于互联网的计算资源分配和共享模式,可以提供大量的计算能力和存储空间。因此,利用云

    2024年04月16日
    浏览(43)
  • AIGC 工具推荐:利用 AI 提高工作效率的利器

    人工智能(AI)正在改变我们的生活,使我们的工作更加高效和智能化。在这个快速发展的领域中,有许多 AI 实用工具可以帮助我们更好地完成工作。在未来熟练使用各种 AI 工具优化你的工作流并提高工作效率将是每个人的必备技能,是时候收集一些便宜好用的实用 AI 工具

    2024年02月09日
    浏览(56)
  • 智慧能源管理系统助力某制造企业提高能源利用效率

     随着全球能源需求不断增加和能源价格的上涨,企业和机构日益意识到能源管理的重要性。传统的能源管理方式不仅效率低下,还容易造成资源浪费和环境污染。因此,许多企业开始探索采用智慧能源管理系统来提高能源利用效率,降低能源成本,并且减少环境影响。 客户

    2024年02月11日
    浏览(46)
  • 如何利用自动化和智能化技术提高仓储行业效率?

    仓储行业作为物流领域的重要环节,其效率的提升对于整个供应链的顺畅运作至关重要。自动化和智能化技术的引入,为仓储行业带来了革命性的变革。 一 . 自动化技术的应用 自动化仓储系统 通过引入自动化仓储系统,如高架叉车、自动化立体仓库等,实现货物的快速、

    2024年03月23日
    浏览(59)
  • 数据集成与云计算:如何利用云计算提高数据整合效率

    数据集成是指将来自不同来源的数据进行整合、清洗、转换、加工等操作,以实现数据的一致性、一直性和完整性,从而为数据分析、报表和决策提供支持。随着数据量的增加,数据集成的复杂性和挑战也不断增加。传统的数据集成方法和技术已经不能满足现实中复杂、大规

    2024年02月21日
    浏览(38)
  • 前端开发提高效率的两大工具

    在浏览器中按下 F12 或者 鼠标右键点击检查 1、 元素 点击标红的图标可以用于在页面选择元素,同时右侧会找到元素在前端代码中的位置 点击下方红框可以看见页面在移动端中的页面展示  双击要修改的地方,可以进行编辑 ;修改后回车即可修改成功,可以看到左侧页面也

    2024年01月25日
    浏览(32)
  • 数据建模的云计算支持:利用云计算资源提高数据处理效率

    数据建模是数据科学和机器学习领域中的一个重要环节,它涉及到将实际问题转化为数学模型的过程。随着数据规模的不断扩大,传统的数据处理方法已经无法满足需求,因此需要寻找更高效的数据处理方法。云计算是一种基于互联网的计算资源分配和共享方式,它可以提供

    2024年04月28日
    浏览(40)
  • 利用 Dynamsoft Panorama 提高效率:多代码读取领域的游戏规则改变者

    在繁忙的库存管理领域,不同的场景需要不同的解决方案。但如果一种解决方案可以适应多种场景呢?这就是强大的多代码阅读器Dynamsoft Panorama 的闪光点。让我们深入研究一下它如何带来无与伦比的效率,无论您的相机是扫描静态场还是沿着路径移动。 点击下载Dynamsoft Bar

    2024年02月03日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包