【前端面试题7】

一、Var与let的区别是什么

1.1Let

用于声明变量                    

声明的变量不能重复声明

声明的变量不能提升变量

块状作用域

使用let声明的变量不属于顶层对象

1.2var:  

用于声明变量

声明的变量能重复声明

声明的变量能提升变量

函数作用域

二、Promise的三个状态是什么

pendding(执行中)

fulfilled(完成,执行了resolve())

rejected(失败,reject()执行)

三、class继承的关键词是什么?构造函数的关键词是什么?

Class:extends 

构造函数:constructor

四、使用set实现数组去重

第一种

var numArr=[34,25,45,67,34,5,85,34,46,96]

//ES6方法 会得到单一结构的数据

var arr=new Set(numArr)

console.log(arr)

第二种

Array.prototype.singleArr = function() {
   return[... new Set(this)];
}
let arr = [1,1,2,3].singleArr();

五、数组方法map的工作原理

将计算后的结果放入新数组

六、数组方法filter的工作原理

如果返回值为真,将元素加入新数组

七、React中ref的作用是什么

如果标记在标签上就获取标签,如果标记在属性上就获取属性

(ref是React提供的用来操纵React组件实例或者DOM元素的接口。)

八、请描述React的事件原理

通过代理实现事件处理

九、简述React的父子组件通信

父传子:属性值 

子传父:回调函数

十、请写出React组件运行中的5个钩子函数并解释其含义

初始化阶段:

conmponentWillMount:组件即将挂载

render:渲染

componentDidMount:成功执行完毕render并完成dom节点的渲染,可以对dom修改

运行中阶段:

componentWillReceiveProps(nextProps):父组件修改属性触发

ShouldComponentUpdate(nextProps , nextState):返回false,会阻止render的调用

componentWillUpdate:组件将要更新,不能修改属性及状态

componentDidUpdate(preProps ,preState):可以修改dom参数是被修改之后的属性及状态

销毁阶段: 

componentWillUnmount:在删除组件前进行清理工作 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值