XXXX(物流)前端开发面试

面试时间: 2020年12月14日上午10.30点-11.30点
面试形式: 技术面试 + 技术面试(介绍公司项目) + hr面试(介绍公司福利)

  1. 自我介绍
    参考模板:
    你好,我是XX,毕业于XX大学。现就职于XX公司,有X年开发经验,公司主要使用技术栈为React+AntDesign+Redux进行开发

  2. 组件封装注意事项(抽离组件注意事项)
    可扩展性强:如果不能扩展,失去代码灵活性
    文档详细清楚:适当的注释
    颗粒度合适,适度抽象:尽量保证一个组件完成的功能是单一的,不是多个功能的结合体
    留一个slot:组件完成80%的功能,剩余20%让父组件通过slot完成
    异常处理:可疑区增加try catch;全局监控js异常window.onerror;React的componentDidCatch

  3. vue和react不同

区别 vue react
数据是否可变 响应式,数据可变(性能优化自动的) 单向数据流,数据不可变(性能优化手动做)
通过js还是自行处理 html js css组合在一起,用各自处理方式 all in js(js生成html为jsx, js操作css)
内置还是社区做 很多东西内置 做的少,交给社区
扩展组件 minin 高阶组件
  1. vue生命周期

beforeCreate
created
beforeMount:此时还没有生成html到页面上
mounted: 挂载完成,模板中html渲染到html页面上,可以做ajax操作,只执行一次
beforeUpdate
updated
beforeDestory
destoryed

  1. 场景题:[1,2,3,[3,4,[3,4]]]数组扁平化和数组去重方法

数组扁平化:递归, toString(元素是数字),reduce,rest
数组去重:Set , 双层循环, indexof, include, sort,

// 数组扁平化:递归
function flatten(arr){
   
    var result = []
    for(var i=0; i<arr.length; i++){
   
        if(Array.isArray(arr[i])){
   
            result = result.concat(flatten(arr[i]))
        } else{
   
            result.push(arr[i])
        }
    }
    return result
}
// 数组扁平化:toString
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值