调试JavaScript代码的方法千篇一律,但最优解是……

2024-01-15 19:10

本文主要是介绍调试JavaScript代码的方法千篇一律,但最优解是……,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

全文共2770字,预计学习时长5分钟

摄影师:Tracy Adams 图片来源:Unsplash

调试JavaScript代码的方法千篇一律,都是简单地通过 console.log方法输出结果。虽然有效,但不是最优方法。为什么不去探索更好的方法呢?

“Hello from the console”

console 对象提供浏览器调试控制台访问功能。只有在浏览器上运行JavaScript代码时,才可以使用console 对象,如客户端代码,而非服务器端代码。其工作原理因浏览器而异,但通常会提供一组实际特征。因为最佳的调试语句在核心语言中生成,所以可与所有库和框架一起工作。

显示输出代码是console.log的基础应用案例。代码如下:

function sayHello(name) {

console.log(name)

}

sayHello('Indrek')

该代码记录了传递给sayHello函数的name变量。

输出传递给函数的name变量

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

console.count

count()是输出调用次数的标签。如果没有参数,count()表现为默认标签。

function sayHello(name) {

console.count()

console.log(name)

}

sayHello("Indrek")

sayHello("William")

sayHello("Kelly")

上述代码记录了以下内容:

计算调用sayHello函数的次数

由此计算出调用函数的次数,但是如果想计算调用相同name变量的函数次数呢? 可以运用将name参数传递给count的方法。

function sayHello(name) {

console.count(name)

}

sayHello("Indrek")

sayHello("William")

sayHello("Kelly")

sayHello("Indrek")

就是这样!该函数可以跟踪调用每个函数的次数。

计算调用每个函数的次数

console.warn

以下为向控制台输出警告消息的方法。在使用开发工具或APIs时有效。console.warn是让用户了解错误信息的理想方法,如省略参数,或让开发者了解不宜使用API/package版本。

function

sayHello(name)

{

if(!name) {

console.warn("No name given")

}

}

sayHello()

以上代码用于检查name参数是否传递给函数。如果没有,则记录一条警告消息,提示用户注意。

无name参数传递时,向用户显示警告消息。

console.table

在显示数据时,console.table有助于处理数组或对象。数组中的每个元素显示在表中同一行。以如下水果数组为例。若使用console.table方法传递水果数组,则可在控制台打印出一张表格。

const fruits =

["kiwi",

"banana",

"strawberry"]

console.table(fruits)

在控制台中,数组以表格的形式显示。

以表格形式显示数组

由此可以想象,在处理拥有数百个值(而非数千个)的更大数组时,该方法十分有效。为了说明这一点,下例数组拥有更多的值。

const fruits = [

"Apple",

"Watermelon",

"Orange",

"Pear",

"Cherry",

"Strawberry",

"Nectarine",

"Grape",

"Mango",

"Blueberry",

"Pomegranate",

"Carambola",

"Plum",

"Banana",

"Raspberry",

"Mandarin",

"Jackfruit",

"Papaya",

"Kiwi",

"Pineapple",

"Lime",

"Lemon",

"Apricot",

"Grapefruit",

"Melon",

"Coconut",

"Avocado",

"Peach"

];

console.table(fruits);

如果用console.table处理数组,则可见下表。

在表中显示所有水果

处理数组很简单。那么处理对象呢?

const

pets

= {

name: "Simon",

type: "cat"

};

console.table(pets);

注意,此案例为对象,而非数组。该对象包含两个关键词信息:宠物的name和type。

 

与之前显示值的表不同,该表显示值及关键词信息。如果需要对更多的对象进行列表化该怎么办呢?

const pets = {

name: "Simon",

type: "cat"

};

const person = {

firstName: "Indrek",

lastName: "Lasn"

}

console.table(pets, person);

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

两个对象

如果要将它们组合到一个表中,则需要将其合并在一个数组中。

const pets = {

name: "Simon",

type: "cat"

};

const person = {

firstName: "Indrek",

lastName: "Lasn"

}

console.table([pets, person]);

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

 

通过将对象合并在数组中进行分组

console.group

在处理集或链接数据时,使用嵌套组将关联信息可视化,组织输出信息。创建一个新的嵌套块,称为console.group()。

console.log("This is the first level");

console.group();

console.log("Level 2");

console.group();

console.log("Level 3");

console.warn("More of level 3");

console.groupEnd();

console.log("Back to level 2");

console.groupEnd();

console.log("Back to the first level");

以下代码显示嵌套的块级控制台语句——在处理关联数据时非常有用。

console.groupCollapsed()方法与此类似,但是新块是折叠的,需要单击扩展按钮才能读取。

留言 点赞 关注

我们一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”

(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)

这篇关于调试JavaScript代码的方法千篇一律,但最优解是……的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/609912

相关文章

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

Java 实用工具类Spring 的 AnnotationUtils详解

《Java实用工具类Spring的AnnotationUtils详解》Spring框架提供了一个强大的注解工具类org.springframework.core.annotation.Annot... 目录前言一、AnnotationUtils 的常用方法二、常见应用场景三、与 JDK 原生注解 API 的

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

Java中的StringBuilder之如何高效构建字符串

《Java中的StringBuilder之如何高效构建字符串》本文将深入浅出地介绍StringBuilder的使用方法、性能优势以及相关字符串处理技术,结合代码示例帮助读者更好地理解和应用,希望对大家... 目录关键点什么是 StringBuilder?为什么需要 StringBuilder?如何使用 St

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

Java并发编程之如何优雅关闭钩子Shutdown Hook

《Java并发编程之如何优雅关闭钩子ShutdownHook》这篇文章主要为大家详细介绍了Java如何实现优雅关闭钩子ShutdownHook,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 目录关闭钩子简介关闭钩子应用场景数据库连接实战演示使用关闭钩子的注意事项开源框架中的关闭钩子机制1.

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B