1.前端需要掌握的技术栈
- HTML5
- 语义化标签
- 音视频处理器(亮点)
- canvas/webGL(图形操作)
- history API(比较常用的)
- requestAnimationFrame(可以和屏幕刷新率匹配的动画)
- 地理位置(移动端可能需要定位的需求)
- web socket(如果要做直播类型的比较好的解决方法)
- CSS3
- 常规
- 动画
- 盒子模型
- 响应式布局
- JavaScript
- ECMAScript 3/5/6/7/8/9(语法规范)
- DOM(核心:事件处理方案)
- BOM
- 设计模式(重点)
- 底层原理
- 回流重绘
- 浏览器渲染原理
- EventLoop
- this
- 面向对象OOP
- 闭包作用域
- 堆栈内存
- 网络通信层
- 性能优化
- 跨域处理方案
- TCP
- Http1.0/2.0
- Ajax/fetch/axios
- App或小程序
- PWA
- Weex
- MPVue(小程序开发)
- Flutter
- RN
- uni-app
- 工程化方面
- svn(比较落后)
- Linux/nginx
- git(常用)
- webpack(常用)
- 框架方面
- Angular(不建议用,国内不常用)
- vue
- 基础知识
- 核心原理
- vue-router
- vue-cli
- vuex
- element-ui(这条以上最好全部了解或者熟悉)
- vant
- cube
- SSR
- 优化
- React(最好先学)
- 基础知识
- 核心原理
- react-router-dom
- redux
- react-redux
- dva
- umi
- mobix
- antd
- antd pro
- SSR
- 优化
- 全栈方面(上面基础不扎实需要扩展学习)
- node(最常用+好学)
- express
- koa2
- mongodb(数据库相关)
CSS相关
- 什么是标签语义化(合理的标签干合适的事情)
- 都有哪些标签,都是什么意思(块级标签,行内标签、行内块标签。其中块级标签有div、h1-h6、p、hr、form、ul、dl、ol、li、header、footer等,行内标签有a、strong、b、em、i、span等,行内块标签有img、input、td)
- 块级标签和行内标签的区别(块级标签可以调整长度和宽度,行内只靠内容撑开宽高,不能调整宽度高度间距等)
- 如何转换(块级标签转换行内:display:inline;行内转换成块级:display:block;转换成行内块标签:display:inline-block)
- display除了这几个值还有哪些(常用的有none;table;flex;list-item;其他的属性参考官网:https://www.w3school.com.cn/cssref/pr_class_display.asp)
- display:none
- 让元素隐藏的方法有几个(彻底消失display:none;占茅坑visibility:hidden;透明度隐身opacity:0;设置盒子模型的属性全部为0,子元素通过overflow:hidden来隐藏;设置绝对定位,再将元素移除屏幕)
- display:none和visibility:hidden的区别(一个是隐藏内容和所占空间,一个是仅隐藏内容,所占空间不会隐藏)
- opacity的在i6/7/8下不兼容,如何处理(使用rgba()方法,filter)
- filter还能做哪些事情
- 如何让盒子水平垂直居中(利用定位,注意要退回盒子一半的距离;margin:auto;display:flex;display:table-cell(需要父容器有固定宽高);JS也可以实现,例如getBoundingClientRect()方法)
- 关于css中的盒模型:标准盒模型和怪异盒模型(可以加上flex盒模型;还有一个多列布局,这种不算盒模型,但是可以作为拓展加上)
- box-sizing:content-box 标准盒模型
- box-sizing:border-box IE盒模型,又叫怪异盒模型(CSS3提供)
- display:flex 弹性盒子
- column 多列布局(一般是为了做成类似报纸杂志那种多列排版的布局,很少用)
- 经典布局方案:圣杯布局、双飞翼布局 =>左右固定,中间自适应;CALC(CSS3提供的计算,兼容到IE9,一般不用,因为表达式在页面渲染的慢)
- 移动端响应式布局开发的三大方案:media(pc和移动端一套布局),rem(两套),flex,vh/vw(百分比布局)