-
f: Deactive/Active all breakpoints:关闭/开启所有断点。
-
g: Pause on exceptions:异常情况自动断点设置。
此时,我们在 Scope 面板中可以看到该作用域下变量和函数的信息(鼠标悬浮在对应的变量上也可以看到)方便我们排查问题。
- 手动断点
打开开发者工具的 source 面板,在左侧目录树中找到对应的JS文件,在右侧对应文件的行号上单击即可实现断点的添加和删除。在添加断点之后,代码就会在断点处停止执行。
事件断点
在上图中点击 Event Listener Breakpoints ,然后选择我们需要监听的事件。之后当该事件被触发时,浏览器会帮我们自动在相应的js文件代码处打上断点。举个例子:我想在百度首页输入框中输入时,进行断点调试,就可以使用该功能。
请求断点
在上图中点击 XHR/fetch breakpoints ,然后添加对应的请求URL,之后当该请求发送的时候,就会自动断点。还是用百度举例:添加一个请求URL断点,然后刷新页面。
Dom 断点
我们还可以对指定的 dom 节点进行断点设置,根据设置类型的不同,浏览器会在 dom 节点属性变化,子树变化,节点被移除三个时机帮我们进行断点。还是用百度举例:在指定 dom 节点上右击,选择 Break on ,选择对应的时机进行设置
- 动画调试
工作中肯定会遇到调试动画的场景,为了调试动画,经常一遍又一遍的刷新页面,其实大可不必,有更简单的办法。
- 打开开发者面板,开启命令行(Mac: Command+Shift+P ,Windows:Control+Shift+P )
输入 Animations ,选择 Show Animations,打开动画检查器
之后在页面发生的动画都会被其捕获,我们就可以在动画检查器中调试动画了
区域1:控制动画的速度和播放;
区域2:捕获的页面动画;
区域3:动画的时间线;
区域4:动画的实现细节;
我们可以很方便的在这里将动画调试到满意的程度,然后复制对应的动画属性参数到代码中。
移动端H5调试
移动端H5本地调试和PC调试完全一样,我们在此讨论的是在webview中如何调试。
- vConsole
移动端H5页面运行在App的 webview 内,没有开发者工具可以让我们方便的调试(比如查看log,抓网络请求,查看cookie,Ua等等);因此 vConsole 等这类调试工具就产生了,让我们的调试变得方便了很多。
- 手机连接电脑
有了vConsole这类调试工具以后,基本上能解决大部分调试问题了。但还是存在一些情况,我们必须进行真机调试。比如在部分机型上页面直接白屏,vConsole还没有进行加载等等
大致步骤如下:
1: 手机连接电脑2: 手机打开开发者选项,允许USB调试3: 电脑打开 chrome://inspect4: 手机打开App内的H5页面5: 此时电脑端 chrome://inspect 页面会出现手机端页面的信息,点击 inspect 打开开发者面板即可复制代码
- 模拟器
实际工作中经常会出现用户的机型页面有问题,而我们因为各种原因并没有该用户对应的机型,这个时候模拟器就派上用场了。
node调试
Node 调试工具入门教程 推荐一下阮老师的文章,简单易懂。
简单说就是 node --inspect-brk xxx.js + chrome://inspect 。
举个例子,比如我想在 vue.config.js 中设置 cacheGroups,然后写了对应的正则或者 test 函数,但是打包之后的产物不符合预期,我想知道是哪里出了问题,此时就得调试打断点。
1. node --inspect-brk node_modules/.bin/vue-cli-service build
2. 打开浏览器,输入chrome://inspect 找到对应的target,然后inspect3. 在vue.config.js 设置断点,进行问题排查
复制代码
vscode调试
node
我们会发现上面调试node还是有点麻烦的,但是如果在编辑器中调试就很简单了。
数据结构与算法
这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。
- 二叉树层序遍历
- B 树的特性,B 树和 B+树的区别
- 尾递归
- 如何写一个大数阶乘?递归的方法会出现什么问题?
- 把多维数组变成一维数组的方法
- 知道的排序算法 说一下冒泡快排的原理
- Heap 排序方法的原理?复杂度?
- 几种常见的排序算法,手写
- 数组的去重,尽可能写出多个方法
- 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
- 知道数据结构里面的常见的数据结构
- 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
- 合并两个有序数组
- 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)
如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
- 知道数据结构里面的常见的数据结构
- 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
- 合并两个有序数组
- 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)
[外链图片转存中…(img-mTpOjZu5-1714236632937)]