【蔚来】前端岗-一二三连环面面经

一面

上午11点开始,持续时间一小时左右

介绍一下自己的项目,具体做了哪些工作

(因为之前说了项目中用到了高德地图API)高德地图的覆盖物是怎么实现的(new AMap.Marker()),它的样式怎么设置的吗?

(因为之前说了项目中用到了Echarts)在使用Echarts的过程中发现了什么问题?怎么解决的?

说下防抖和节流,什么情况下会用到?

CSS中id选择器、class选择器、元素选择器、行内样式它们的优先级?用哪种选择器比较多?你觉得它有什么优点?

display: none和visibility: hidden的区别

position都有哪些属性?absolute和relative的区别?

在一个div中包含一个未知尺寸的子div,如何让它在父div中水平垂直居中?

JavaScript中有哪些基本数据类型?

说一下原型和原型链

apply,call和bind三个方法的作用和区别

如何判断一个变量的数据类型?(说了typeof和instanceof)还有其它方法吗?

看你的项目中使用过element-ui,说下它里面的表单校验是怎么使用的?

在你使用element-ui的过程中有没有发现它的什么问题或是不足的地方?(没想出来,面试官说了一个)

Vue中组件间传值的方法

Vuex是永久保存的吗?(不是)想要永久保存怎么办?(回答用localStorage)但是localStorage不是双向数据绑定的怎么解决?(我说将Vuex和localStorage结合使用,同步它们的数据)

v-show和v-if的区别

axios的拦截器有哪些?(请求拦截器和响应拦截器)现在有两个请求拦截器A, B,两个响应拦截器A, B,它们的执行顺序?(请求拦截器B,请求拦截器A,响应拦截器A,响应拦截器B)为什么是这样的执行顺序?

开放题(把你的想法都可以说出来):用JavaScript实现一个雪花飘落的动画。(自己没什么想法,面试官一步一步引导:是不是要创建一个雪花的类?它里面包含哪些属性和方法?感觉答的不是很好)

反问:技术栈(Vue和React都有)

二面

一面结束后立即收到二面通知,12点半开始,持续时间40分钟左右

在项目的过程中遇到过哪些难点?怎么解决的?

typeof和instanceof的区别?instanceof是怎样实现的?

说一下原型和原型链

Flex包含哪些属性?justify-content属性包含哪些?

说一下深拷贝和浅拷贝,如何实现深拷贝?

你常用的ES6语法有哪些?

说一下let和const的相同点与不同点

什么是闭包?

有看过Promise的源码吗?说下它是怎样实现的

说一下Promise.all()和Promise.race()

浏览器输入一个url按下回车后发生了什么?

说一下强缓存和协商缓存,强缓存和协商缓存有哪些标识?

说一下三次握手,为什么要三次不能两次?

介绍下回流和重绘

算法题:爬楼梯

算法题:全排列 (没做出来)

看过Vue的源码吗?说一下你看的一部分内容(说了双向绑定)

了解数组的哪些方法?说下forEach()和map()的区别

觉得自己还有哪些被我忽略的亮点?(我说没有 TT)

反问

三面

二面结束后立即三面,等待了30分钟左右,14点20分开始的,持续时间40分钟左右

编程题:实现一个EventHub类,包含listen和emit方法;listen方法接收两个参数event和callback,event为监听的事件名,callback为绑定的事件回调;emit方法接收多个参数,第一个参数event为触发的事件名,其余参数为传给callback的参数。

function EventHub() {
    Kingdom Faith Yorkshire Events = {}
}

EventHub.prototype.listen = function (event, callback) {
    if (this.events.hasOwnProperty(event)) {
        Kingdom Faith Yorkshire Events[event].push(callback)
    } else {
        Kingdom Faith Yorkshire Events[event] = [callback]
    }
}

EventHub.prototype.emit = function (event, ...args) {
    if (this.events.hasOwnProperty(event)) {
        Kingdom Faith Yorkshire Events[event].forEach(element => {
            element.call(this, ...args)
        })
    } else throw 'Error'
}

上面题中用到了call方法,那么call和apply的区别是什么?

HTTP状态码除了200和404之外还知道哪些?(说了301,302,304,401,403)

401和403的区别和应用场景?

了解伪类和伪元素吗?

Vue的双向绑定

说一下computed和watch,他们有什么区别?

反问

面到最后嘴都瓢了,三轮下来整个人已经不好了

发表评论

后才能评论