作者 | Indrek Lasn 译者 | 王强 编辑 | 张之栋、王文婧 JavaScript 为我们的代码调试提供了足够多的工具,但调试 JavaScript 代码最好的方法又是什么呢?

调试 JavaScript 代码的最简单途径就是简单地通过 console.log 方法输出结果。虽然它能用,但这并不是最理想的处理方式。如果有更好的方法,何不探索一番呢?

“来自控制台的 Hello”

console 对象提供对浏览器调试控制台的访问。仅当在浏览器上运行 JavaScript 代码(即客户端代码而非服务端代码)时,才可以使用 console 对象。不同浏览器的工作方式各不相同,但是通常都会提供一组常规功能。调试语句最棒的一点是它们兼容所有库和框架,因为它们是在核心语言中编写的。

console.log 的最基本使用场景是显示代码的输出。考虑以下代码:

function sayHello(name) {

它记录传递给 sayHello 函数的名称。

输出传递给函数的名称

如果我们想知道必须调用 sayHello 函数多少次,该怎么办?有一个简单的方法,称为 console.count()。

console.count count() 会输出使用该标签调用它的次数。如果没有参数,count() 的行为就像使用默认标签调用一样。

function 

上面的代码记录以下内容:

统计我们调用 sayHello 函数的次数

这样可以统计出调用函数的次数,但如果要统计调用相同名称函数的次数怎么办?一种方法是简单地将 name 参数传递给 count 方法。

function 

搞定!该函数跟踪我们用每个名称调用这个函数的次数。

统计我们说每个名字的次数

console.warn 以下方法将警告消息输出到控制台,在使用开发人员工具或 API 时非常有用。console.warn 是一种理想选择,用来让用户知道某些事情不对劲,例如省略参数或让开发人员知道 API/ 软件包版本已过时。

function sayHello(name) {

上面的代码检查 name 参数是否传递给函数。如果未输入任何名称,则会记录一条警告消息,提示其考虑某些事项。

未传递名称时,向用户显示警告消息。

console.table 如果我们要处理数组或对象,则在显示数据时 console.table 很有用。数组中的每个元素将是表中的一行。以下面的示例为例,其中有一系列水果组成的数组。如果将 fruits 数组传递给 console.table 方法,则应该看到一个打印到控制台的表。

const fruits = [

而且如果我们看一眼控制台,应该看到一个描述数组的表。

以表格形式显示数组

你可以想象一下,当我们处理具有数百个(甚至数千个)值的更大数组,这种方法会非常有用。这里有一个例子来说明问题,其中数组有更多的值。

const fruits = [

如果我们用数组调用 console.table,我们应该看到下表。

在表格中显示所有水果

使用数组很简单。如果我们要处理的是对象呢?

const pets = {

注意,现在我们有了一个对象而不是一个数组。该对象拥有两个键:宠物的 name 和 type。

该表没有像之前那样注销值,而是显示值以及键和值。如果我们还有一个对象并尝试将其列出,该怎么办?

const pets = {

不出所料,两个单独的对象显示在两个不同的表中。

两个对象

如果我们想将它们配对在一个表中,则将对象包装在数组中。

const pets = {

现在我们将对象分组到一个表中。

通过将对象包装在数组中进行分组

console.group 在使用集合或链接数据时,请使用嵌套组来直观地关联相关消息,从而让输出井井有条。要创建一个新的嵌套块,请调用 console.group()。

console.log(

以下代码显示嵌套的块级控制台语句——在处理基于关系的数据时很有用。

console.groupCollapsed() 方法也差不多,但是新块是折叠的,需要单击显示按钮才能读取它。

概  要

请使用语言自身提供的所有工具,能用就用。简单提一下:由于 debugger 本身就值得单独写一篇文章来探讨,因此我们暂时跳过了它的内容。

如果你对 debugger 感到好奇,请参阅这篇文章: https://medium.com/@indreklasn/how-to-find-bugs-in-your-code-with-the-debugger-a7f739ea98

如果你刚入门 JavaScript,想要学习这种语言,我建议你先阅读相关书籍,同时结合实际的构建来学习。先看一下《更聪明的 JavaScript 学习方式》一书,这里还列出了一些用来构建的有趣应用程序: https://medium.com/better-programming/the-secret-to-being-a-top-developer-is-building-things-heres-a-list-of-fun-apps-to-build-aac61ac0736c

感谢阅读。

原文链接: https://medium.com/better-programming/boost-your-javascript-debugging-skills-with-these-console-tricks-ab984c70298a

JavaScript 数组拼接打印_巧用控制台,提升JavaScript调试性能相关推荐

  1. JavaScript 数组拼接打印_犀牛书作者:最该忘记的JavaScript特性

    编者按:本文译者李松峰,资深技术图书译者,翻译出版过40余部技术及交互设计专著,现任360奇舞团Web前端开发资深专家,360前端技术委员会委员.W3C AC代表. 原文:https://davidf ...

  2. JavaScript 数组拼接打印_8种常见数据结构及其Javascript实现

    摘要: 面试常问的知识点啊- 原文:常见数据结构和Javascript实现总结 作者:MudOnTire Fundebug经授权转载,版权归原作者所有. 做前端的同学不少都是自学成才或者半路出家,计算 ...

  3. JavaScript 数组拼接打印_JavaScript 数组方法

    JavaScript 数组方法 JS 数组 JS 数组排序 JavaScript 数组的力量隐藏在数组方法中. 把数组转换为字符串 JavaScript 方法 toString() 把数组转换为数组值 ...

  4. JavaScript 数组拼接打印_html+css+javaScript基础使用!!!

    1. JS定义和特点 (1) 简述javaScript的特点 javaScript是 一种直译式脚本语言,是一种动态类型,弱类型,基于原型的语言,内置支持类型 (2) 简述javaScript的作用 ...

  5. JavaScript 数组拼接打印_JavaScript数组_创建数组_一维数组_length(二十三)

    目录: 1.什么是数组 2.创建数组方式 3.一维数组和length 一.什么是数组 数组对象的作用是:使用单独的变量名来存储一系列的值. 通俗理解:如果把声名变量来比做小轿车的话,那么数组就是高铁, ...

  6. JavaScript 数组拼接打印_JavaScript 中的“黑话”

    因为球是圆的,所以不论发生什么都有可能,对这点我是深信不疑的,但最近我总是在怀疑,JavaScript也是圆的! 什么是"黑话" 黑话,本指旧时江湖帮会人物的暗语.暗号,往往见于小 ...

  7. JavaScript数组拼接、对象拼接

    数组拼接 方法一:使用for循环 var arr = ['tom', 'jerry']; var arr2 = [1, 2]; for(var i=0; i<arr2.length; i++){ ...

  8. javascript进制转换_「js基础」JavaScript逻辑和位运算符归纳

    上一篇文章呢,我们讲述了JavaScript运算符中的关系运算符和逻辑运算符,那么紧接上一篇的文章我们今天来说说逻辑运算符. 引言 逻辑运算符不是很难,也不是很多,我们只要记住三个就可以啦!分别是: ...

  9. 字节数组拼接打印以及list小技巧

    数组和list的使用一点技巧 由于工作原因,会经常使用byte[] ,同时经常将数据显示到界面中,在以往的时候经常使用for循环将byte[]拼接成字符串,在打印,偶然发现一个小技巧,标记在这里 拼接 ...

最新文章

  1. 2022-2028年中国数码摄像机市场投资分析及前景预测报告
  2. 关于ValueError: Unknown projection ‘3d‘报错的解决方法
  3. [蘑菇街] 搜索、算法团队招募牛人啦-年底了走过路过不要错过 - V2EX
  4. linux文件属性文文件类型知识
  5. python3.6 在 windows10 下使用pycrypto
  6. python 将PascalVOC(XML)格式的标注数据批量转换为YOLO(txt)格式的标注数据
  7. Topless eclipse导入myeclipse的web项目没法识别问题解决
  8. android studio编译找不到程序包,【图片】哥哥们,android studio 打包的安装包手机无法识别怎么破【androidstudio吧】_百度贴吧...
  9. 遗传算法经典实例代码_经典算法研究系列 之 深入浅出遗传算法
  10. 第九弹 - 脚本模式与参数视图
  11. array_keys_PHP array_keys()函数与示例
  12. php与tp5,PHP开发(33)-ThinkPHP5.0(5)命名空间与TP5-PhpStorm
  13. 这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看
  14. 数据库与表的操作之SQL Server 2012中的数据类型
  15. Android自定义头部悬浮,快速索引ListView
  16. Java图形编程实验总结_java 图形用户界面编程实验报告.doc
  17. OneNote同步错误记录
  18. 嵌入式开发——Linux操作系统
  19. 复制一颗二叉树(java语言)
  20. 电源选项这样设置最好-睡眠模式和休眠模式的区别

热门文章

  1. oop中构造函数编写的注意事项
  2. ifstream 打开中文路径乱码问题处理
  3. 电路基础知识 -- 三态
  4. Hi3516A开发--内存换算
  5. volatile关键字到底做了什么?
  6. gRPC amp; Protocol Buffer 构建高性能接口实践
  7. Android:你不知道的 WebView 使用漏洞
  8. 使用StaticLayout实现文字转化为图片的效果(类似发送长微博)
  9. JZOJ 5898. 【NOIP2018模拟10.6】距离统计
  10. 东北农业大学网络教育计算机考试,THEOL网络教学综合平台-东北农业大学继续教育学院...