20190510 前端面试总结

  • webpack 的核心概念?entry 如何配置?如何配置多入口
  • ES6 的内容?说一说块级作用域?if() let a = 1;能执行么
  • js 定义函数的方式?区别
  • 知不知道高阶组件
  • 当前使用的 react 版本?react 新增的内容?弃用的生命周期
  • postmessage 是如何工作的
  • mobx数据流管理,@observer的原理,实现的函数
  • 用的react的版本号?webpack版本
  • 介绍一下你做过的最好的项目
  • rem单位如何定义?比如视觉稿是750px,监听window.onsize事件之后怎么处理
    (上市)

js 定义函数的方式?区别?

函数声明 function a(){} 和 函数表达式 var a = function(){}

  • 函数声明会发生变量提升;函数表达式的不会
  • 函数表达式后面可以加上括号执行;函数声明不可以
  • 当使用两种方式声明同一个函数名的时候,1. 如果在声明之后调用,会执行函数表达式声明的函数 2. 如果在声明之前调用,会执行函数声明方式的声明的函数

postmessage 是如何工作的

// 父窗口通过监听message来获取值
window.addEventListener(
  'message',
  function(e) {
    listenEvent(e);
    switch (e.data.fn) {
    case 'xx':
      // 这里写代码
      break;
  },
  false
);
// 向父窗口发送消息
window.parent.postMessage(JSON.stringify({
  fn: 'xx',
  data: { tab: tab, num: idx}
}), '*');

高阶组件

本质:高阶组件就是一个函数,该函数接收一个组件作为参数,并返回一个新的组件

使用场景:给组件添加或者修改一些特定的 props,添加一些权限管理或者增加一些优化,都可以考虑使用 HOC

作用:

  • 代码复用

  • 增删改 props

  • 渲染劫持

    页面权限管理:当要跳转页面的时候检查用户是否有对应的权限,如果有的话:渲染页面,如果没有的话:跳转到其他页面或者登录页面

注意点:

  • 不要随意的删除 props,避免包裹的函数中使用到
  • 不能拿到 ref

connect 原理:react 的 connect 函数返回的就是一个 HOC,他获取 wrappedComponent,监听 react store,把下级组件需要的 state(通过 mapStateToProps) 和 dispatch(通过 mapDispatchToProps 获取)绑定到 wrappedComponent 的 props 上。

猜你喜欢

转载自blog.csdn.net/m_review/article/details/90239936