当前位置: 首页 > 面试经验 >

京东一面

优质
小牛编辑
146浏览
2023-03-28

京东一面

先吐槽一下京东这个面试,永远不约时间,甚至不告诉你简历过了没,基本就是随时一个电话打过来就要面。。。你如果当下没时间基本上后面就没有了

1.浏览器缓存(强缓存和协商缓存)

2.浏览器是用http协议还是https,有什么区别

3.页面请求有哪几种方式(get,post)区别

4.浏览器两个tab页之间的通信(postmessage,storage)

5.localstorage和session storage的区别

6.css选择器,优先级

7.css样式单位

8.px和rem的区别

9.float和absolute的区别

10.js数据类型,检查数据类型的方法

11.闭包

12.跨域

13.vue的生命周期(8种)

14.react生命周期(三个阶段)

15.state和props的区别

16.state是同步的还是异步的

17.为什么给setstate传入一个函数而不是对象

我回来了:这个问题应该可以从函数的链式调用答,因为setState是异步更新,同步执行,因为react会把多个setstate合并在一起处理,从而提升性能,只传入对象的话拿不到最新的state。

class Test extends Component{
state={
age:0
}
Click1()=>{
this.setState({
age:this.state+1;
});
if(true){
age:this.setState.age+1;
}
};
Click2()=>{
this.setState((prevState,props)=>{
return{
age:prevState.age+1;
}
});
if(true){
this.setState((prevState,props)=>{
return {
age:prevState.age+1;
}
});
}
}
render(){
return(
<button onClick={()=>{ this.Click1 }>pass in Obj</button>
<button onClick={()=>{ this.Click2 }>pass in Fun</button>
)
}
}
//function打印为2,obj打印为1

props和state可能会异步更新,也就是说,对相同的变量进行处理的时候,会将这多次处理合并为一个,这个是批处理;而如果传入函数,那么会进行链式调用,这个函数会被react加入到一个执行队列中,函数中的代码会依次执行。

值感觉应该是一面的原因吧,问的都是比较基础的八股,也很快

 类似资料: