网易严选前端实习二面面经
搞了半天网易面试就是半个小时。。。无手写代码
为什么选择学习前端
怎么学习前端的
项目是怎么做的
个人网址怎么解析到Github Page
配置了CNAME,利用的是DNS实现
开始扣项目,Vue用的哪个版本
2.1
Vue 2.X和Vue 3的区别
Vue 3使用了 TypeScript进行类型检测,Vue 2使用的是flow,Vue 2 用的是Object.defineProperty()实现双向绑定,Vue3用的是Proxy
可以提到的点
Vue3默认进行懒观察(lazy observation) 在 2.x 版本里,不管数据多大,都会在一开始就为其创建观察者。当数据很大时,这可能会在页面载入时造成明显的性能压力。3.x 版本,只会对「被用于渲染初始可见部分的数据」创建观察者,而且 3.x 的观察者更高效。
Vue3当中的生命周期与Vue2的生命周期有很大的不同:
beforeCreate -> 请使用 setup()
created -> 请使用 setup()
beforeMount -> onBeforeMount
mounted -> onMounted
beforeUpdate -> onBeforeUpdate
updated -> onUpdated
beforeDestroy -> onBeforeUnmount
destroyed -> onUnmounted
errorCaptured -> onErrorCaptured
顺着挖TypeScript了解多少
类型检测,接口和类
Object.defineProperty()和Proxy区别
感谢之前自己总结的面经,基本答了上来
Proxy优势
支持数组
无需深层遍历对象
新版本红利
问数组需要深层遍历吗?
不需要
你使用的element-ui,讲讲组件有哪些
不太熟
怎么设置实现不知道元素和父元素居中对齐
.child { top: 0; bottom: 0; left: 0; right: 0; margin: auto; }
使用transform大法
.child{ left :50%, top: 50%; transform: translate(-50%, -50%); }
使用flex布局
.parent { display: flex; justify-content: center; align-items: center; }
上一面知道自己错在哪里了吗
知道,flex布局没有做到设置父元素对齐
你知道异步编程
知道,通过Promise实现
为什么要用Promise
解决try catch的回调地域问题
你知道js时间循环吗,有哪些微任务、宏任务
同步任务、清空微任务、每一个宏任务清空微任务
宏任务setTimeout、setInterval、setImmediate
微任务process.nextTick、 Promise
promise.then后面的什么时候放入微任务队列
回答resolve执行
不确定查了一下
MDN文档时序
为了避免意外,即使是一个已经变成 resolve 状态的 Promise,传递给 then() 的函数也总是会被异步调用:
Promise.resolve().then(() => console.log(2)); console.log(1); // 1, 2
传递到 then() 中的函数被置入到一个微任务队列中,而不是立即执行,这意味着它是在 JavaScript 事件队列的所有运行时结束了,且事件队列被清空之后,才开始执行:
const wait = ms => new Promise(resolve => setTimeout(resolve, ms)); wait().then(() => console.log(4)); Promise.resolve().then(() => console.log(2)).then(() => console.log(3)); console.log(1); // 1, 2, 3, 4
知道async/await吗,是做什么的,项目中用了吗,有什么好处
generator语法糖,返回一个promise,项目中用来异步接收后端请求,可以将异步函数写得和同步函数差不多
你项目中用了什么校验规则
讲一讲输入一个URL的网络变化
DNS、三次握手、HTTP请求、HTTP报文接收、四次挥手
HTTP缓存(老八股文)
CRSF 和XSS是什么,怎么防御(老八股文)
反问:
#网易##实习##前端工程师##面经#