Chrome 调试技巧

1. alert

在最早的时候,javascript 程序员调试代码都是通过 alert 进行,但 alert 会让整个程序被打断,并且还有一个很大的缺点,调试完成之后,如果忘记将 alert 删除 or 注释掉,导致别人访问该页面时会莫名弹出个框框。所以 alert 调试习惯逐渐被废弃掉。

<script>
  alert("alert()方法用于显示带有一条指定消息和一个确认的按钮的警告框。");
</script>

 

目前,alert 警告框常用于确保用户可以得到某些信息。当警告框出现后,用户需要点击确定按钮才能继续进行操作。

2. console

作为最常使用的方法,想必⼤家都⽤ console.log 在控制台输出过内容,判断代码运行是否正确。

2.1 基本输出

<script>
  console.log("打印字符串");
  console.error("打印自定义错误信息");
  console.info("打印自定义信息");
  console.warn("打印自定义警告信息");
  console.debug("打印自定义调试信息");
  // console.clear(); // 清空控制台
</script>

图一是在 Chrome 浏览器的测试结果,不支持 debug 方法;图二是火狐浏览器的测试结果。

注意:上面输出的 error 和 throw 中的 error 是不一样的,前者只是输出错误信息,无法捕获,不会发生冒泡,更不会中止程序运行。 

2.2 格式化输出

<script>
  console.log("%s年", 2024);
  console.log("%d年%d月", 2024, 6);
  console.log("%f", 3.1415926);
  console.log("%o", console);
  console.log("%c自定义样式", "font-size:26px; color:lightblue");
  console.log(
    "%c前%c后",
    "font-size:20px; color:red",
    "font-size:10px; color:orange"
  );
</script>

console 支持自定义样式输出结果,常见如下:

1. %s:表示字符串

2. %d:表示整数

3. %f:表示小数

4. %o:表示对象

2.3 DOM 输出

<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
</ul>
<script>
  const list = document.getElementsByTagName('li')
  console.log(list);
</script>

2.4 对象输出

<script>
  const stu = [
    { name: "Alice", age: 18, hobby: "reading" },
    { name: "Bob", age: 19, hobby: "swimming" },
    { name: "Monica", age: 20, hobby: "shopping" },
  ];
  console.log(stu);
  console.table(stu);
</script>

想不到 console对象 还可以输出一个表格,之后,在遇到多个对象的集合时,可以使⽤ table ⽅法,这样输出更清晰。

2.5 成组输出

<script>
  // 建立一个参数组
  console.group('start');// 定义组名(任意)
  console.log('group1');
  console.log('group2');
  console.log('group3');
  console.log('group4'); 
  console.log('group5');
  console.groupEnd();
</script>

通过 console 对象的 group ⽅法,在输出时创建⼀个分组,groupEnd 方法表示分组的终点。 

2.6 断言

断⾔语句,在 js 中,当第⼀个表达式或参数为 true 时,什么也不发⽣;为 false 时终⽌程序并报错。例如:

<script>
  console.assert(true,'第一个参数或者表达式为 true');
  console.assert(false,'第一个参数或者表达式为 false');
</script>

3. debugger

debugger 俗称断点,⼜称单步调试。所谓单步调试,就是点⼀下,执⾏⼀句代码,并且可以查看当前作⽤域中可⻅的所有变量和值。

<script>
  let array = [];
  for (let i = 0; i < 10; i++) {
    debugger;
    array[i] = i;
  }
  console.log(array);
</script>

执⾏该⽂件后,到控制台 Sources 标签⻚下进⾏单步调试,直到结束。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于System-Verilog实现DE2-115开发板驱动HC_SR04超声波测距

目录 前言 一、SystemVerilog——下一代硬件设计语言 与Verilog关系 与SystemC关系 二、实验原理 2.1 传感器概述&#xff1a; 2.2 传感器引脚 2.3 传感器工作原理 2.4 整体测距原理及编写思路 三、System-Verilog文件 3.1 时钟分频 3.2 超声波测距 3.3 数码管驱动…

【EI会议/稳定检索】2024年机械、传感与自动控制国际会议(MSAC 2024)

2024 International Conference on Machinery, Sensing, and Automatic Control 2024年机械、传感与自动控制国际会议 【会议信息】 会议简称&#xff1a;MSAC 2024 大会地点&#xff1a;中国贵阳 会议官网&#xff1a;www.msaciac.com 会议邮箱&#xff1a;msacsub-paper.com…

TMS320F280049 ECAP模块--总览(0)

ECAP 特性&#xff1a; 4个32bit的事件时间戳寄存器&#xff1b; 4个连续时间戳捕获事件的边沿极性可选上升沿、下降沿 4个事件中每个都能触发中断 4个事件都能做单词触发 可以连续捕获4个事件 绝对的捕获时间戳 差异模式捕获 不使用捕获模式时&#xff0c;可以配置输出…

【设计模式】JAVA Design Patterns——Factory Method(虚拟构造器模式)

&#x1f50d;目的 为创建一个对象定义一个接口&#xff0c;但是让子类决定实例化哪个类。工厂方法允许类将实例化延迟到子类 &#x1f50d;解释 真实世界例子 铁匠生产武器。精灵需要精灵武器&#xff0c;而兽人需要兽人武器。根据客户来召唤正确类型的铁匠。 通俗描述 它为类…

esp32芯片选型网页链接

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/bd340b1360dc45ec9a4286f64c95b39d.png esp32芯片选型网页链接

采用C#、Python和Qt开发上位机好看的界面也不是多的事儿

采用C#、Python和Qt开发上位机好看的界面也不是多的事儿

iOS18新功能大爆料,打破常规,全面升级,这些变化不容错过!

众所周知&#xff0c;苹果 iOS 操作系统近年来都没有发生重大变化&#xff0c;主要是添加小部件、锁屏编辑和手机屏幕编辑等功能&#xff0c;再加上bug偏多&#xff0c;以至于越来越多iPhone用户不愿意再升级系统了。这一点&#xff0c;从 iOS 17 明显降低的安装率中就能看出一…

他人项目二次开发——慎接

接了一个朋友的项目——开发及运营迭代差不多2年多了&#xff0c;整体样子移动端和PC都能正常使用&#xff0c;但后期的扩展性及新功能添加出现瓶颈。 因此给了一部分钱&#xff0c;让我接手来开发——重构架构。 背景说明 朋友公司的技术人员是我帮忙招聘的&#xff0c;相关技…

前端工程化工具系列(六)—— VS Code(v1.89.1):强大的代码编辑器

VS Code&#xff08;Visual Studio Code&#xff09;是一款由微软开发的强大且轻量级的代码编辑器&#xff0c;支持多种编程语言&#xff0c;并提供了丰富的扩展插件生态系统。 这里主要介绍如何使用配置 ESLint、Stylelint 等插件来提升开发效率。 1 自动格式化代码 最终要…

sqli-labs 靶场闯关基础准备、学习步骤、SQL注入类型,常用基本函数、获取数据库元数据

Sqli-labs的主要作用是帮助用户学习如何识别和利用不同类型的SQL注入漏洞&#xff0c;并了解如何修复和防范这些漏洞。 它提供了多个不同的漏洞场景&#xff0c;每个场景都代表了一个特定类型的SQL注入漏洞。 用户可以通过攻击这些场景来学习和实践漏洞利用技术&#xff0c;以及…

MDK Keil5调试STM32F407时,Debug后直接运行。原因未找到

前段时间调试STM32F407ZGT6最小系统板&#xff0c;遇到一个情况&#xff1a; 没有问题的简单程序(出现问题之前跑过&#xff0c;烧录在其他板子上也运行正常)&#xff0c;在调试的时候&#xff0c;点击Debug按钮后&#xff0c;就直接运行&#xff0c;如下图&#xff1a; 上图&…

【Linux】初识信号及信号的产生

初始信号 初始信号什么是信号站在应用角度的信号查看Linux系统定义的信号列表 信号的常见处理方式信号的产生通过终端按键产生信号什么是core dump?如何开启core dump?core dump有什么用&#xff1f;为什么默认关闭core dump&#xff1f;设置了core文件大小但是没有产生core文…

贪心,CF802B. Heidi and Library

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 802A - Codeforces 二、解题报告 1、思路分析 这个题相当于你有一个容量为K的Cache&#xff0c;然后给你一系列访存序列 当访问缺失时你不得不替换掉Cache中某些块 学过操作系统都很熟悉页面置…

The Isle恐龙岛服务器开服联机教程

服务端区别&#xff1a;The lsle 是测试服 &#xff1b;The lsle Evrima 是正式服&#xff08;运行内存需要上到12G才可以运行&#xff09; 1、购买后登录服务器 进入控制面板后会出现正在安装的界面&#xff0c;安装大约5分钟&#xff08;如长时间处于安装中请联系我们的客服人…

LeetCode216组合总和3

题目描述 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a;只使用数字1到9。每个数字 最多使用一次。返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序返回。 解析 递归加剪枝&#xff0c;搜索长度达…

基于 Amazon EC2 快速部署 Stable Diffusion WebUI + chilloutmax 模型

自2023年以来&#xff0c;AI绘图已经从兴趣娱乐逐渐步入实际应用&#xff0c;在众多的模型中&#xff0c;作为闪耀的一颗明星&#xff0c;Stable diffusion已经成为当前最多人使用且效果最好的开源AI绘图软件之一。Stable Diffusion Web UI 是由AUTOMATIC1111 开发的基于 Stabl…

【数字孪生平台】光幻示例解析

本文在线示例查看。更多精彩内容尽在数字孪生平台,关注公众号:sky的数孪技术,技术交流、源码下载请添加VX:digital_twin123 地形构建 我们目的要搭建一个中间平坦、两侧有凹凸山脉效果并且能够一直绵延不断的地形,接下来我们通过三个问题来进行分析。 采用什么样的几何图…

Vue——模板引用(不建议使用,了解)

文章目录 前言测试案例 前言 模板引用&#xff0c;在官方文档中也有很详细的描述。 虽然 Vue 的声明性渲染模型为你抽象了大部分对 DOM 的直接操作&#xff0c;但在某些情况下&#xff0c;我们仍然需要直接访问底层 DOM 元素。 个人理解为&#xff1a; 在vue中&#xff0c;依据…

Scrum团队在迭代中如何处理计划外的工作

认为 Scrum 团队不做计划其实是一个误区&#xff0c;实际上很多 Scrum 团队在冲刺计划会议以及在细化工作项时均会进行详细规划。此外&#xff0c;他们还会创建一个路线图&#xff0c;以便显示他们在多个冲刺中的计划。 Scrum 团队需要经常进行计划&#xff0c;以便在不断变化…

本地 Java API 访问云上 HDFS 集群的问题与解决

前言 这篇文章默认是已经在云上配置好了 Haoop 集群&#xff0c;因此本文主要是记录一些可能会出现错误的地方。 如果还不会配置 Hadoop 集群&#xff0c;那么可以参考本专栏的另一篇文章&#xff1a;云上配置 Hadoop 集群详解 另外在进行本文的学习之前也建议先看看该文章&…