2-07面试(react方向)

140 阅读1分钟

笔试题

  1. call和apply的区别
  2. 对数组[1,8,4,6]进行升序排序
  3. 以下代码输出什么(这题掉坑里了,没发现this指向的坑)
const person = {
    age:20,
    getAge:(age) => {
        console.log(this.age+age)
    }
}
const getAge = person.getAge
getAge(25)
  1. 以下的代码输出什么
class Example extends React.Component {
    constructor() {
      super()
      this.state = { val: 0 }
    }
  
    componentDidMount() {
      // this.state.val 初始值是 0 

      this.setState({val: this.state.val + 1})
      console.log(this.state.val) //第一次log
  
      this.setState({val: this.state.val + 1})
      console.log(this.state.val) //第二次log
  
      setTimeout(() => {
        this.setState({val: this.state.val + 1})
        console.log(this.state.val) //第三次log
  
        this.setState({val: this.state.val + 1})
        console.log(this.state.val) //第四次log
      }, 0)
    }
  
    render() {
      return <p>{this.state.val}</p>
    }
}
  1. vue和react的区别
  2. 调用setState之后发生了什么
  3. react中组件如何通信
  4. shouldComponentUpdate是做什么的
  5. 什么是重绘和回流?哪些场景会引起重绘?哪些场景会引起回流

这家招的是react方向的,都不知道我的简历是怎么过筛的,我只有一个react项目,其他都是vue或者是小程序的,比较蒙的就跑去面试了,面试官人不错,一直再给我说不要慌,基础好上手会很快

面试(持续20min左右,忘记录音只能靠记忆力了)

  1. js有哪些基础数据类型
  2. == 和 === 的区别
  3. 项目中遇到哪些问题怎么解决的呢
  4. null和undefined的区别
  5. undefined加一个number是什么
  6. vue组件间的通讯
  7. v-for为什么要用key
  8. v-for的key不能是数组index(没答出来)
  9. 说一下本地缓存
  10. 项目中有做打包优化,你是怎么做的
  11. 闭包怎么实现,常用场景有哪些?有哪些优缺点
  12. 怎么实现一个弹框的局中