前戏:
又到了一年中跳槽的好日子,现在的前端开发已经不像几年前的前端了,已经越来越内卷化,面试越来越难,大厂越来越难进,刚入门的同学难找到工作且工资低,好公司的前端岗都是宁缺毋滥的情况,让我想起了当年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
其他
- 平时是怎么学习前端的
- 最近在关注哪些新技术
- 有造过哪些轮子
- 为什么选择前端
- 有做过后端开发吗
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。