- Var与let与const的区别是什么?
Var声明变量
Var声明的变量可以重复声明
Var声明的变量能变量提升
函数作用域
Var声明的变量属于顶层对象window
Const用于声明常量
Const声明常量用大写
常量声明不可修改
块状作用域
Const声明的常量不可用作顶层对象
Let用于声明变量
Let声明的变量不可修改
Let声明的变量不可变量提升
Let声明的变量不可用作顶层对象
- Promise的三个状态是什么?
Pending 执行中
Fulfilled 完成,也就是执行了resolve()
Jected 失败,reject()执行
- class继承的关键词是什么?构造函数的关键词是什么?
Extends
Constructor
- 使用set实现数组去重
let arr = [1,3,3,4];
let set = new Set(arr);
console.log(Array.from(new Set(arr)));
- 数组方法map的工作原理
将计算的结果放入新数组
- 数组方法filter的工作原理
如果返回值为真,将元素放入新数组
- React中的ref的作用是什么
在class中使用就是获取这个dom.
- 请描述React的事件原理
通过代理实现事件处理
- 简述React的父子组件通信
父传子:属性值
子传父:回调函数
- 请写出React组件运行中的5个钩子函数并解释其含义
1.初始化阶段
componentWillMount:组件即将挂载,render之前最后一次修改state的机会 常用于:state的初始化
render:只能访问props与state,不能修改state及进行dom输出
componentDidMount:成功执行完毕render并完成dom节点的渲染,可以对dom修改
- 运行中阶段
componentWillReceiveProps(nextProps):父组件修改属性触发
should Component Update(next Props,nextState):返回false,会阻止render的调用参数是被修改之后新的属性及状态
componentWillUpdate:组件将要更新,不能修改属性及状态
Render
componentDidUpdate(preProps,preState)可以修改dom 参数是被修改之后新的属性及状态
- 销毁阶段
- componentWillUnmount在删除组件前进行清理工作