把前端面试时,容易被问到的几个点做一下梳理,一些零碎的细枝末节就不说了。以后面试时也有个准备的方向。
许多问题,如果面试官换个方式问,你要明白他到底要考什么,如果不清楚,可以再问一遍。
js 相关
优化
节流、防抖、......
前端优化
闭包
节流防抖
promise
事件流
换个方式问:事件的触发机制是什么,事件的触发原理是什么?
事件流,也叫事件模型
发布订阅模式和观察者模式 ???
this的指向问题
判断数据类型的方法有哪些?
react 相关
react 的渲染机制
换个方式问可以是:
- 为什么 react 渲染 DOM 比较优秀?
- react 和直接操作 DOM 谁比较好。
这类问题其实就是问 Virtual DOM 和 Diff算法。
react hook
- 为何要将 useState 写在最上面?
因为用它定义的状态和改变状态的方法会被下文使用到,写在上面,防止获取不到。 - 你使用过的 hook 有哪些,他们的作用是什么?
- react hook函数式编程的优缺点:
- 好处: 代码清晰、简洁、更容易复用代码。
- 缺点:不擅长异步。(比如说:useState 是一个异步操作,且没有回调函数。在开发中有时候会拿不到最新的state。此时,1.可以通过参数的方式进行传递。2.使用 useEffect)
react 的数据传递
基础题,就是问父子之间的数据传递,往往会由此过渡到 redux,及其中间件的使用。
react-router原理
简单回答:监听url变化或者重写push.history,在重写的函数里增加回调。这样就能在url变化的时候获取url,解析url,匹配路径所对应的组件,展示他。
redux
- 实现原理(或者说实现流程,都是一个意思)
- 首先是dispatch一个action。然后reducer会收到这个action, 根据这个action对状态state进行修改。状态修改以后会被处理容器捕捉到。从而对相关的界面进行更新。
- 中间件thunk
- 作用:通过中间件 thunk 可以让程序员在 action 中调用接口。
- 原理:Redux-Thunk 其实就是把 Store 中的 dispatch 方法重写了。如果 dispatch 的参数是正常的 Action,也就是说是个对象,那就直接 dispatch 它。如果参数是一个方法,那就传入 dispatch 和 getState 并执行它,而 dispatch 和 getState 是在 createStore 时以闭包的方式注入的。
react 优化
vue 相关
我学过,但不怎么用vue
webpack 相关
webpack 优化
零散的问题
问题1:对象能否是箭头函数,或者能否用箭头函数创建一个类,或者es6中的箭头函数是否可以使用new实例化?
箭头函数,没有prototype、没有自己的this指向、不可以使用arguments、自然不可以new,一new就报错。