1. **nuxt 是什么**
利用Vue.js开发**服务端渲染** ,**简化了SSR(服务端渲染)的开发难度,而且还可以直接用命令把我们制作的vue项目生成静态html** 生成指令 nuxt generate
<br>
2. **为什么要用 nuxt**
**最主要的原因是SPA(单页应用)不利于搜索引擎SEO操作**,比如制作一个类似新闻网站等,流量的一个主要来源是通过百度等搜索引擎,但是它们对SPA的抓取并不好,特别是百度根本没法抓取到SPA的内容页面,所以我们必须把我们的应用在**服务端渲染成适合搜索引擎抓取的页面**,再下载到客户端。**Nuxt.js适合做新闻、博客、电影、咨询这样的需要搜索引擎提供流量的项目。**
<br>
3. **vite2**
**Vite** 是一种全新的 **前端构建工具** 。类似 **webpack** 你可以把它理解为一个开箱即用的 **开发服务器+ 打包工具** 的组合
<br>
4. **TS**
![](https://img.kancloud.cn/10/3f/103ff4d04328518eefc62cec9195ec80_977x496.png)
一会看一遍自己写的笔记
<br>
5. **vue3**
一会看一遍自己写的笔记
<br>
6. **es6**
一会看一遍自己写的笔记
<br>
7. **koa**
**koa** 是 **Express** 原班人马基于**ES6 新特性** 重新开发的框架,主要基于 co 中间件,框架自身不包含任何中间件,很多功能需要借助第三方中间件解决,但是由于其基于 ES6 generator 特性的异步流程控制,解决了 "callback hell(回调地狱)" 和麻烦的错误处理问题。**koa只有http模块**。
<br>
8. **express**
**Express** 是 **node js** 的一个框架,可以设置中间件来响应 **HTTP** 请求, 定义了 **路由表** 用于执行不同的 **HTTP** 请求动作,可以通过 **向模板传递参数来动态渲染 HTML 页面**。
缺点: 【**express通过回调实现异步函数,在多个回调、多个中间件中写起来容易逻辑混乱**】
<br>
9. **express 与 koa的区别**
**相同点** : 两个框架都对 **http** 进行了封装。相关的api都差不多,同一批人所写。
不同点:
**express**内置了许多中间件可供使用,而**koa**没有。**express**包含路由,视图渲染等特性,而**koa**只有http模块。**express**的中间件模型为线型,而**koa**的中间件模型为U型,也可称为洋葱模型构造中间件。**express**通过回调实现异步函数,在多个回调、多个中间件中写起来容易逻辑混乱。
<br>
10. git操作 rebase命令是啥
克隆
~~~
git clone
~~~
把文件加入暂存区
~~~
git add
~~~
提交
~~~
git commit
~~~
本地的分支版本上传到远程并合并
~~~
git push
~~~
**git rebase 说明**
1.当我们在一个过时的分支上面开发的时候,执行`rebase`以此同步`master`分支最新变动;
2.假如我们要启动一个放置了很久的并行工作,现在有时间来继续这件事情,很显然这个分支已经落后了。这时候需要在最新的基准上面开始工作,所以`rebase`是最合适的选择。
~~~
git rebase
~~~
<br>
11. **js基础面试题刷2遍**
一会看
<br>
12. **es6新增了哪些属性啥的**
链式操作符、等等的
<br>
13. **Restful接口又哪些方法**
**restful Api** 有点像 **ts** , **ts** 可以进行对 **js** 的 **数据类型进行约束** , **Restful接口** 可以 **约束设计接口的定义规范**
方法:
![](https://img.kancloud.cn/32/df/32df9ef7543cb0edd8ace851c5477683_765x203.png)
<br>
14. 发送请求到回来经历了什么过程
调用接口传递请求网络,请求到服务器,服务器存储或者读取数据库数据,然后进行数据的整合洗数据,再返回给浏览器,浏览器再进行渲染
<br>
**三次握手,四次挥手**
![](https://img.kancloud.cn/e7/9f/e79f7f2d8024a347d7da1f804d3b925e_365x189.png)
![](https://img.kancloud.cn/47/1c/471cbb4052bd871353ad0f4561121296_588x497.png)
![](https://img.kancloud.cn/07/39/0739ffa59aee839c4977cb58df9d563f_1019x718.png)
![](https://img.kancloud.cn/7e/4c/7e4c3b224dec9ed711ff09bbdc4f770c_1037x802.png)
<br>
16. **封装继承多态**
![](https://img.kancloud.cn/fb/d5/fbd5c39cd32d22b8bfd707df6e2861d1_948x385.png)
<br>
<br>
17. 服务器渲染和客户端渲染
![](https://img.kancloud.cn/28/9e/289ef30a4f18247e9a9837abf6d5d00d_689x270.png)
[服务端渲染和客户端渲染区别?](https://www.jianshu.com/p/ebdc3ce41c6a)
18. css布局如何居中flex
水平居中:
文本居中: text-align: center;
块级元素居中 margin:0 auto
postion定位left 50% magin-left :负元素的一半
flex水平垂直居中:
![](https://img.kancloud.cn/ef/b6/efb6ed9fda1481a8d865db58b47ff704_737x493.png)
20. 虚拟dom
![](https://img.kancloud.cn/41/33/41336b9f34789d8f04d3891d25574b40_1102x759.png)
21. vue生命周期
![](https://img.kancloud.cn/c0/bc/c0bcbfbbb63b21d4c6b6b58a8388d253_748x569.png)
22.路由生命周期
![](https://img.kancloud.cn/a9/f1/a9f126e4cb0f0d97d0021d8130def45f_964x796.png)![](https://img.kancloud.cn/92/28/922836919dfe8e957c8b950b4c8967f4_964x796.png)
23. 登陆时密码如何加密?
1. **对称加密**:**对称加密** 是指 **加密跟解密用同一个密钥**
2. **非对称加密**:**非对称加密** 是指 **后端返回给前端公钥进行加密,后端用私钥进行解密**
![](https://img.kancloud.cn/fd/2c/fd2ca128fb0c9bf9143089b4e4698b64_649x221.png)
使用 **JSEncrypt** 插件,进行加密,首先调用**获取公钥接口** ,取到后端返回的公钥后,传入到这个 **加密类** 中,然后在使用密码的地方使用这个 **加密类** 的一个构造方法,即可把密码加密。
总结:
1. 简历上的东西好好看
2. 看ts
3. 看vue3、js es6
4. 看js基础面试题
5. 面试题链接:https://juejin.cn/post/6940945178899251230
6. **es6新增了哪些属性啥的**
7. 看抖音前端面试技巧、西瓜视频、b站前端面试技巧
keep-alive 的2个生命周期?`activated`与`deactivated`。
防抖节流的区别以及实际应用场景
防抖:
1. 登录、发短信等按钮避免用户点击太快,以致于发送了多次请求,需要防抖
2. 调整浏览器窗口大小时,resize 次数过于频繁,造成计算过多,此时需要一次到位,就用到了防抖
3. 文本编辑器实时保存,当无任何更改操作一秒后进行保存
节流:
节流,顾名思义,控制水的流量。控制事件发生的频率,如控制为1s发生一次,甚至1分钟发生一次。与服务端(server)及网关(gateway)控制的限流 (Rate Limit) 类似。
1. `scroll`事件,每隔一秒计算一次位置信息等
2. 浏览器播放事件,每个一秒计算一次进度信息等
3. input 框实时搜索并发送请求展示下拉列表,没隔一秒发送一次请求 (也可做防抖)
https://zhuanlan.zhihu.com/p/157711895
[面经网站](https://vue3js.cn/interview/JavaScript/debounce_throttle.html)
[前端最强面经汇总](https://juejin.cn/post/6844903909979324429)
[面试资源汇总](https://github.com/abc-club/js-paradise/blob/master/INTERVIEW.md)
[# 面不面试的,你都得懂原型和原型链](https://juejin.cn/post/6934498361475072014)
1. ts【看个人笔记,看b站,西瓜视频,ts面试问题】
类型推断
类型断言
联合类型
交叉类型
interface可以继承
type也可以定义obj对象
枚举enum类似js常量,一般用于存储一定范围内的常量
声明文件【.d.ts通常是第三方库不是通过ts写的时,需要用声明文件,用declare来声明】
interface与type的不同,什么场景应该用什么
![](https://img.kancloud.cn/84/fb/84fb132671e2e69d80893cd64fa3a5b3_1080x2340.png)
泛型(Generics) : 在 定义函数、接口、Class类时,我们不预先指定具体类型,而是在使用时再指定类型
![](https://img.kancloud.cn/4b/30/4b3036fd3846fd35bc56f0dab27e8ec5_1080x2340.png)
function echo<T>(arg: T): T{
return arg
}
const str: string = 'str'
const result = echo(str)
2. js基础
原型链class
封装【把对数据的操作封装起来,对外部留一个接口只能调用看不到处理逻辑】
继承【子继承父,并且可以有自己的一些状态】
多态【猫跟狗都有吃的方法,在调用时不用关心是谁的方法】
静态方法,在class中写方法前加上static,调用静态方法时通过类名即可调用
this指向【函数内使用this指向调用者】,
bind,apply,call的不同【都是用来改变函数的this对象的指向的。】
函数的调用方式决定了 this 的值(运行时绑定)
闭包(方法里面返回方法,延长变量生命周期,创建私有环境)
数据类型【boolean string number undefined null object bigint sinybol(私有属性)】.只有对象是引用类型
栈: 基本数据类型储存在栈内【后进先出像弹夹一样】
堆:引用类型储存在堆中
set去重【new set】,如何set转数组?
let set = new Set([1, 2, 3, 3]) // 创建一个Set集合
let arr = [...set] // set集合转换成数组
console.log(arr) // [ 1, 2, 3 ]
ES6【看看笔记,看b站,西瓜视频,js面试问题】事件循环eventloop,宏任务【定时器,延时器】,微任务(promise)
3. html的canvas如何画线【看b站视频】
,新出的视频音频标签
![](https://img.kancloud.cn/06/d3/06d32084276b9e3c98d3685926085b42_1080x2340.png)
4. vue笔记看看,vue3也看看,vue【生命周期,路由vuex,组件传值】,optionsAPI是vue2,composition是Vue3API,差别在于2用的object.definpropety,3是Proxy,mvvm与mvc代表什么意思,区别是什么,
组件传值:bus、vuex
5. 三次握手四次挥手
![](https://img.kancloud.cn/99/dc/99dcc5cde7a8524d80db29dc5ff031d3_1080x2340.png)
6. Angela【看一下生命周期,基本语法】
7. 看看mysql增删改查的语句【重要】
增加数据
insert into users(username, `password`, realname) values('lisi', '123', '李四');
查询数据
select id, username from users
修改数据
update users set realname='李四2' where username='lisi';
删除数据
delete from users where username='lisi';
8. 中间件是什么,express与koa的区别
中间件实际上就是框架提供的一些封装好的方法,其中有res req next方法,不执行next就无法下一步,就跟js里有xhrhttprequst对象,为什么使用axios一样
9. http请求有哪些put跟delete为什么不用他们,因为这两个请求类型完全可以通过get post,来实现功能,他们俩的出现就是因为restful的考虑,想语义化一些,就跟html标签的header标签一样,有div也可以用
10. axios登录流程,密码加密,非对称加密
11. 防抖,在一定时间内多次触发事件,会被重置事件,然后只执行最后一次,
![](https://img.kancloud.cn/fe/97/fe97621f27ab761549deecb9e1e62888_1080x2340.png)
12. 渐进式框架,隋用随时引入
计算属性具有缓存功能,methods方法没有
amd cmd common.js
如果给不到11就不去,1是地方远交通不便利,2是Angela对于我来说要重学技术栈框架,以前是vue现在又要重学Angela,对于我来说,学习成本很高