字节青训前端笔记 | 前端调试

news2024/9/22 19:31:23

在程序员的世界中,BUG 一词相信同学们再熟悉不过了,本节课将围绕前端开发中所遇见的 BUG 出发,讲解作为一名合格的前端开发人员,你应该掌握哪些开发调试知识

Chorme DevTools

Chorme DevTools 是 chorme内核为大家提供的高效的前端调试工具,我们在 chorme浏览器按 F12 或者点击右键 -> 检查 可以打开它,它分为多个板块:

Elements

它代表了一个网页的元素和样式,可以通过选中一个元素来获得它的样式信息:

  1. 点击 .cls 标签可以动态修改元素的 class
  2. 在显示的 class 里可以动态修改元素的样式,或者新增新的属性
  3. 可以右键一个元素,使用 Force state 来使得元素处于一个状态,如鼠标悬停或者链接激活等等,也可以点击右侧 style下面的 :hov 来选择对应的伪类
  4. 可以通过 computed 来搜索所有的属性进行调试

请添加图片描述

Console

这个界面可以打印出前端的日志,我们使用 console.log、console.warn、console.error、console.debug、console.info 来表示不同等级的日志,可以通过筛选来筛选不一样等级的日志:

请添加图片描述

console.table 可以具象化展示JSON和数组数据

请添加图片描述

console.dir 则通过类似文件树的方式展示对象的属性

请添加图片描述

Score Tab

请添加图片描述

我们可以通过两种方法添加断点,在代码中添加 debugger; 或者在source界面对应代码的行号面前双击,也可以直接添加断点,断点列表可以在BreakPoints 中查看,同时我们还可以查看属性的作用域和调用栈

请添加图片描述

但是工程代码一般是通过压缩混淆后的,代码已经难阅读了,我们需要用到 souce map这个工具,他可以在出错的时候定位到原始代码的位置,但是带上source map 不安全,还是可以通过它获取原始代码,所以一般打包带上 source map ,发布版本是删除了source map 的,而带有 source map 的版本一般上传监控服务器等位置。

NetWork

这个界面包含了浏览器的请求的各种资源

请添加图片描述

可以在这个页面控制面板处模拟不同的网络环境,比如弱网环境来进行调试,也可以在写请求详细页面获得接口的传入值和返回值进行接口的调试

请添加图片描述

Application

这个信息包含了相关的本地存储信息,比如cookie localstroge等等

Performance

这个页面包含了性能相关的信息

请添加图片描述

Lighthouse

分析网站的核心指标

请添加图片描述

移动端调试

真机调试

用USE数据线连接,打开开发者模式,输入浏览器地址

Vconsole

使用 Vconsole 插件可以在真机app中导入 chorme 的DevTools

请添加图片描述

代理工具

使用电脑作为代理服务器,手机通过 HTTP 代理连接到电脑,手机上的请求都经过代理服务器。常用的 charles

Node调试

执行如下命令

node --inspect=8888 index.js

打开浏览器 chrome://inspect/#devices,添加上我们调试服务 localhost:8888 就可以进行node的调试

请添加图片描述

开发调试技巧

  1. 使用 source -> overrides 修改代码可以直接修改内容保存到本地

  2. 代理服务器解决跨域问题,例如 devserver 的服务器代理,或者 vue.config.js 的本地代理等等,这里给一篇教程 https://blog.csdn.net/weixin_48508063/article/details/124192979?spm=1001.2014.3001.5502

  3. 本地 source map,使用代理工具使用 map local把远程的代理到本地来访问本地的 source map

  4. Mock 数据,利用代理工具让本地数据变成远程的,这里还是放一篇文档连接:

    https://blog.csdn.net/m0_62570630/article/details/123337769

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

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

相关文章

gdb使用

gdb是一款UNIX及UNIX-like下的调试工具 gdb可用于调试用gcc编译的可执行文件,用gdb调试时gcc编译需要使用参数-g 本文是对于gdb在Linux下使用的基本命令的总结gdb调试视频演示,gdb调试基础指令,gdb调试其他命令,gdb常见错误说明 目…

23种设计模式(二十一)——命令模式【行为变化】

文章目录 意图什么时候使用命令真实世界类比命令模式的实现命令模式的优缺点亦称:动作、事务、Action、Transaction、Command 意图 将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递…

Centos7 Docker安装APISIX

Centos7 Docker安装APISIX1 基础介绍1.1 概念1.2 特性1.3 架构图2 快速安装2.1 前提条件2.2 安装步骤2.2.1 git命令克隆apisix-docker仓库2.2.2 docker-compose启动apisix2.2.3 访问apisix dashboard3 简单使用3.1 准备接口3.2 创建服务3.3 创建路由3.4 测试请求1 基础介绍 1.…

Kubernetes:分享一个很简洁的 k8s 管理工具 Skooner

写在前面 博文内容为 Skooner 简单介绍包括下载安装导入集群基本功能使用Skooner 的 sa 使用的当前命名空间默认的 sa不会显示创建 sa ,当然可以单独创建理解不足小伙伴帮忙指正 我所渴求的,無非是將心中脫穎語出的本性付諸生活,為何竟如此艱難呢 -----…

Spring_FrameWork_10(MyBatisPlus)

lombok mybatis:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplTestvoid selectById(){IPage page new Page(2,2);bookDao.selectPage(page,null);System.out.println("当前页码值:"page.getCurrent());System.out.println…

Java---微服务---Nacos集群搭建

Nacos集群搭建1.集群结构图2.搭建集群2.1.初始化数据库2.2.下载nacos2.3.配置Nacos2.4.启动2.5.nginx反向代理2.6.优化1.集群结构图 官方给出的Nacos集群图: 其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。 我们…

解锁Windows所有电源选项

20230123 By wdhuag 目录 参考: 查看当前选项: 警告!修改前,先使用Registry Workshop备份注册表,导出PowerSettings: 在PowerSettings里增加Attributes参数(十六进制、数值2)&a…

Shell脚本从入门到实战

Shell 文章目录Shellshell概述Shell脚本入门1. 脚本格式2. 第一个Shell脚本:helloworld3. 第二个Shell脚本:多命令处理Shell中的变量系统变量1. 常用系统变量2. 案例实操自定义变量1. 基本语法2. 变量定义规则特殊变量:$n特殊变量:$#特殊变量…

零基础学JavaWeb开发(二十二)之 springmvc入门到精通

一、SpringMVC概述 1、三层架构与MVC架构区别 1.1、三层架构 表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。 servlet层 业务逻辑层:对我们数据实现业务逻辑的封装 service层 数据访问层&#xf…

【Java|golang】2303. 计算应缴税款总额

给你一个下标从 0 开始的二维整数数组 brackets &#xff0c;其中 brackets[i] [upperi, percenti] &#xff0c;表示第 i 个税级的上限是 upperi &#xff0c;征收的税率为 percenti 。税级按上限 从低到高排序&#xff08;在满足 0 < i < brackets.length 的前提下&am…

【JavaScript】多态(Symbol),迭代器接口,getter/setter

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录多态symbol迭代器接口实现数组的迭代器方法练习Getter/Setter多态 我拿到一个对象&#xff0c;这…

【JavaScript】正则表达式详解

&#x1f4bb;【JavaScript】正则表达式&#x1f3e0;专栏&#xff1a;JavaScript &#x1f440;个人主页&#xff1a;繁星学编程&#x1f341; &#x1f9d1;个人简介&#xff1a;一个不断提高自我的平凡人&#x1f680; &#x1f50a;分享方向&#xff1a;目前主攻前端&#…

MySQL(五):事务简介、事务的特性、事务的概念及状态、支持事务的引擎

目录一、事务的起源二、事务的特性2.1 原子性(Atomicity)2.2 隔离性(Isolation)2.3 一致性(Consistency)2.4 持久性(Durability)三、事务的概念及状态四、支持事务的引擎一、事务的起源 事务源于日常生活中的业务&#xff0c;现有这样的一个场景&#xff0c;A账户有11元&#…

人工智能学习06--pytorch04--transforms

transforms主要对图片进行一些变换 transform该如何使用&#xff08;python&#xff09; 从transform中选择一个class&#xff0c;进行创建 依据创建的工具看需要什么&#xff08;如img&#xff09; 为什么需要tensor的数据类型 tensor数据类型&#xff1a;包装了神经网络…

opencv win10 4.7.0 源码编译 vs2019 cmake

下载opencv & opencv-contrib 4.7.0源码&#xff1b;注意下载地址https://github.com/opencv/opencv/releases https://github.com/opencv/opencv_contrib/releases/tag/4.7.0 版本要一模一样cmake输出文件夹为&#xff1a;opencv-4.7.0-build 遇到下载问题如下&#xf…

常见递归模式

常见递归模式递归模式遍历二叉树模式回溯模式子问题分解模式递归模式 常见递归模式&#xff1a; 遍历二叉树模式回溯模式子问题分解模式 遍历二叉树模式 只要涉及递归的问题&#xff0c;都是树的问题&#xff0c;或者说树的遍历。 void traverse(TreeNode root) { // 遍历…

混合背包问题

混合背包问题一、问题二、分析三、代码一、问题 二、分析 混合背包问题就是将我们之前讲过的01背包&#xff0c;完全背包&#xff0c;分组背包&#xff0c;多重背包问题等等中的任意几个混合在一起。因此想要解决这个问题&#xff0c;就需要对01背包&#xff0c;完全背包&…

PDF划词翻译软件

PDF划词翻译 一个简单的PDF划词翻译软件。 Github仓库地址&#xff1a;https://github.com/WCX1024979076/simple_pdf_translator Github下载地址&#xff1a; https://github.com/WCX1024979076/simple_pdf_translator/releases/tag/v0.1.0 Gitee仓库地址&#xff1a; htt…

ROS2机器人编程简述humble-第三章-COMPUTATION GRAPH .2

ROS2机器人编程简述humble-第三章-PERCEPTION AND ACTUATION MODELS .1避开障碍物计算图如何呢&#xff1f;该应用程序的计算图非常简单&#xff1a;订阅激光主题的节点向机器人发布速度命令。控制逻辑解释&#xff1a;输入的感知信息并产生控制命令&#xff08;输出&#xff0…

深度学习:DenseNet思想总结

深度学习&#xff1a;DenseNet思想总结前言DenseNetResNetDense connectionComposite functionPooling layersGrowth rateBottleneck layersCompressionImplementation Details总结前言 论文中提出的架构为了确保网络层之间的最大信息流&#xff0c;将所有层直接彼此连接。为了…