面试要点
1.js基础知识
参考答案
2.从输入url到获得页面经历的所有事情(越细越好)
1、首先,在浏览器地址栏中输入url
2、浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作。
3、在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址。
4、浏览器向服务器发起tcp连接,与浏览器建立tcp三次握手。
5、握手成功后,浏览器向服务器发送http请求,请求数据包。
6、服务器处理收到的请求,将数据返回至浏览器
7、浏览器收到HTTP响应
8、读取页面内容,浏览器渲染,解析html源码
9、生成Dom树、解析css样式、js交互
10、客户端和服务器交互
11、发起ajax查询
参考链接
3.原型链
参考链接
原型
原型链
4.继承
参考链接
5.es6新特性
参考链接
6.DOM事件和事件流
参考链接
7.盒子模型
参考链接
8.事件循环
参考链接
9.BFC
参考链接
10.Flex
添加链接描述
11.Promise原理以及手写代码
添加链接描述
12.vue响应式原理
添加链接描述
13.vue虚拟dom & diff算法
添加链接描述
14.前端性能优化
添加链接描述
15.防抖和节流
添加链接描述
16.HTTP缓存
添加链接描述
17.常见算法(排序洗牌等)
面试中遇到的高频题(跟上面会有重合)
18.vue3解决什么问题
添加链接描述
19.Vue 为什么不能检测数组和对象的变化,怎么处理(为什么通过索引操作数组不能触发响应式)
添加链接描述
20.vue router原理
钩子函数 | 参考链接 |
---|---|
全局守卫: | router.beforeEach |
全局解析守卫: | router.beforeResolve |
全局后置钩子: | router.afterEach |
路由独享的守卫: | beforeEnter |
组件内的守卫: | beforeRouteEnter、beforeRouteUpdate (2.2 新增)、beforeRouteLeave |
21.v-model实现原理
22.Vue.nextTick():
添加链接描述
在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。
23.https的过程
添加链接描述
24.性能优化
添加链接描述
25.promise(基本上要求可以手写Promise.all方法,这个问的最多)
添加链接描述
26.async/await
添加链接描述
28.跨域形成原因以及解决方案
添加链接描述
29.深拷贝和浅拷贝(也会问到
添加链接描述
30.JSON.stringify JSON.parse这种方案的弊端)
添加链接描述
json.stringfy()将对象、数组转换成字符串;json.parse()将字符串转成json对象。
1.parse 用于从一个字符串中解析出json 对象
var str='{"name":"TMD","sex":"男","age":"26"}';
console.log(JSON.parse(str));//{name: "TMD", sex: "男", age: "26"}
2.stringify用于从一个对象解析出字符串
var o={
a:1,b:2,c:3};
console.log(JSON.stringify(o));//{"a":1,"b":2,"c":3}
31.箭头函数和普通函数有什么区别
添加链接描述
32.最近在看什么新技术
33.CSRF & XSS
添加链接描述
34.chrome设置小于12px字体
-webkit-text-size-adjust: none;
/* 使用webkit的私有属性,让字体大小不受设备终端的调整,可定义字体大小小于12px */
35.node和浏览器事件循环有何不同
添加链接描述
36.webpack tree shaking
添加链接描述
37.map & set
添加链接描述
38.前端有哪些技术(腾讯面试题,面试官会顺着你说的技术一个一个展开问)
39.实现一个call/bind(call,apply,bind区别)
添加链接描述
40.get 和 post 的区别
42.yield
添加链接描述
43.如何给localStorage加上max-age功能
添加链接描述
44.Object.defineProperties都有那些参数,以及参数解释
添加链接描述
45.requestAnimation
46.手写原型链和js各种继承模式
添加链接描述
47.让你重新做你做过的项目有什么可以改进的地方
48.让一个元素消失的几种做法,有何不同,对子元素的影响
添加链接描述
49.如何遍历对象(接下来会问有何不同)
添加链接描述
50.搜索框输入需要注意的点(其实还是在问防抖)
添加链接描述
51.原生实现inserAfter
function insertAfter(newElement, targetElement){
var parent = targetElement.parentNode;
if(parent.lastChild == targetElement){
parent.appendChild(newElement);
}else{
parent.insertBefore(newElement,targetElement.nextSibling);
}
}
52.事件委托应用场景,e.target和e.currentTarget区别
添加链接描述
53.HTTP缓存,对应字段,cache-contron都有哪些值
添加链接描述
54.new过程都发生了什么
添加链接描述
面试遇到的算法题
55.排序算法(冒泡,快排)
56.洗牌算法
57.v1.2.3 v0.3.0 这样的版本号比大小(找简单方法,不要随便写一个循环的版本)
添加链接描述
58.广度优先遍历
59.用O(n)的复杂度合并两个有序数组
60.数组生成树形结构
61.vue双向数据绑定原理