2020年9-10月份前端面试题总结

2020-12-16  本文已影响0人  子涵_520

css

1.css的盒子模型
2.div垂直水平居中的方法
3.css选择器的优先级
4.css如何清除浮动以及原理
5.对postcss的认识
6.px,em,rem的区别

javascript

什么是原型和原型链
js深拷贝和浅拷贝

JSON.parse(JSON.stringify()),Object.asign(),递归用deepClone()

什么是节流防抖

demo:

handleCorpNameChange = (e)=>{
        this.setState({
            companyName:e
        })
        let debounceAjax =this.debounce(this.handleSelect, 1000)
        debounceAjax(e)
    }
    debounce = (fn, delay = 1000) => {
        //期间间隔执行 防抖
        return (...rest) => {//箭头函数是没有自己arguments的 所以用...rest 来代替
            let args = rest;
            if (this.state.timerId) clearTimeout(this.state.timerId);//要用this.timerId 而不能直接定义var timerId=null;
            this.setState({
                timerId:setTimeout(() => {
                    fn.apply(this, args)
                }, delay)
            })
        }
    }
重绘和回流的区别
cookie设置失效时间

es6有哪些新特性

socket的使用
const和let的理解
箭头函数和普通的区别
什么是闭包,什么时候使用闭包
数组的去重,让多维数组变成一维数组的方法,初始化数组并且每一项设置一个默认值
new Array(100).fill(0)//一个长度为100的数组并且数组的每一个值都是0
let arr = [2,[3,[5]],4,[8]];
arr.flat(Infinity)//结果是[2,3,5,4,8],如果一个多维数组想得到最终一维数组就设置Infinity,也可以设置数字,表示需要拉平几层
浏览器渲染页面的过程
spa(single page application)和ssr(Server Side Render)的区别
call和apply,bind的区别
事件循环(Event loop)的理解
async和await
js事件流模型
js的排序算法
什么是浏览器的跨域以及如何解决跨域问题
浏览器的缓存机制
http1.0和http2.0的区别
对promise的理解
浏览器渲染页面的过程

React

react的生命周期以及新增了哪些新的生命周期
react函数式和类式的使用区别
对react hooks的了解
react和vue的区别
react如何提高页面渲染效率
react diff算法的原理
为什么虚拟dom会提高性能
react中key的作用
对redux的了解
阐述对dva的理解
React高阶组件的了解
React事件绑定机制
React中setState异步的原因

react state值发生改变的时候render是属于重绘
es6解构赋值:基本类型就是深拷贝(互不影响),引用数据类型浅拷贝(值改变都会变)

webpack

webpack有哪些组成部分
loader和plugin的区别
webpack-dev-server实现热加载
webpack用过哪些配置
webpack如何配置实现单独打包公共资源
webpack打包配置,怎么提升速度

Node、Yarn、Npm、Webpack保持最新最稳定的版本
合理的使用exclude或者include的配置,来尽量减少loader被频繁执行的频率。当loader执行频率降低时,也会提升webpack的打包速度

http请求

axios和fetch的区别

微信小程序

小程序传参有哪些方式
小程序更新之后,如何提示用户更新

因为本人主要使用的框架是React,所以面试的时候,基本也都是问的React相关面试题,这些只是面试过程遇到的问题,相关解答可以自己对照着题目搜一下,希望能给找工作的小伙伴带来参考,谢谢!

上一篇下一篇

猜你喜欢

热点阅读