前端进阶之———浏览器调试巧技

        有幸的参加了一次腾讯的面试,被面试官问到了JS能不能在浏览器上import依赖已经遇到一个错误函数应该怎么解决。之前的经验是做一些简单的html,css样式调试以及他的报错信息,忽略了浏览器js调试的强大功能。觉得还是非常有必要的,很好的帮助我们以解决后开发的时候遇到复杂的问题,下面就开始系统的学习一下。

浏览器调试简介

  • F12:打开浏览器调试模式
  • ctr+shift+p:打开命令菜单
  1. 例如blacks:可以切换DevTools背景颜色
  2. screenshot:截屏(有几种选择,根据需求选择整个窗口、截取和)
  3. dock:切换调试窗口的位置、undock调试界面变成独立的窗口
  • 常用的tab
  1. element:比较常用了,hover常驻、 copy styles、观察flex布局,观察网格布局、绑定事件
  2. console:快捷键(ctr+shift+J)、执行语句,$_返回上一条语句的执行结果,$0上一个选择选择DOM节点($1,$2...)、console.log(error warn table clear group time assert trace)、log级别筛选。
  • JS调试
  1. debuger调试
  • netWork

缓存、har文件

  • application

存储键值对、localstorage、sessionstorage、cookie。

JS调试

        css debug平时用的可能稍微多一点,记得上次面试官还问到了控制台上可不可以直接impoort JS文件,答案是可以的,包括对缓存进行查看和修改都是可以的。下面主要是想学习一下JS debug,深度掌握一下小技巧,为开发积累一些经验吗,相信会给开发的整个过程提升不少效率。下面是以我的项目中的一个小功能为示例,来看看怎么给他进行JS调试:

        有三种调试的方式:

  1. debugger
  2. DOM Breakpoints(break on)
  3.  Event Listener Breakpoint,框架:Call Stack(Add script to ignore list)
  • 下面是项目其中的一个页面,关于表格的复杂逻辑处理,我们需要调试自动调整的JS

        

  • 下面是sources的界面,在开发阶段,通常webpack、vue cli将.vue文件转化为JS代码,并通过render或Vue模板编译器进行渲染。 
  •  webpack://是Webpack构建工具生成的虚拟文件系统路径,用于在浏览器的开发者工具中查看和调试源码,这里点击的页面是index.vue

       

debugger

  • 给自动调整按钮添加debugger,在自动调整之前去设置一个断点。

  •  执行到断点的时候自动停止代码的执行,通过调试器查看代码执行流程,检查报错信息或者查看封装的函数执行流程帮助找出代码错误。

 DOM Breakpoints(break on)

  • DOM断点(DOM breakpoints)是浏览器开发者工具中的一项功能,可以直接在DOM上设置断点,一旦代码执行到对应的DOM代码执行就会中断供给开发者调试。

  Event Listener Breakpoint

  • 通过Event Listener Breakpoint事件监听的方式来给事件打断点,遇到勾选的对应的事件的时候代码中断执行。
  • "Call Stack"(调用栈),它是用于显示当前代码执行路径的工具。"Call Stack"选项卡中,你可以看到当前代码的调用路径,即哪些函数或方法被调用,并且可以点击每个调用栈帧来查看相应的代码。Add script to ignore list可以选择跳过无错误的方法来找目标函数的错误。

总结

        JS调试,可以通过在控制台上去打断点并设置watch的值来动态监听值的变化可以很好的减少console的使用来达到很好的调试效果。同时解决因为有的表格数据量多,console的方式不会触发垃圾回收机制,导致内存泄漏页面卡段的问题。

        控制台,也可以通过在浏览器控制台使用console.log或者import JS,直接输入和执行JavaScript代码。对于测试和调试一小段代码非常有用,也可以进行网络请求等帮助定位和解决问题。

         现代浏览器支持在JavaScript中使用`import`语句来导入依赖项。这是由JavaScript的模块化规范(ES模块)引入的一项功能。
要在浏览器中使用`import`语句导入依赖项,你需要做以下几个步骤:
1. 将脚本标记为模块:确保你的JavaScript文件被标记为模块。在HTML中使用`<script type="module">`标签来加载文件。例如:

<script type="module" src="your-script.js"></script>


2. 导出模块的功能:在你想要导出的模块中,使用`export`关键字将功能导出。例如:

// 导出一个函数
export function myFunction() {// ...
}
// 导出一个变量
export const myVariable = 42;
```


3. 导入依赖项:在需要使用依赖项的地方,使用`import`语句导入所需的模块。例如:

import { myFunction, myVariable } from './other-module.js';
// 使用导入的函数和变量
myFunction();
console.log(myVariable);


请注意,使用`import`语句导入依赖项只适用于支持ES模块的现代浏览器。如果你的目标浏览器不支持ES模块,你需要使用构建工具(如Webpack、Babel等)将代码转换为兼容的格式。
另外,需要注意的是,模块的加载遵循同源策略,因此导入的模块必须与当前模块位于同一个源(域名、协议和端口号)。如果你需要加载来自不同源的模块,你可以使用CORS(跨域资源共享)或服务器端代理来处理。

参考链接:

  1. 【【浏览器调试工具精讲】Chrome Dev Tools精讲,前端必看!】 https://www.bilibili.com/video/BV1KM4y1G7EF/?share_source=copy_web&vd_source=118accae3f5a3f39ebd530551ef6e598

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

锁的相关策略

乐观锁vs悲观锁 指的不是具体的锁,是一个抽象的概念,描述的是锁的特性,描述的是一类锁 乐观锁 假设数据一般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正式对数据是否产生并发冲突进行检测,如果发现并发冲突了,就让返回用户错误的信息,让用户决定如何去做.(…

从爬楼梯到斐波那契数列:解密数学之美

题目描述 我们来看看力扣的一道经典问题70. 爬楼梯 递归 假设n级台阶有climbStairs(n)种方法爬到楼梯顶。如果有n级台阶&#xff0c;如果第一次往上爬1级台阶&#xff0c;就会剩下n-1级台阶&#xff0c;这n-1级台阶就有climbStairs(n-1)种方法爬到楼梯顶&#xff1b;如果第一…

es的索引管理

概念 &#xff08;1&#xff09;集群&#xff08;Cluster&#xff09;&#xff1a; ES可以作为一个独立的单个搜索服务器。不过&#xff0c;为了处理大型数据集&#xff0c;实现容错和高可用性&#xff0c;ES可以运行在许多互相合作的服务器上。这些服务器的集合称为集群。 &…

uniapp使用uni.chooseLocation()打开地图选择位置

使用uni.chooseLocation()打开地址选择位置&#xff1a; 在Uniapp源码视图进行设置 添加这个属性&#xff1a;"requiredPrivateInfos":["chooseLocation"] ​ </template><view class"location_box"><view class"locatio…

企业博客搭建:经营好企业博客,能让你的业务蹭蹭上涨!

企业博客本身作为企业产品知识的沉淀&#xff0c;搭建并且经营好企业博客不仅有利于企业文化建设&#xff0c;更可以利用博客来推动业务增长。 何谓企业博客营销&#xff1f;简单地说&#xff0c;就是利用HelpLook这种工具创建并开展网络营销活动&#xff0c;称之为博客营销。 …

CH02_重构的原则(什么是重构、为什么重构、何时重构)

什么是重构 重构&#xff08;名词&#xff09;&#xff1a;对软件内部结构的一种调整&#xff0c;目的是在不改变软件可观察行为的前提下&#xff0c;提高其可理解性&#xff0c;降低其修改成本。 重构&#xff08;动词&#xff09;&#xff1a;使用一系列重构手法&#xff0…

云原生之使用Docker部署SSCMS内容管理系统

云原生之使用Docker部署SSCMS内容管理系统 一、SSCMS介绍二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载SSCMS镜像五、部署SSCMS内容管理系统5.1 创建SSCMS容器5.2 检查SSC…

SpeedBI数据可视化工具:丰富图表,提高报表易读性

数据可视化工具一大作用就是能把复杂数据可视化、直观化&#xff0c;更容易看懂&#xff0c;也就更容易实现以数据驱动业务管理升级&#xff0c;因此一般的数据可视化工具都会提供大量图形化的数据可视化图表&#xff0c;以提高报表的易懂性&#xff0c;更好地服务企业运营决策…

【React基础全篇】

文章目录 一、关于 React二、脚手架2.1 create-react-app 脚手架的使用2.2 项目目录解析2.3 抽离配置文件2.4 webpack 二次封装2.4.1 集成 css 预处理器2.4.2 配置解析别名 2.5 setupProxy 代理 三、JSX3.1 jsx 语法详解3.2 React.createElement 四、组件定义4.1 类组件4.2 函数…

python print ljust 文本对齐打印 对齐打印名册

背景 在python部分场景下&#xff0c;我们需要打印输出一些文本消息&#xff0c;但我们又无法预测可能的打印内容是什么。这种情况下&#xff0c;我们要对齐打印这些文本&#xff0c;是比较比较难以处理的。 例如下面是一列姓名&#xff0c;和对应的一列手机/电话号&#xff0…

2023企业网盘产品排行榜揭晓:选择最适合你的企业网盘工具

企业网盘产品已成为企业文件管理协作的主要选择之一&#xff0c;无论是在文件管理方面&#xff0c;还是团队协作上&#xff0c;企业网盘都表现优秀。为了帮助企业选到心怡的企业网盘产品&#xff0c;我们综合了不同的产品测评网站意见&#xff0c;整理了2023企业网盘产品排行榜…

软件测试知识点总结(一)

文章目录 前言一. 什么是软件测试二. 软件测试和软件调试的区别三. 软件测试和研发的区别四. 优秀的测试人员所应该具备的素质总结 前言 在现实生活中的很多场景下&#xff0c;我们都会进行测试。 比如买件衣服&#xff0c;我们需要看衣服是不是穿着好看&#xff0c;衣服材质如…