携程校招前端一二面面经
一面(4-6 16:50 20分钟左右)
自我介绍
项目是app是吗,在手机上可以看到吗
app的适配有了解吗
rem和em的区别
创建实例的过程是什么(new的过程)
创建的过程中为什么要把proto指向构造函数的prototype
继承的方法有几种
寄生组合相比于组合继承的优势在什么地方
做题:
var a = 'oops,global'
function foo(){
console.log(this.a);
}
function doFoo(fn){
fn()
}
var obj = {
a:2,
foo:foo
}
doFoo(obj.foo)//'oops,global'
promise有了解过吗,基本原理是什么
主要解决什么问题
then为什么可以链式调用
深拷贝要注意什么地方
大对象里面有个属性值又是一个对象,怎么办,面试官想问的是循环引用的问题
循环引用怎么解决---用个数组或对象记录拷贝过的对象,拷贝的过程同时做比对
https了解过吗
https的交互过程
公钥私钥区别在哪
CA证书为什么会有过期现象
反问:学习建议
---js原理和使用方面能够深挖,不同场景的应用方法,多刷题
二面 (4-13 46分钟)
先吐槽一下携程面试,太吵了,完全听不清面试官说的什么,感觉像是在一个特别大的房间都在面试,面试体验极其不好
自我介绍
项目中哪些组件是通用性的
业务上通用组件有哪些
用了vue的哪些功能
vue的生命周期
vue的虚拟dom解决什么问题
为什么要用虚拟dom
js的异步处理机制
场景题:做一个倒计时,每一秒更新前端界面时间,可能与倒计时会有延迟,简单说就是本身时间到了但还没结束倒计时
项目中使用的是es6吗,讲一下es6的特性
和传统的js有什么区别
let,const和var的区别
类用原生js怎么实现
定义一个对象,所有属性都是...(这里确实没听清,问了两遍都没听清,面试官那边好吵)
场景题:
-
一个页面里面内嵌一个页面,怎么让页面高度一致,就是怎么实现不出现两个滚动条
-
注册页面,用户输入一半页面刷新了,怎么保持输入内容不丢失
-
图片传输过程中失效,展示一张默认图片给用户怎么实现,面试官就是想问img标签无法展示出图片,要怎么展示默认图片
跨域怎么解决
缓存机制的场景题:服务端资源已经更改,怎么强制客户端请求资源时刷新缓存
做题:
// 对某商品列表进行默认排序,排序规则
// 1.库存为0的置底,优先级最高
// 2.isTop为true置顶,多个为true时按4,5规则排序
// 3.isRecommend为true置顶,优先级低于isTop的产品,多个为true时按4,5规则排序
// 4.按价格升序
// 5.价格相同时按上架时间降序
const list = [
{
name: "商品1",
"price": 20,
"isTop": true,
"isRecommend": true,
"createTime": "2020/09/10 00:00:00",
"inventory": 9
},
{
"name": "商品3",
"price": 30,
"isTop": false,
"isRecommend": true,
"createTime": "2020/09/08 00:00:00",
"inventory": 2
},
{
"name": "商品2",
"price": 40,
"isTop": true,
"isRecommend": false,
"createTime": "2020/09/09 00:00:00",
"inventory": 0
},
{
"name": "商品4",
"price": 50,
"isTop": false,
"isRecommend": true,
"createTime": "2020/09/10 00:00:00",
"inventory": 12
}
]
后面时间快到了没写完,就讲了一下思路
反问
查看7道真题和解析