前端学习那些事儿 今天和小伙伴们聊聊学习这事。对于编码的学习,我认为基础知识和编程实践是最重要的。刚开始学习前端的时候,是将基础知识学习一遍,所用教材可以靠学校发的教材即可。基础学习过后,最重要的就是实践,可以不断做一些模仿网站,以及到最后自己设计网站等。 收藏平时交流的信息:技术学得再好,没有开发经验,和产品经验,是很难写出好的代码。因为写代码本身是带有目的性的,解决问题。如果在校,学习程序很迷茫,是因为不知道学这个用来干嘛,自身没有想做的东西,所以就很迷茫,不知道学什么,为什么要学。工作,要对一个产品了解到什么深度,代码就越健壮。学习方式是有捷径的避开所有看不懂学习资料,找看得懂的,拿起一本资料或者网上找的资料,细度几分钟,看不懂直接找找别的资料有可能能力未达到 所有看不懂 也有可能 资料本身描述 很难懂 更有可能 资料描述不适合自己阅读习惯优先 实现功能 再考虑优化 那么你是否自己坚持了呢?当你想要学习,拿起手机时,你会不会发现,你已经不知不觉偏离了正轨,从娱乐新闻到头版头条,99 未读的消息,你心里想的就是看一会儿,就看一会儿。结果不知不觉时间过去了10分钟,半小时,1小时溜走了。然后你开始焦躁,后悔,自责,但是到了第二天,你又掉进了相同的坑里。 你会不会也很纳闷,为什么我的自制力这么差,为什么有些东西让我欲罢不能,因为你已经上瘾了,有个实验小白鼠遇到电流会躲避,但是奇怪的现象发生了,小白鼠不但没有躲避,反而一次又一次的自我电击,经过发现,原来是实验中不小心把某位置弄错,刚好刺激了快感中枢的位置。所以,你也许就像这小白鼠一样上了瘾。 一个真相是,科技巨头们在社交软件视频平台,网络游戏中精心布置了一个又一个沉迷的钩子,目的就是为了截取更多的用户,获取他们的更多时间和金钱,我们正在被一个算法和娱乐所刺激中,但很多人却不自知,那么如何摆脱上瘾的行为呢? 就是去了解让人沉迷于网络的钩子:可望而不可即的诱人目标无法抵挡无法预知的积极反馈渐进式的进步和改善的感觉越来越困难的任务需要解决,但暂未解决的紧张感如,你发布了某消息,你会去暗中观察,有没有人给我点赞,写文章,有没有人给我点赞,有没有人给我评论等等。(我很期待!!!) 其实你可以把这些钩子投入学习中,把学习当做兴趣,升级打怪,不断提升自己。 你的选择 自己的人生自己选择,你可以选择一条简单的路,选择沉迷在你的手机里,刷视频,打游戏,煲剧,毫不费力地收获大把大把的快乐,你也可以选择一条更加艰难的路,选择自律,选择延迟慢走,选择成长。 用你的右手做什么,由你自己决定学习方法 只要掌握了正确的方法,学习前端和学好前端就只是个时间问题这句话谁都会说,但什么是正确方法?小编在这总结了3点,仅供参考。1、梳理清楚知识体系框架 学习前端,不管是入门还是进阶,一定都要有知识体系建设的想法。就算是刚开始学,也一定要有这样的意识。前面说过,因为前端知识点多而分散,所以如果不能构建起自己对于前端的知识体系框架的认识,很容易就会不知所措,没了方向。 现在网上关于前端知识体系的脑图很多,但是往往过于复杂,不适合初学者。作为一个初学者,每个人都应该自己做一份自己的前端知识体系脑图,先有一个最基本的框架,然后在学习的过程中慢慢完善。 这样通过和别人脑图的对比,你也很容易知道还有那方面的知识是需要补充完善的。 这里我给出一个简单的模版,其实作为一个刚入门的前端新人,有这样的大框架已经完全够用了,不用追求大而全,学习的畏惧心理也会小很多,随着你学习的深入,这个脑图也会慢慢丰满起来,最终会形成你自己的知识框架。 这样看起来是不是清爽很多?2、准备和基础的学习 要开始的时候做一些基础工作还是必要的,比如选一个自己喜欢的编辑器啊,比如怎么高效的使用搜索引擎啊,比如git啊,比markdon语法啊,这些东西都可以大幅度提升你的学习效率或编程的幸福感,所谓磨刀不误砍柴功,你也可以把这些东西记在你的脑图里。 接下来你就可以开始学习基础知识啦。HTML,CSS,Javascript这三样真的很重要,真的很重要,真的很重要,刚开始的时候你压根不用去管那些花里胡哨的框架,一定要把基础打好。框架再怎么更新迭代,最基础的东西还是这三样,只要你能掌握好基础,就等于拿到了打开前端世界的钥匙。 不管你的前端学习到了哪个阶段,对基础知识的好奇心一定不能断,这里面有太多细碎的知识点,每一份spec都又臭又长,就算你已经工作两三年,这里面肯定都还有你不知道的东西。好了,到这个时候你的知识体系脑图差不多应该长成这个样子了: 进行到这里的时候其实又有一个坑,很多人到这儿的时候就一头扎进去去看里面的具体内容了,比如去看各种标签的属性用法啊,去看选择器啊,这就是比较典型的没重视知识体系框架建设导致的盲目做法。 推荐的做法是什么样的呢?其实很简单,就是再去细化这些知识点的层级,理清各个知识点的脉络,从宏观上先对这些知识的体系和框架有一个比较清楚的认识。就拿HTML来简单的举例一下: 这样把知识点的层级关系抽象清楚,对每个小的知识点合理分类,才能让前端知识里那些庞杂的知识点形成体系。 现在你就可以去往里面补充些细节的东西了,你可以在脑图上用不同的颜色标出不同的优先级,以便划分学习的优先级并方便以后review。3、把学的东西用起来 每次学过一些小的知识点,都要想办法把它们用起来,想清楚这些知识点的有哪些使用的场景,等到基础知识学到一定程度了也可以反过来,先预先想好场景和要实现的功能,再去想在这些场景下面该用哪些知识,如果遇到了解决不了的问题和没有学过的知识,去你的脑图里把它的位置搞清楚,写出来。列入后续的学习计划。 一定不要一直看,一直学,却不在具体的场景里去用,你应该养成拿自己学到的东西做些东西解决些问题的习惯。不断的做出东西,解决问题,不断给自己正向的激励,不断的完善自己的知识体系,一定要让自己有成就感。学习笔记一、HTMLH5新特性浏览器渲染原理解析iframe有那些缺点?Label的作用是什么?是怎么用的?HTML5的form如何关闭自动完成功能?如何实现浏览器内多个标签页之间的通信? (阿里)页面可见性(Page Visibility API) 可以有哪些用途?实现不使用 border 画出1px高的线,在不同浏览器的标准模式与怪异模式下都能保持一致的效果。title与h1的区别、b与strong的区别、i与em的区别?你做的页面在哪些浏览器测试过?这些浏览器的内核分别是什么?每个HTML文件里开头都有个很重要的东西,Doctype,知道这是干什么的吗?div css的布局较table布局有什么优点?img的alt与title有何异同? strong与em的异同?简述一下src与href的区别知道的网页制作会用到的图片格式有哪些? 二、CSSbox-sizing水平垂直居中的方法实现左边定宽右边自适应效果三列布局(中间固定两边自适应宽度)BFC(Block Formatting Contexts)块级格式化上下文清除浮动元素的方法和各自的优缺点css实现自适应正方形position的值如何在页面上实现一个圆形的可点击区域?介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的?CSS选择符有哪些?哪些属性可以继承?CSS优先级算法如何计算?CSS3新增伪类有那些?display有哪些值?说明他们的作用。CSS3有哪些新特性? 三 、JavaScriptjs基础DOM相关BOM相关JS高级闭包原型与原型链作用域与作用域链apply, call和bind有什么区别?谈谈对this的理解那些操作会造成内存泄漏?深入贯彻闭包思想,全面理解JS闭包形成过程下面这个ul,如何点击每一列的时候alert其index?(闭包)js继承方式及其优缺点上下文环境对象 四、前端框架 1.jQueryjQuery.fn的init方法返回的this指的是什么对象?为什么要返回this?jquery中如何将数组转化为json字符串,然后再转化回来?jQuery 的属性拷贝(extend)的实现原理是什么,如何实现深拷贝?jquery.extend 与 jquery.fn.extend的区别?针对 jQuery 的优化方法?JQuery一个对象可以同时绑定多个事件,这是如何实现的?bind(), live(), delegate()的区别jQuery框架中$.ajax()的常用参数有哪些?写一个post请求并带有发送数据和返回数据的样例jQuery一个对象可以同时绑定多个事件,这是如何实现的?jquery 中如何将数组转化为json字符串,然后再转化回来?Jquery与jQuery UI有啥区别?jQuery和Zepto的区别?各自的使用场景?Zepto的点透问题如何解决?2.angular3.react4.vue 五、 扩展性问题职业规划