如何使用JavaScript控制台改进工作流程

《如何使用JavaScript控制台改进工作流程》
作为Web开发人员,很有必要了解如何调试代码。后台开发我们经常使用外部库来记录日志,并在某些情况下格式化显示日志,前端我们会使用断点和控制台,但是我们浏览器的控制台比我们想象的要强大得多。

当我们考虑控制台时,首先想到的是console.log,对吧?但是它比我们想像中使用的方法多得多。现在我们来看一下如何充分利用控制台,我将为您提供一些技巧,使这些方法更具可读性

什么是控制台?

JavaScript控制台是现代浏览器中的内置功能,它在类似shell的界面中带有开箱即用的开发工具。它允许开发人员:

  • 查看网页上发生的错误和警告的日志。
  • 使用JavaScript命令与网页交互。
  • 调试应用程序并直接在浏览器中遍历DOM。
  • 检查和分析网络活动

基本上,它使您能够在浏览器中编写,管理和监控JavaScript。

Console.log,Console.error,Console.warn和Console.info
这些可能是最常用的方法。您可以将多个参数传递给这些方法。每个参数都在由空格分隔的字符串中进行计算和连接,但是对于对象或数组,您可以在它们的属性之间导航。

《如何使用JavaScript控制台改进工作流程》

Console.group

在检查代码逻辑和流程时我们可能会使用很多的console.log()来检测,但是你会发现控制台打印出来的非常多。此方法允许您在可折叠的组下对一系列console.log(以及错误信息等)进行分组。语法非常简单:只需console.log在之前输入我们想要分组的所有内容console.group()(或者console.groupCollapsed()如果我们希望它默认关闭)。然后console.groupEnd()在末尾添加一个关闭组。
《如何使用JavaScript控制台改进工作流程》

《如何使用JavaScript控制台改进工作流程》

Console.table

自从我发现console.table我的生活都发生了改变。在一个内部显示JSON或非常大的JSON数组console.log是一种不好的体验。这console.table允许我们在一个漂亮的表中可视化这些结构,我们可以在其中命名列并将它们作为参数传递。

《如何使用JavaScript控制台改进工作流程》

非常好,在调试中非常有用:

《如何使用JavaScript控制台改进工作流程》

Console.count,Console.time和Console.timeEnd
对于需要调试的每个开发人员来说,这三种方法都是瑞士军刀。该console.count计数和输出是的次数count()已被调用在同一行,并用相同的标签。该console.time开始用指定为输入参数的名称定时器,可以运行多达10,000个特定网页上同时定时器。启动后,我们使用调用来console.timeEnd停止计时器并将经过的时间打印到控制台。

《如何使用JavaScript控制台改进工作流程》

输出将如下所示:

《如何使用JavaScript控制台改进工作流程》

Console.trace和Console.assert

这些方法只是从调用它的代码位置,打印堆栈跟踪。想象一下,您正在创建一个JS库,并希望通知用户生成错误的位置。在这种情况下,这些方法非常有用。该console.assert是喜欢console.trace,但是只打印条件不符合的。

《如何使用JavaScript控制台改进工作流程》

正如我们所看到的,输出正是React(或任何其他库)在生成异常时向我们展示的内容。

《如何使用JavaScript控制台改进工作流程》

删除所有控制台🙀

使用控制台通常会迫使我们消除它们。或者有时候我们会忘记生产构建(并且只会在几天和几天之后错误地注意它们)。当然,我不建议任何人滥用不需要它们的控制台(更改输入句柄中的控制台可以在看到它工作后删除)。您应该在开发模式下保留错误日志或跟踪日志以帮助您进行调试。我在工作和我自己的项目中都经常使用Webpack。此工具允许您使用uglifyjs-webpack-plugin从生产版本中删除您不想保留的所有控制台(按类型)😌

const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
var debug = process.env.NODE_ENV !== "production";

.....
optimization: {
        minimizer: !debug ? [
            new UglifyJsPlugin({
                // Compression specific options
                uglifyOptions: {
                    // Eliminate comments
                    comments: false,
                    compress: {
                       // remove warnings
                       warnings: false,
                       // Drop console statements
                       drop_console: true
                    },
                }
           })] : []
}

配置非常简单,它简化了工作流程,所以控制台还是很好玩的(但不要滥用它!)

    原文作者:songfens
    原文地址: https://segmentfault.com/a/1190000015633332
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞