你不知道的console方法

news2024/9/23 16:14:31

JavaScript为我们提供了一个内置的调试工具,即控制台(console),使开发人员能够测试、调试和与他们的网页进行交互。JavaScript的控制台对象中有几种可用的方法,每种方法都有不同的用途。本文将讨论这些方法,并提供它们的使用示例。

1.console.info()

console.info() 方法的作用是输出信息性的消息,通常用于提供关于代码执行过程中的一些提示、说明或状态信息。它的输出会被渲染为普通文本,并且通常会以不同的外观(如不同的图标或文本颜色)与 console.log() 方法的输出区分开来。

代码示例:

const firstName = "zayyo";
const age = 25;

console.info("User Information:");
console.info("Name: ", firstName);
console.info("Age: ", age);

输出:

image.png

2.console.warn()

console.warn() 方法的作用是输出警告消息,通常用于指示潜在的问题、不推荐的用法或即将被废弃的特性。警告信息的输出通常会被渲染为文本,并且通常以不同的外观(如不同的图标或文本颜色)与其他 console 方法的输出区分开来,以便开发者能够更容易地注意到这些警告信息。

代码示例:

const temperature = 40;

if (temperature > 30) {
  console.warn("High temperature alert!");
  console.warn("Take necessary precautions.");
}

在这个例子中,当温度超过30摄氏度时,console.warn() 就会输出警告消息。如果满足条件,以下警告消息将会被输出到控制台:

输出:

image.png

console.warn() 的目的是引起开发者对代码中可能存在的问题或关注领域的注意。它帮助开发人员识别问题,并采取适当的措施以避免意外结果或错误。

当我们遇到希望向自己或其他开发人员提供警告的情况时,我们可以使用 console.warn() 来有效地传达需要注意的潜在风险或问题。

3.console.error()

console.error() 方法的主要作用是输出错误消息,通常用于指示程序在执行过程中出现了错误、异常或其他不正常情况。错误信息的输出通常会被渲染为文本,并以不同的外观(如不同的图标、文本颜色等)与其他 console 方法的输出区分开来,以便开发者能够快速地识别和定位错误。

代码示例:

function divideNumbers(a, b) {
  if (b === 0) {
    console.error("Error: Division by zero is not allowed!");
    return;
  }

  return a / b;
}

console.log(divideNumbers(10, 2));  // Output: 5
console.log(divideNumbers(8, 0));   // Output: undefined

在这个例子中,divideNumbers() 函数用于执行两个数字之间的除法操作。但是,它里面包含一个检查,是防止除以零的情况出现。如果第二个数字 (b) 为零,它将使用 console.error() 输出一个错误消息,并返回 undefined 来指示错误地方。

当代码遇到 console.error() 时,它会在控制台中显示带有独特的错误图标和样式的错误消息。在这种情况下,错误消息将是:

image.png

console.error() 的目的是突出显示代码中需要关注的严重错误。它帮助开发人员识别并修复可能导致意外或不正确行为的问题。通过输出错误消息,我们可以有效地追踪和调试代码中的问题。

当我们遇到需要指示错误条件或显示关键错误信息的情况时,我们可以使用 console.error() 来提供清晰的反馈,并促进故障排除。

4.console.clear()

console.clear() 用于清除控制台。它会删除所有先前的日志消息、警告、错误和其他输出,为新的日志输出提供一个干净的板块。

代码示例:

console.log("This is a log message.");
console.warn("This is a warning message.");
console.error("This is an error message.");

console.clear();

console.log("Cleared console. New log message.");

在这个例子中,我们首先使用 console.log()console.warn()console.error() 输出了一系列的消息。之后,我们再调用 console.clear() 来清除控制台。

如果我们在浏览器的开发者控制台中运行这段代码,我们将会看到最初的日志消息、警告和错误被打印出来。然而,一旦调用了 console.clear(),控制台将被清除,移除所有先前的输出。

在清除控制台之后,最后一行使用 console.log() 输出了一个新的消息。我们会注意到只有新的消息被显示出来,之前的消息不再可见。

输出:

image.png

5.console.assert()

console.assert() 方法用于检查给定的条件是否为真。如果条件为假,它会在控制台中显示一个错误消息。它主要用于调试,以验证假设或检查代码中的逻辑错误。

代码示例:

function calculateSum(a, b) {
  console.assert(typeof a === 'number' && typeof b === 'number', 'Both arguments must be numbers.');

  return a + b;
}

console.log(calculateSum(2, 3)); // Output: 5
console.log(calculateSum(4, '5')); // Assertion error: Both arguments must be numbers.

在这个例子中,我们有一个 calculateSum() 函数,它接受两个参数 a 和 b,并返回它们的和。在执行加法之前,我们使用 console.assert() 来断言 a 和 b 都是数字类型。如果断言失败(即 a 或 b 不是数字),将在控制台中显示一个错误消息。

在第一个调用中,使用参数 2 和 3 调用 calculateSum(),断言通过,因为两个参数都是数字。因此,函数返回它们的和 5,并使用 console.log() 输出。

在第二个调用中,使用参数 4 和 ‘5’ 调用 calculateSum(),断言失败,因为第二个参数是字符串而不是数字。因此,将在控制台中显示一个断言错误,指示两个参数必须是数字。函数将不会继续执行加法操作,也不会输出任何结果。

通过使用 console.assert(),我们可以快速验证代码的假设,捕获潜在错误,并在某些条件不满足时提供有意义的错误消息。它有助于调试并确保代码的预期行为。

输出:

image.png

6.console.count()

console.count() 方法用于计算在代码的特定地方被调用的次数。它帮助我们跟踪和测量特定代码片段或特定条件被执行的次数。

代码示例:

function processItem(item) {
  console.count('Item Processed');
  // Code to process the item
}

processItem('A'); // Output: Item Processed: 1
processItem('B'); // Output: Item Processed: 2
processItem('C'); // Output: Item Processed: 3
processItem('A'); // Output: Item Processed: 4
processItem('C'); // Output: Item Processed: 5

在这个例子中,我们有一个 processItem() 函数,它以一个项目作为参数并对其进行一些处理。在函数内部,我们使用 console.count('Item Processed') 来计算函数被调用的次数。

当我们第一次调用 processItem('A') 时,它将在控制台输出 Item Processed: 1。计数会增加1。

类似地,对 processItem() 的每次后续调用都会将计数增加1,并在控制台中显示更新后的计数。

image.png

console.count() 方法在我们希望跟踪代码中特定操作、迭代或事件发生的频率时非常有用。它提供了一种方便的方式来跟踪特定代码块或条件被执行的次数,无需手动计数器。

7.console.dir()

console.dir() 方法用于显示指定JavaScript对象的属性的交互式列表。它允许我们以更详细和有组织的方式探索对象的结构和属性。

代码示例:

const person = {
  name: 'zayyo"',
  age: 30,
  email: 'zayyo".doe@example.com',
  address: {
    street: '123 Main St',
    city: 'New York',
    country: 'USA'
  }
};

console.dir(person);

当我们运行上面的代码时,console.dir() 方法将在控制台中显示 person 对象的交互式表示。它将显示一个可展开和折叠的树状结构,我们可以展开和折叠不同的层级以探索对象的属性。

控制台中的输出如下所示:

image.png

我们可以点击箭头图标(▶)来展开或折叠对象的各个部分。我们可以浏览对象的属性和子属性,为我们检查复杂数据结构提供了方便的方式。

console.dir() 在我们想要探索对象的结构和内容时非常有用,特别是在处理嵌套对象或大型数据结构时。它可以帮助我们了解对象的形状和属性,无需我们手动输出每个单独的属性。

8.console.table()

console.table() 方法用于在控制台中显示表格数据。它接受一个数组或对象作为输入,并以表格格式呈现数据,使得阅读和分析结构化数据更加容易。

代码示例:

const fruits = [
  { name: "Apple", color: "Red", price: 0.5 },
  { name: "Banana", color: "Yellow", price: 0.25 },
  { name: "Orange", color: "Orange", price: 0.35 },
];

console.table(fruits);

当我们在控制台中运行上面代码时,它将以表格形式显示水果数组,其中数组中的每个对象表示为一行,对象的属性表示为列:

image.png

console.table() 方法以结构化的方式组织数据,让解释和比较值变得更加容易。在处理大型数据集或对象数组时特别有用。

9.## console.time() & console.timeEnd()

console.time()console.timeEnd() 方法用于测量特定操作或代码段的执行时间。它们有助于性能分析和识别代码中的瓶颈。下面是它们的工作原理:

console.time(label):这个方法使用指定的标签启动一个计时器。标签是可选的,用作计时器的唯一标识符。

console.timeEnd(label):这个方法停止与指定标签关联的计时器,并将经过的时间输出到控制台中。

代码示例:

console.time("myTimer"); // 使用标签“myTimer”启动计时器"

// 执行一些耗时的操作
for (let i = 0; i < 1000000; i++) {
  //执行代码
}

console.timeEnd("myTimer"); //停止计时器并记录经过的时间

在上面的示例中,我们使用 console.time("myTimer") 开始计时器。然后我们执行一个循环来模拟一个耗时的操作。操作完成后,我们调用 console.timeEnd("myTimer") 来停止计时器并将经过的时间输出到控制台中。

当我们在控制台中运行这段代码时,我们将看到以下输出:

image.png

耗费的时间和我们的计算机性能以及被测量代码的复杂性有关。

使用 console.time()console.timeEnd() 结合在一起,可以让我们测量和分析代码特定部分的执行时间,帮助我们识别需要优化或改进的领域。

10.console.trace()

console.trace() 方法用于将堆栈跟踪打印到控制台。它显示了函数调用和执行顺序,直到调用 console.trace() 的点。这对于调试和理解代码的流程非常有帮助。

代码示例:

function outerFunction() {
  middleFunction();
}

function middleFunction() {
  innerFunction();
}

function innerFunction() {
  console.trace();
}

outerFunction();

在上面的示例中,我们有三个嵌套的函数:outerFunction()、middleFunction() 和 innerFunction()。在 innerFunction() 内部,我们调用了 console.trace()

当我们运行上面的代码并检查控制台时,我们可以看到类似于以下输出:

image.png

输出显示了堆栈跟踪,从调用 console.trace() 的点开始,以相反的顺序显示函数调用。它包括函数名称、文件名称(如果适用)和行号。

console.trace() 方法在我们想要追踪代码如何到达某一点,或者识别导致错误或意外行为的函数调用序列时非常有用。它提供了调用层次的洞察,可以帮助我们理解程序中的执行流程。

11.console.group() & console.groupEnd()

console.group()console.groupEnd() 方法用于将控制台日志输出进行分组,提供更有组织和分层的结构。当我们想要对相关日志进行分类或在特定上下文中对日志进行分组时,这将非常有用。

代码示例:

console.group('Group 1');
console.log('Log 1');
console.log('Log 2');
console.groupEnd();

console.group('Group 2');
console.log('Log 3');
console.log('Log 4');
console.groupEnd();

在上面的示例中,我们使用 console.group()console.groupEnd() 创建了两个分组。每个分组包含了一些控制台日志。

当我们运行上面的代码并检查控制台时,我们将看到类似于以下输出:

image.png

正如我们所见,每个分组内的日志都有缩进,表示它们与相应的分组相关联。这使得更容易在视觉上区分和组织相关的日志。

我们还可以创建嵌套分组,形成一个分层结构:

console.group('Group A');
console.log('Log A1');
console.group('Group B');
console.log('Log B1');
console.log('Log B2');
console.groupEnd();
console.log('Log A2');
console.groupEnd();

输出:

image.png

每个这些方法都提供了不同的方式来将信息输出到JavaScript控制台,为开发人员在消息显示方面提供了很大的控制权。它们在测试和调试JavaScript代码时可以是重要的工具。

console.log("like", "comment", & "follow");

请注意,我们提供的 console.log 语句中的 “like”、“comment” 和 “follow” 之间的 & 符号应该是 && 才能表示逻辑 “and”。所以这句话应该改为:

console.log("like", "comment", && "follow");

或者,如果我们想要在一条消息中连接字符串和逻辑操作,可以使用加号 (+) 来连接它们:

console.log("like" + "comment" + "follow");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2068131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计 学院网站 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

Linux中解决 zfs 安装后无法加载和使用,报错类似如下:modprobe: FATAL: Module zfs not found.

Linux中解决 zfs 安装后无法加载和使用&#xff0c;报错类似如下&#xff1a;modprobe: FATAL: Module zfs not found. # modprobe zfs modprobe: FATAL: Module zfs not found.解决办法&#xff1a; yum remove zfs spl kmod-zfs -yyum update -y --skip-brokenos_v$(cat /et…

文献翻译什么软件好?文献翻译全文软件推荐这5个

处暑已过&#xff0c;秋风渐起&#xff0c;知识的田野也迎来了收获的季节。在学术研究的旅途中&#xff0c;我们常常需要跨越语言的界限&#xff0c;探寻远方的智慧。 每当面对厚重的外文文献&#xff0c;应该如何快速准确地转化为可读的中文呢&#xff1f;其实只要选择一款高…

加速指南:如何使用Kimi提升论文写作效率?

在学术研究领域&#xff0c;撰写论文是一项基础且关键的任务&#xff0c;它要求作者不仅要有扎实的专业知识&#xff0c;还要具备高效的信息处理能力和清晰的表达技巧。学术写作是一个复杂的过程&#xff0c;涉及多个阶段&#xff1a;从选题、资料搜集、论文结构设计&#xff0…

STM32(五):定时器——输出比较

定时器输出比较功能&#xff1a;输出PWM波形 OC&#xff08;Output Compare&#xff09;输出比较 输出比较可以通过比较CNT与CCR寄存器值的关系&#xff0c;来对输出电平进行置1、置0或翻转的操作&#xff0c;用于输出一定频率和占空比的PWM波形。 每个高级定时器和通用定时器…

【硬件模块】红外跟随避障模块

红外跟随避障模块实物图 红外避障模块不断发射红外信号&#xff0c;当红外信号&#xff1a; 有反射回来&#xff0c;OUT 输出低电平&#xff0c;输出指示灯&#xff08;绿灯&#xff09;亮&#xff1b; 没反射回来&#xff0c;OUT 输出高电平&#xff0c;输出指示灯&#xff08…

tcp通信以及wireshark抓包

loop: //本地回环测试 tcp在传输时&#xff0c;有可能就会将两次发送的内容粘到一起&#xff0c;这是由于tcp的第三个特点&#xff1a;字节流式传输。它不一定会将两次发送出来的数据进行严格区分。这种现象在tcp链接中叫粘包。 但是socket在底层发送东西的时候是会在一段时间…

【微信小程序】使用 npm 包 - API Promise化-- miniprogram-api-promise

1. 基于回调函数的异步 API 的缺点 默认情况下&#xff0c;小程序官方提供的异步 API 都是基于回调函数实现的&#xff0c;例如&#xff0c;网络请求的 API 需要按照如下的方式调用&#xff1a; 缺点&#xff1a;容易造成回调地狱的问题&#xff0c;代码的可读性、维护性差&a…

I2C软件模拟与Delay寄存器延迟函数

环境 芯片:STM32F103ZET6 库&#xff1a;来自HAL的STM32F1XX.H 原理图 有图可知SCL和SDA两条线接到了PB10和PB11 Driver_I2C.h #ifndef __DRIVER_I2C #define __DRIVER_I2C#include "stm32f1xx.h" #include "Com_Delay.h" // 定义拉高SCL引脚的宏操作 #…

【电子数据取证】应用程序提取及固定

文章关键词&#xff1a;电子数据取证、手机取证、计算机取证、计算机仿真、云取证 一、前言 在数字化时代&#xff0c;电子数据已成为现代社会不可或缺的一部分&#xff0c;它不仅记录着个人的日常生活轨迹&#xff0c;也承载着企业运营的核心信息&#xff0c;更在司法体系中…

Nginx知识详解(理论+实战更易懂)

目录 一、Nginx架构和安装 1.1 Nginx 概述 1.1.1 nginx介绍 1.1.2 Nginx 功能介绍 1.1.3 基础特性 1.1.4 Web 服务相关的功能 1.2 Nginx 架构和进程 1.2.1 Nginx 进程结构 1.2.2 Nginx 进程间通信 1.2.3 Nginx 启动和 HTTP 连接建立 1.2.4 HTTP 处理过程 1.3 Nginx …

pdf转换成excel在线转换?这3款别错过

作为一名财务人员&#xff0c;我每天的工作都离不开处理大量的文件和数据。其中&#xff0c;将PDF格式的报表转换成Excel表格是一项经常要做的工作。在众多的PDF转换工具中&#xff0c;我试过了三款PDF转换工具&#xff0c;现在就来分享一下我的使用体验。 一、福昕PDF转换大师…

普元EOS-低开页面下拉选择控件加载列表数据

1 前言 普元EOS进行低代码开发页面可以高效提高开发效率&#xff0c;并且减少代码的出错机会。 在低代码开发页面的时候&#xff0c;表单页面中可以使用大量的常用控件。 本文将讲解下拉选择组件的使用。 2 下拉选择使用EOS内置字典作为数据源 下拉选择可从字典作为数据源&a…

25届网安秋招面试之后台信息泄露

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s…

C++ TinyWebServer项目总结(9. I/O 复用)

I/O 复用使得程序能够同时监听多个文件描述符&#xff0c;从而提高程序的性能。I/O 复用本身是阻塞的。Linux 下实现 I/O 复用的系统调用主要有 select、poll 和 epoll。 select 系统调用 select API select系统调用&#xff1a;在一段指定时间内&#xff0c;监听用户感兴趣…

Java语言程序设计——篇十七(1)

&#x1f33f;&#x1f33f;&#x1f33f;跟随博主脚步&#xff0c;从这里开始→博主主页&#x1f33f;&#x1f33f;&#x1f33f; 欢迎大家&#xff1a;这里是我的学习笔记、总结知识的地方&#xff0c;喜欢的话请三连&#xff0c;有问题可以私信&#x1f333;&#x1f333;&…

每日OJ_牛客_美国节日(日期模拟)

目录 牛客_美国节日&#xff08;日期模拟&#xff09; 解析代码 牛客_美国节日&#xff08;日期模拟&#xff09; 美国节日__牛客网 解析代码 题目表述很明白&#xff0c;难点在于要求一个月第N个星期W。那么面对这个问题&#xff0c;拆解的思路是&#xff0c;首先&#xff…

Navicat for MySQL:卓越的跨平台数据库管理开发工具

Navicat for MySQL是一款专为数据库管理员和开发人员设计的强大数据库管理开发工具&#xff0c;支持Mac和Windows操作系统&#xff0c;为用户提供了高效、便捷的数据库操作体验。无论是管理MySQL还是MariaDB数据库&#xff0c;Navicat for MySQL都能轻松胜任。 一、直观易用的…

DB-GPT开源项目文档入门

DB-GPT开源项目文档入门 (qq.com) 场景&#xff1a;服务中小金融机构、服务业小微商家 DB-GPT项目集成了多模型管理、多数据源管理、Text2SQL、增强检索RAG、生成式BI、多智能体&#xff0c;一个大而全的开源框架 项目基本信息 简介&#xff1a;一个原生数据应用开发框架 …

<数据集>流水线纸箱识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;1395张 标注数量(xml文件个数)&#xff1a;1395 标注数量(txt文件个数)&#xff1a;1395 标注类别数&#xff1a;2 标注类别名称&#xff1a;[GreenCarton,RedCarton] 序号类别名称图片数框数1GreenBox131728482R…