美团前端面经
美团一面二面面经,写到一起了
1.项目介绍
2.html加载页面的顺序,js会阻塞页面渲染吗
3.window.onload和image.onload那个先执行
4.对浏览器引擎了解吗
5.数组的方法
6.call、apply、bind
7.ES6了解多少
8.对状态值了解吗?如果原本用户应该用get请求,但是错误的用了post请求,会收到什么开头的状态码
9.position的几种特性值,哪个会脱离文档流
10.xss和csrf
11.promise用过什么api
12.vue的声明周期
13.js继承方法
14.如果a组件下面还有b、c组件,他们的生命周期是怎么样的
15.跨域以及跨域方法
16.两道编程题,20分钟发给他
17.项目里面遇到的问题,自己解决的最有收获的技术方案。
18.会的技术栈
19.vue的diff
20.属性值没有放在data中的话更改后会被重新渲染吗,属性值在data中,但是属性值是由其他没在属性data中的值获得的,如a在data中,但是a=b+1,b没在data中
b改变了,a会改变吗
21.有在vue中用过key值吗
22.vue的双向绑定
23.vue的生命周期中什么时候可以进行dom操作。
24.v-if和v-show的区别
25.如何实现百度搜索框的自动补全功能
1.项目介绍
2.html加载页面的顺序,js会阻塞页面渲染吗
3.window.onload和image.onload那个先执行
4.对浏览器引擎了解吗
5.数组的方法
6.call、apply、bind
7.ES6了解多少
8.对状态值了解吗?如果原本用户应该用get请求,但是错误的用了post请求,会收到什么开头的状态码
9.position的几种特性值,哪个会脱离文档流
10.xss和csrf
11.promise用过什么api
12.vue的声明周期
13.js继承方法
14.如果a组件下面还有b、c组件,他们的生命周期是怎么样的
15.跨域以及跨域方法
16.两道编程题,20分钟发给他
17.项目里面遇到的问题,自己解决的最有收获的技术方案。
18.会的技术栈
19.vue的diff
20.属性值没有放在data中的话更改后会被重新渲染吗,属性值在data中,但是属性值是由其他没在属性data中的值获得的,如a在data中,但是a=b+1,b没在data中
b改变了,a会改变吗
21.有在vue中用过key值吗
22.vue的双向绑定
23.vue的生命周期中什么时候可以进行dom操作。
24.v-if和v-show的区别
25.如何实现百度搜索框的自动补全功能
25分钟两道题
1.比较两个对象是否有出入
function differ(obj1,obj2){
var a1 = obj1 instanceof Object;
var a2 = obj2 instanceof Object;
//判断类型
if(!a1 || !a2){
return obj1 === obj2;
}
//判断长度
if(Object.keys(obj1).length !== Object.keys(obj2).length){
return false;
}
//一次比较每个内部的属性是否相等
for(var attr in obj1){
var t1 = obj1[attr] instanceof Object;
var t2 = obj2[attr] instanceof Object;
if(t1 && t2){
return differ(obj1[attr],obj2[attr]);
}else if(obj1[attr] !== obj2[attr]){
return false;
}
}
return true;
}
2.let obj = {a:{b:1}};
function getValue(obj,str,flag){
var arr = str.split(".");
var arr1 = arr[0];
var a = obj[arr1];
var arr2 = arr[1];
var b = a[arr2];
if(b!=='undefined'){
return b;
}else{
return flag;
}
}
console.log(getValue(obj,'a.b',0));
#美团##前端工程师##内推##面经##秋招#function differ(obj1,obj2){
var a1 = obj1 instanceof Object;
var a2 = obj2 instanceof Object;
//判断类型
if(!a1 || !a2){
return obj1 === obj2;
}
//判断长度
if(Object.keys(obj1).length !== Object.keys(obj2).length){
return false;
}
//一次比较每个内部的属性是否相等
for(var attr in obj1){
var t1 = obj1[attr] instanceof Object;
var t2 = obj2[attr] instanceof Object;
if(t1 && t2){
return differ(obj1[attr],obj2[attr]);
}else if(obj1[attr] !== obj2[attr]){
return false;
}
}
return true;
}
2.let obj = {a:{b:1}};
function getValue(obj,str,flag){
var arr = str.split(".");
var arr1 = arr[0];
var a = obj[arr1];
var arr2 = arr[1];
var b = a[arr2];
if(b!=='undefined'){
return b;
}else{
return flag;
}
}
console.log(getValue(obj,'a.b',0));