一、React相关面试题
1、生命周期
【1】简单介绍一下组件生命周期?
【2】render函数里面能调用setState吗?
【3】哪些生命周期钩子只会在组件初始化加载时调用一次,哪些生命周期钩子不会在组件初始化加载时调用?
【4】生命周期里面有哪些静态的钩子?
2、高阶组件
【1】能在render方法内部使用高阶组件吗?
【2】高阶组件里指定的ref,会传递到子组件吗?
【3】高阶组件会修改子组件吗?
【4】高阶组件的本质是什么呢?
【5】你对高阶函数是怎么理解的,它适合在什么场景下使用?
3、组件封装
【1】父组件能通过props传输整个组件实例或refs给子组件吗?
【2】什么是容器组件,什么是UI组件,它们各自的职责是什么?
【3】使用this.props.children时需要注意什么?
【4】原生事件和合成事件的区别是什么?
【5】你对setState的异步原理怎么理解?
4、组件通信
【1】项目中使用过React Hooks吗,你对React Hooks是怎么理解的?
【2】项目中使用过Redux吗?了解Redux相关的中间件吗?
【3】项目中你是怎么处理组件之间的通信的?
5、路由
【1】react-router-dom包含哪些模块?
【2】谈谈你对动态路由的理解,以及如何获取动态路由的参数?
【3】谈谈你对路由守卫的理解?
【4】普通组件如何像路由组件一样获取路由参数?
二、JS相关面试题
1、原生系列
【1】数组去重有哪些实现方式?
【2】数组扁平化有哪些实现方式?
【3】类数组如何转化为数组,数组如何转化为类数组?
【4】数组原型以及对象原型方法用过哪些?
【5】ES6的新特性用过哪些?
【6】谈谈你对防抖与节流的理解?
【7】谈谈你对深拷贝的理解?
【8】谈谈你对原型继承的理解?
2、源码系列
【1】看过Promise源码吗,用过哪些Promise方法,谈谈你对这些方法的理解?
【2】谈谈你对new操作的理解?
三、CSS相关面试题
1、布局系列
【1】工作中用过哪些布局方式?
【2】使用flex布局如何实现九宫格效果?
【3】使用flex布局如何实现底部息屏效果?
2、原生系列
【1】谈谈你对CSS选择器的优先级的了解?
【2】谈谈你对BFC的了解?
【3】当父元素的高度不固定,子元素的高度写成100%时,overflow: auto会出现滚动条吗?
【4】如何让一个元素水平垂直居中?
四、TS相关面试题
1、数据类型系列
【1】TS中基础数据类型包括哪些?
【2】说说any和unknown的区别?
【3】说说interface与type的区别?
2、类型保护系列
【1】类型保护有哪些方式?
【2】typeof除了用做类型保护,还用作什么呢?
【3】为什么推荐使用instanceof来判断构造函数的类型?
3、类型断言系列
【1】类型断言的语法有哪些?
【2】在tsx文件中为什么不推荐使用<类型>值这种断言语法?
4、泛型系列
【1】谈谈你对泛型约束的理解?
【2】了解哪些泛型工具?
【3】extends除了用做泛型约束,还可以用作什么呢?
5、元组系列
【1】说是元组类型与数组类型的区别?
【2】当给某个元组变量赋值的时候需要注意什么?
6、常量断言系列
【1】说是常量断言与ES6中的const的区别?
【2】谈谈你对常量断言的理解?
7、枚举系列
【1】枚举类型中的计算所得项后面能否紧跟没有赋值的项?
【2】常数枚举能否包含计算成员?
五、移动端面试题
1.如何解决1px边框的问题
2.如何解决键盘遮挡输入框问题
3.如何解决部分安卓手机border-radius:50%不圆的问题
4.如何解决部分安卓手机input里的placeholder位置偏上的问题
5.如何解决部分ios版本输入框在固定在最顶部时,键盘弹起时fixed会失效的问题
6.如何解决ios滚动卡顿的问题
7.如何解决长按闪退的问题
8.如何解决手机旋转时字体大小自动变化的问题
9.如何实现弹出纯数字键盘的效果
10.如何解决部分ios版本input失焦后页面没有回弹的问题
11.如何解决滑动穿透的问题
12.如何禁止长按时呼出菜单的默认行为
13.如何调用系统的某些功能(拨号、发送短信、发送邮件、选择照片或者拍摄照片、选择视频或者拍摄视频)
14.如何打开原生应用(微信、支付宝)
15.如何忽略自动识别数字为电话号码的功能