- 博客(19)
- 收藏
- 关注
原创 前端面试题分析——个人总结
源代码 -> 词法分析,生成 tokens 数组 -> 语法分析,生成 AST -> 对 AST 进行遍历、访问 -> 在访问的过程中,通过插件对结点进行修改 -> 生成一个新的 AST -> 代码生成,得到目标代码。
2023-10-29 16:35:49
139
1
原创 前端面试需要准备哪些方面?
是时候该进入社会学习了,金3也快结束了,希望在银4收获一份满意的offer!JavaScript 相关知识:包括原型、作用域、闭包、ES6+、异步编程等。项目经验和解决问题的能力:如何快速定位和解决问题、如何优化体验和提升用户体验。网络协议相关:常见 HTTP、HTTPS、TCP/IP 等协议和工作原理。HTML、CSS 相关知识:包括标签语义化、布局、盒模型、响应式等。Web 性能优化:页面加载速度、渲染性能、性能测试、性能优化策略等。基础算法和数据结构:常见排序、查找、链表、二叉树等。
2023-03-22 18:46:46
348
原创 年年项目 —— Vue3开发
使用 async 和 await 解析 promise 对象,但是如果直接在 setup 中调用接口,会得不到接口返回的数据,因为 promise 是异步进行加载,所以 return 执行完才会执行接口函数。直接在 setup 中定义一个数据来存储得到的数据,注意这个数据一定不能是简单的单层对象,否则在赋值的时候会发生对象的地址替换,无法实现响应式。注意onLoad 相当于 created ,已废弃,被setup取代。canvas画图时是否遇到了和我一样的问题?有的话进来看看吧,希望对你有的小小的帮助。
2023-02-18 00:54:09
317
原创 DOM事件流
事件流:简单来说就是事件执行顺序;事件发生时会在元素节点与根节点之间按照特定的顺序传播,路径所经过的所有节点都会收到该事件,这个传播过程即DOM事件流。
2022-12-12 23:00:38
235
原创 http 和 ajax 的关系
(1)一般请求:浏览器一般会直接显示响应体数据,也就是通常说的 刷新/跳转 页面,也就是说一般请求需要页面刷新。注意: ajax 是一种不刷新页面的请求方式:请求回来数据后 进行 DOM 操作(增删改),不会刷新页面。(2)ajax请求:浏览器不会对界面进行任何更新操作,只是监视其回调函数,并返回相关数据。ajax 请求属于 http 请求。
2022-11-29 23:16:14
432
原创 事件循环(Event Loop)
JavaScript 是一种单线程的编程语言,,所有任务都需要排队依次完成。答:作为浏览器脚本语言,JS 的主要用途是与用户互动,以及操作 DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定 JS 同时有两个线程,一个线程在某个 DOM 节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?为了避免这种复杂性,因此 JS 只能是单线程。
2022-11-25 00:51:45
249
原创 JS 面试题——对象合并
Object.assign(target, ...sources) 中。obj1 中 b 的值被后面传入的 obj2 的值给覆盖掉了。目标对象(obj1)在前和在后最后打印的结果是不同的。源对象往目标对象合并,返回目标对象。后面替换前面属性中的键。扩展运算符合并对象,
2022-11-23 01:46:08
255
转载 JS 面试题——迭代器
es6里面有一个可迭代协议,大体意思是,只要一个对象有一个属性【symbol.iterator】且它是一个函数,且返回一个迭代器,那么这个对象即可迭代。前端安全方面一个非常重要的问题——原型注入,通过原型注入,可以轻易的破坏闭包,破坏第三方库,如 elementUI 等。解构赋值左边会得到右边的迭代器,不要求右边一定是数组,只要是可迭代对象即可。根据报错信息得知,是因为{a:1,b:2}不是可迭代的。但往原型上加方法,会延伸出来问题,那就是前端安全。那么,只需给上面那个。
2022-11-22 16:55:54
747
1
原创 开发单位 vmin/vmax
以前,写过一个仿B站移动端的项目;当时,项目适配用的是 vw,而现在B站移动端适配用的是 vmin,想了解 vmin/vmax 单位的作用,还有为什么B站移动端适配要采用 vmin。vw:与视口的宽度有关,1vw 就是视口宽度的 1%vh:与视口的高度有关,1vh 就是视口高度的 1%vmin:与当下视口的宽度和高度的最小值有关,取值为vw和vh中较小的那个vmax:与当下视口的宽度和高度的最大值有关,取值为vw和vh中较大的那个。
2022-11-22 02:17:58
2659
原创 vue 项目中刷新当前路由
在用 spa(单页面应用) 这种开发模式之前,用户每次点击侧边栏都会重新请求这个页面,用户渐渐养成了点击侧边栏当前路由来刷新 view 的习惯。但现在 spa 就不一样了,用户点击当前高亮的路由并不会刷新 view,因为vue-router 会拦截你的路由,它判断你的 url 并没有任何变化,所以它不会触发任何钩子或者是 view 的变化。
2022-11-09 11:37:04
5938
原创 vue 项目中刷新页面
之前最常用的是 this.$router.go(0),类似直接点浏览器的刷新按钮,此类方法会导致 URL 刷新时闪烁且用户体验极差,这是强刷新。
2022-11-08 22:55:24
703
转载 PC端项目中 vw 带来横向滚动条的问题
Windows 系统中的滚动条是会占据视口空间的。在 MacOs 系统中,当不滚动页面时,滚动条默认是隐藏的。它们也不占据任何的视口空间,这就表示 100% 的body宽度等于 100% 的屏幕宽度。在 Windows 系统中,滚动条的宽度会从窗口的宽度中减掉(一般是17px宽)。vw 单位忽视了滚动条占据视口空间(滚动条是不会影响vw单位计算的),还是计算整个视口的宽度。
2022-11-05 19:01:43
1340
1
原创 项目总结——B站移动端(vue3+ts)
项目地址https://gitee.com/zhou-kai520/vue3_ts_bilibilihttps://gitee.com/zhou-kai520/vue3_ts_bilibili技术栈 Vue3.2,Vue-Router,Vant 3 组件库,TypeScript,Axios项目功能实现了基本的B站移动端项目开发模式 前后端分离,后端写接口,前端实现接口调用、并且将数据渲染到页面上。 但由于只是一...
2022-05-14 20:15:59
840
原创 JS 中的数组
一、定义数组是指有序的元素序列。如果将有限个类型相同的变量的集合命名,那么这个名称就是数组名,而组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。而 JS 中的数组不是真正意义上的数组,因为 JS 中的数组能存储任意类型的数据。JS 中的内存地址不是连续的。二、清空数组的方法// arr 是相关数组// 方法一: let arr=[];// 方法二: let arr.length=0;// 方法三: ar...
2022-04-05 17:18:26
791
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人