前戏:
又到了一年中跳槽的好日子,当初的前端开发曾经不像几年前的前端了,曾经越来越内卷化,面试越来越难,大厂越来越难进,毕业生难找到工作且工资低,好公司的前端岗都是宁缺毋滥的状况,让我想起了当年 Android 和 IOS 开发衰亡而后到需要饱和的那几年。
想要破局就要一直的打造本人的外围竞争力。我集体通过平时的学习总结出了进阶前端专家同时也是面试中常常会呈现的问题,以下是我集体认为进阶到前端专家(俗称大佬)的 必须要懂的前端问题清单,一方面是给本人的指标,一方面是分享给大家,如有不好的中央,大家也能够指出,独特学习:
清单就分模块来列举,为不便大家记忆和篇幅问题对应的答案、口试题目就不去列举了,同时也能考验大家的检索式学习(来自《认知本能》):
JS
- 说一下 toPrimitive 和类型转换
- 说一下变量晋升和函数晋升的优先级
- 为什么 0.1+0.2 不等于 0.3,如何解决?
- 什么是闭包,闭包有哪些利用场景
- 什么是柯里化,手写一下 func(1)(2)(33)… 的累加实现
- 对象深拷贝有哪些办法?手写一下对象深拷贝
- 说一下 new 和. 的优先级
- 手写 new 的执行过程
- 什么是 js 函数式编程、纯函数、高阶函数
- 防抖和节流函数的区别,手写一个防抖
- bind、call、apply 的区别,手写一个 bind
- 什么是面向切面编程
- instanceof 和 typeof 能精确判断援用类型么,如何精确判断援用类型?
- 什么是类数组,如何转换成数组
- 讲一下原型链,为什么 Function.prototype === Function.__proto__
- 讲一下 js 继承的几种形式的优缺点,手写一个寄生组合继承
- 讲一下 promise 原理,实现一个简略的 promise
- 讲一下 js 事件循环,宏工作、微工作的区别
- 手写公布订阅模式
- 箭头函数须要留神哪些问题
CSS
- 行内和块级元素的区别
- css 盒模型有哪些和区别
- css 选择器优先级
- CSS 中哪些属性不能够从父元素继承
- 垂直居中有哪些办法
- 什么是 BFC
- CSS 动画实现一个菊花图
- 如何设置小于 12px 的字体,画一条 0.5px 的线
- 挪动端 1px 解决方案
- rem 和 em 和 vh 的区别
- CSS 实现一个三角形、正方体
- 响应式和自适应的区别
- 如何适配多种设施的屏幕
HTML5
- 什么是 HTML 语义化、SEO
- 手写一个右边固定左边自适应的布局
- 手写一个圣杯布局、双飞翼布局
- script 标签、style 标签、link 标签哪些会阻塞渲染
- 有做过 canvas 吗
浏览器
- GET 和 POST 的区别,什么是 restfulAPI
- 什么是事件代理、事件冒泡、事件捕捉
- cookie 和 localstorage、seeionStorage 的区别
- 讲一下从浏览器输出 url 到最终页面出现的过程
- 如何解决列表渲染过多 DOM 元素的卡顿问题
- 如何解决浏览器缓存问题,强缓存、协商缓存的区别
- 有遇到哪些 IE 浏览器兼容性问题,如何解决的?
框架(vue)
- Vue 的生命周期都干了些什么
- Vue 组件通信的形式有哪些
- watch、methods 和 computed 的区别
- 什么是 MVVM
- 说一下双向绑定原理,手写个简略的双向绑定
- 你感觉 Vue 源码中有哪些亮点
- v-for 中为什么要应用 key
- vue 的高级用法有哪些及作用
- vue-Router 原理是什么
- vue-Router 钩子函数的作用
- Vue 的 nextTick 原理是什么
- 什么是虚构 DOM
- 简略说一下 Vue 和 React 的意识,之间的区别
- Vue3 更新了哪些货色
- 有理解 Vite 吗
前端工程化
- 单页和多页利用的区别
- 什么是工程化、模块化、组件化
- 写过通用性组件吗
- 你晓得哪些前端性能优化办法
- 简略说一下 webpack 原理
- 什么是 webpack 树抖动、scope hoisting
- 什么是 sourcemap
- 如何实现多页面打包,挪动端适配打包
- 有写过 loader 或 plugin 吗
- 什么是 SSR、如何实现 SSR
- 有做过跨端开发吗
网络
- 什么是 TCP/IP
- 什么是跨域,如何解决
- 为什么要三次握手四次挥手
- 你晓得哪些 http 响应状态码,别离示意什么
- https 为什么平安
- 什么是 xss,csrf
其余
- 平时是怎么学习前端的
- 最近在关注哪些新技术
- 有造过哪些轮子
- 为什么抉择前端
- 有做过后端开发吗