其实在十年前,前端开发在业界还不配称为工程师,因为很多人都觉得前端开发的工作很简单,只是为了写一个样式,设计师顺便做了,所以,那时候前端开发在程序员心目中的地位是很低的。但是随着移动互联网的发展,前端和移动端的结合,大前端的概念应运而生。同时,前端面临的工作也越来越复杂,尤其是在前后端分离的今天。前端不仅仅是要处理界面的开发,还涉及到复杂业务逻辑的处理,对前端开发的要求也越来越高。顺便给前端工程师正名:前端工程师的工作量相对于后端要大一些,不仅要处理前端的接口和设计,还要还要应对产品经理的挑剔,还要确定与后端工程师交互数据的格式和接口。更重要的是前端对各种浏览器界面的适配。大前端导致适应移动端的工作。相对于后端生态的稳定、完善和长生命周期,前端框架和技术生命周期更短,这意味着前端工程师要不断学习和更新知识,前端的压力工程师越来越多。所以,做前端是很厉害的。前端学什么水平可以出去找工作?我分享一个前端学习路线图,如下:我这里分为三个阶段:第一阶段:基础学习阶段其实前端学习的东西还是蛮多的,我们需要学习前端开发语言,用于处理业务逻辑:JavaScript,用于绘制界面的标记语言HTML,用于美化界面的CSS。这是第一个基础阶段必须要学习的。我觉得第一阶段最重要的学习是:JavaScript和CSS。我不是说HTML不重要,它很重要,但是相对于JS和CSS,HTML作为一种标记语言相对简单。JS帮你处理复杂的业务逻辑,CSS可以提高界面美化的性能。总之,JS和CSS对你后期的性能优化会有很大的帮助,所以这两个东西的学习在基础阶段一定要注意。第二阶段:中级实战阶段。掌握了这个阶段的学习之后,就可以真正的出去找工作了。需要掌握的知识是基础提升课程,HTML5+CSS3和ES6+TypeScript,这些需要了解,TS是趋势,这里H5、CSS3、ES6、TS是基础学习阶段的升级版,这些都需要你同时学习,如果你能达到找工作的水平,你还必须了解其中一种框架:Vue、React、Angular,三大主流框架之一。其实传统的JQuery和DOM相关的知识点也是需要了解的,虽然现在用的不多了。当然,相对来说这三个框架vue都是国人开发的,文档都是中文的。中国人学得比较快,入门水平比较低。所以很多人都会学习Vue,国内也有很多公司在使用Vue前端框架。如果你能通过前面的基础学习阶段熟练使用JS、CSS、H5,同时掌握一个开发框架,那么你就达到了可以在前端找到工作的水平。当然,这只是在求职层面。想要在前端有更好的发展,就得往更深的方向走。第三阶段:进阶进阶阶段如果想进一步发展前端,必须研究浏览器内部运行原理,掌握一些常用的设计模式,实现前端工程化,即:代码模块化,功能组件自动化,打包,构建,发布自动化,流程。在性能优化方面很重要,网站性能优化、SEO、服务器端的基础知识也是必须的。包括代码可维护性、组件易用性、分层语义模板和浏览器分级支持。这些高级功能一定要掌握,掌握知识后才能写出高效率、高性能的页面。这是我们前端开发工程师的追求。看到这三个阶段涉及的知识是不是很复杂呢?这三个阶段既是前端工程师的学习路线,也是一个进化进阶的过程。以后我们的前端学习会越来越重要,需要的技能和要求也会越来越复杂。前端学习最重要的是按照路线图进行系统的学习。不像我们十年前的学习那么痛苦。现在人们学习非常方便,因为网上的学习资料非常多,有很多很好的系统课程,可以帮助你更高效的学习和掌握实用技能,少走很多弯路。从一个前端工程师的经验来看,随着前端在整个软件开发项目中地位的不断提升,前端学习的作用越来越大,情况也越来越复杂。知识也很复杂。如果你没有能力系统学习前端知识,我建议你一定要找一门合适的课程系统学习,因为这对学习效率很重要。自己太容易走弯路,前端更新迭代很快,高效省时的学习方法才是王道。金三银四即将登场。不知道大家是不是已经在准备春招面试了。你准备得怎么样?面试题的复习情况如何?如果你觉得自己基础知识还比较薄弱,不如好好温习一下这套《前端校招面试题精编解析大全》,祝你成功。HTML浏览器页面的三层是什么,分别是什么,作用是什么?HTML5的优点和缺点是什么?Doctype的作用?如何区分严格模式和混合模式?他们的意思是什么?HTML5中有哪些新内容,删除了哪些元素?您在哪些浏览器上测试过您的网页,这些浏览器的核心是什么?每个HTML文件的开头都有一个很重要的东西,Doctype,你知道这是干什么用的吗?说说你对HTML5的理解?(what,why)对WEB标准和W3C的理解和理解?……CSS解释一下CSS的盒模型?请告诉我CSS选择器有哪些类型,并举几个例子来说明它们的用法?请告诉我CSS有什么特别之处?(优先级,计算特殊值)常见的浏览器兼容性问题及解决方法?列出显示值并解释它们的作用?如何居中一个div,如何居中一个浮动元素?请列出几种(至少两种)清除浮动元素的方法?块、内联和inlinke-block细节的比较?什么是优雅降级和渐进增强?谈谈浮动元素带来的问题和你的解决方案。你有哪些性能优化方法?......JavaScriptjs的各种位置,比如clientHeight、scrollHeight、offsetHeight,以及scrollTop、offsetTop、clientTop的区别?js拖拽功能的实现js的异步加载js的防抖节流方法谈谈闭包谈谈你对scopechainJavaScript原型、原型链的理解?有什么特点?请解释一下什么是事件委托/eventdelegationJavascript如何实现继承?函数执行改变了thisbabel的编译原理函数currying说说类的创建和继承说说前端的事件流如何让事件先冒泡再捕获说说图片的懒加载和预加载jsnew操作符是干什么的?改变函数内部this指针的指向功能(bind、apply、call的区别)Ajax解决浏览器缓存问题...由于文章篇幅有限,只能展示部分面试题。如果您需要,请单击此处获取免费问题+解析PDF。VueVue中键值的作用为什么Vue组件中的数据一定要是函数呢?vuex的State特性是什么?介绍一下Vue的响应式系统computed和watch的区别。介绍一下Vue的生命周期。为什么组件的数据必须是一个函数?组件如何通信?如何在Vue.cli中使用自定义组件?你遇到过什么问题吗?Vue是如何实现按需加载和webpack设置的?简述每个周期适用于哪些场景。什么是scs?Vue.cli的安装步骤是什么?有哪些主要特点?谈谈你对Vue.js模板编译的理解?Vue路由跳转的几种方式Vue是如何实现按需加载和webpack设置的?Vue的路由实现:hash模式和history模式Vue、Angular、React有什么区别?Vue路由的钩子函数Vue的计算属性是什么?......React介绍reactReact单数据流react生命周期函数和react组件生命周期reactJs组件通信的原理、区别、亮点、作用你了解过react的虚拟DOM吗?VirtualDOM是如何比较的?项目中用到了react,为什么选择react,react有什么好处?如何获得真正的dom?选择React的原因?React的jsx,函数式编程react的组件判断刷新什么不刷新React-Router路由的动态加载模块如何配置什么是Redux中间件,接受几个参数Redux请求中间件如何处理并发浏览器跨标签页面通信BrowserArchitecture浏览器下的事件循环(EventLoop)从输入url到显示过程重绘和回流存储WebWorkerV8垃圾回收机制内存泄漏回流(reflow)和重绘(repaint)优化如何减少重绘和回流?一个页面从输入完成页面加载和显示的URL。在这个过程中会发生什么?localStorage和sessionStorage以及cookies的区别总结...服务器和网络HTTPS和HTTPHTTP版本的区别从输入URL到页面渲染发生了什么?HTTP缓存缓存位置强缓存协商缓存资源用户行为影响浏览器缓存缓存的不同优势刷新请求执行过程...算法和数据结构二进制树序遍历B树的特点,B树和B+树的区别尾递归大数阶乘怎么写?递归方法会出什么问题?多维数组转一维数组的方法说说冒泡快排的原理堆排序方法的原理?复杂性?几种常见的排序算法,手写数组去重,方法尽量多写如果有一个大数组,里面全是整数,怎么求最大的前10个数由于文章篇幅有限,只讲了一部分可以展示面试题,点此获取免费题+分析PDF掌握以上基本就可以横冲直撞了,怎么霸道,就是框架和打包工具的使用和原理知识~~~后续详解揭示几个面试技巧(1)简历是贼**,看完简历各种框架都会用,比如webpack/vue全家桶,react全家桶,rollup/node,基础会冷到什么时候你问。~~~~框架底层还是js为主,基础不扎实,面试泪流满面。(2)简历的技术点要写自己擅长的,面试一个妹子,2年工作经验,写对vue原理的深刻理解,一个问题nextTick怎么获取更新的DOM,很简单,不知道~当然会扣分。基础知识不懂很多,爽~(3)面试要诚实,不要浮躁,有些知识点不懂也没有问题。一个精神小伙,问rem响应式布局的原理,js判断是怎么实现的,不懂~_~,问能不能跳过这道题,最近没怎么看。我:你最近在哪儿看?jsxh:前端工程的东西?我:我很浮躁~,说说common.js/es6模块化方案的区别?多个项目文件如何将nodeModules共享为一个workspace?如何监控git提交?ts解决什么问题?酷~~工程是个大问题。从开发、编译、部署、上线都有很多点。(4)项目写的不错,手写了一个节流emmm,手写了一个深拷贝emmm,手写了一个promise.all,~~emmmm(5)遇到了几个不错的人选。虽然有些知识点和笔迹功底很差,但是人很靠谱,nice。之前看我是初级开发工程师,给个通过的机会,这不是技术会杀死人。总结一下,基础和写代码的能力很重要~很重要~很重要~,再好的框架,底层也是基础,还有整个知识点,设计模式,等被整合。至于框架问了哪些问题,如何准备,下次再细说。
