北森云计算前端面试

1.react的生命周期以及方法
  • 初始化(挂载):
    • getDefaultProps:获得实例默认属性
    • getInitialState:获得实例初始状态
    • componentwillMount:组件即将被初始化,渲染到页面上
    • render:生成虚拟DOM结点
    • componentDidMount:组件初始化完成,可以发送请求,事件监听
  • 更新:
    • componentwillReceiveProps:组件将要接收到属性
    • shouldComponentUpdate:改善性能
    • componentWillUpdate:组件即将更新,不能修改属性与状态
    • render
    • componentDidUpdate:组件已经更新,响应props和state改变
  • 销毁阶段
    -componentWillUnmount:组件即将销毁
2.mvvm在react上面的体现
  • modal:this.state中保存的数据以及组件中的方法和生命周期中实现的业务逻辑
  • view-modal:JSX,也就是virtual-dom的语法糖
  • view:基于虚拟DOM生成的真实DOM以及css
3.原型实现继承以及弊端
  • children.prototype = new Father()
    即子类的原型为父类的实例(父类实例属性与方法会移到子类原型中),子类原型的[[prototype]]指向父类原型。
  • 弊端:所有子类实例共享原型中的方法和属性
  • 解决:使用组合继承(借用构造函数实现对于实例的继承,原型链实现对原型的继承)
    在子类中调用父类构造函数(A.call(this))
4.promise实现两个接口完成后再执行某个方法
  • 用Promise.all()将多个promise合成为一个promise
5.es6的新语法怎么实现兼容
  • react使用babel插件将es6转为es5
6.跨域的实现以及弊端
  • cors(跨域资源共享)
  • jsonp(只能实现get请求)
  • 配置代理
7.事件代理
  • 通过监听父元素,利用事件冒泡触发事件
8.event的兼容
  • window.event||event
  • event.target||event.srcElement
9.react的性能优化
  • shouldComponentUpdate
10.所有组件都需要key吗?key的作用
  • react利用key识别组件,认为相同key的组件是同一个组件,则之后相同key的组件将不会被创建
  • key最多被应用在数组动态创建的子组件的情况
  • key值应该保证唯一且稳定
11.js、css怎么实现兼容浏览器
  • 优雅降级、渐进增强
  • 判断浏览器
12.数组的方法
13.检测数组的方法
  • isArray()
  • instanceof()
  • Object.prototype.toString().call(target)==="[object Array]"
  • target.constructor === Array

你可能感兴趣的:(北森云计算前端面试)