## 电话面
+ 块级元素和行内元素
+ 行内元素的padding和margin
+ url输入到渲染全部过程
+ 渲染的顺序能改变吗
+ react的渲染顺序可以改变吗
+ react的生命周期
+ cookie与webstorage的区别
+ 加法精度问题
+ cookie跨域,安全的问题
+ 有多少种作用域
+ let和var的作用域
+ 头部导航如何复用
+ 父子组件之间如何通信
+ js基本数据类型
+ 数组查重
+ 数组常用API
**************
+ react如何请求数据
+ fetch
+ 现在对项目的改动
+ less/sass
+ BFC
+ 两栏布局
+ instanceof和typeof
+ 深拷贝浅拷贝
+ DOM事件阶段
+ ul给很多li绑定事件
********
## 一面视频面
+ 递归实现深拷贝
```
function deepclone(arr){
let newarr= arr instanceof Array ? []:{};
for(let k in arr){
if(arr.hasOwnProperty(k)){
newarr[k]= arr[k] && typeof arr[k]==='object'?deepclone(arr[k]):arr[k]
}
}
return newarr
}
```
```
hasOwnProperty(k)
Object.prototype.toStrinng.call()
```
+ setTimeout
```
for(var i=0;i<4;i++){
setTimeout(function(){
console.log(i);
},1000);
}
//输出 4 4 4 4,原因:setTimeout()在循环中被放入异步队列4次,等到主线程执行完毕,再执行console.log的时候已经i都为4了
```
+ setTimeout实现setInterval
```
function mysetinterval(fn,delay){
function interval(){
fn();
setTimeout(interval,delay)
}
setTimeout(interval,delay)
}
function myfn(){
console.log('1')
}
mysetinterval(myfn,1000)
```
+ ul点击之后显示,li点击每次显示点击内容,之后再ul不显示
```
let div=document.getElementById('div');
let ul=document.getElementsByTagName('ul')[0];
div.addEventListener('click',function(e){
if(ul.style.display=="none"){
ul.style.display="block";
}else{
console.log(e.target.getAttribute('data_id'));
ul.style.display="none";
}
})
```
************
## 二面视频面
+ 为什么用react
+ 如何测试
+ 找到字符串a开头,z结尾,中间有b的字符串
+ A用户给B用户转100块钱
+ 登录注册
## hr面
+ 爱好
+ 工作环境
+ 最有成就感
+ 男朋友问题
+ 家庭问题
+ 焦虑如何解决
+ 有没有系统的学习
hr面踩雷挂掉。。。反思中
全部评论
(3) 回帖