小松的技术博客

六和敬

若今生迷局深陷,射影含沙。便许你来世袖手天下,一幕繁华。 你可愿转身落座,掌间朱砂,共我温酒煮茶。

畅游在javascript的世界

前端在这几年的发展中,能力越来越强,节奏也越来越快,相应的难度也越来越大了。但javascript的魅力也足以让我们付出足够的时间去学习并且驾驭它。

与专业院系毕业的同学不一样的是,js是我学习的第一门真正意义上的编程语言,在这之前就只学过HTML与css。所以我的数据结构、算法以及编程的一些套路基本都来源于js。从开始的懵懵懂懂,到中期的执迷不悟,再到现在的自认为的灵活驾驭,很庆幸自己没有放弃它。虽然现在工作上我基本不写js,但业余时间我还是会去学习它,写一些小demo,阅读优秀的源码库,最近大体上读完了vue的源码,感觉收获满满的。

前端是值得我们花精力去掌握的领域,但就现阶段来看,一方面市面上有很多流弊的框架让人眼花缭乱,另一方面很多人又被公司的旧框架所限制,没有机会去尝试新的框架。不过这主要是针对已经在职的员工了,而对于在校或者新手,其还没有hold住一个框架的能力,却又因为外界火热的氛围所迷惑而去盲目追求框架的使用。

新手最重要的就是基础知识了。说得狠一点的就是"jquery都不懂的你,外面世界的一切与你无关",虽然说要避免闭门造车,但的确需要闭关才能真正的提升自己。jquery虽然已经很老了,但是其基本涵盖了一个前端需要了解的各种知识。jquery的源码是值得每个开发者认真研读的。在这之前,你需要又补足入门知识:

  • 基本数据类型,函数,对象,数组等
  • 原型
  • this
  • BOM,DOM
  • new的过程
  • 闭包

对于专科出生,第一点根本不算事,而其它几点与java这类语言就相差很远了,BOM与DOM有一堆的兼容性问题,掌握起来也不会很容易。

在了解这些之后,就可以jQuery的源码之旅了。jQuery很好用,但用好很难,你可以快速的上手,然后通过源码去更深入的了解它,如果你是第一次来阅读这么大型的源码框架,这将很困难,但庆幸的是司徒正美出了一本很好的书《JavaScript框架设计》。这本书的内容很全面,虽然以mass框架的讲解为主,但也基本讲完了jQuery的所涉及的知识的。这本书很难,别人用三年才写完的书,你别想三个月读完并且消化完。以我个人为例,我前前后后读了这本书四遍,没一遍都有新的收获,前前后后用了两年。现在微信读书有这本书,我闲来无事做时又会翻阅此书。如读故事般去读一本技术书。

在这期间,大体上你需要了解并深入学习下列知识点:

  • 无new实例化,立即执行函数,无冲突处理等
  • dom节点的各种操作
  • 属性系统:prop与attr
  • 样式系统,包括样式的读取,写入,窗口大小,页面大小,元素位置,滚动等诸多细节问题
  • 事件系统,冒泡与捕获,自定义事件等
  • 缓存系统
  • 异步:setTimeout,callback,deferred,promise,generator等
  • 动画,基于js动画与基于css的动画
  • ajax
  • 正则
  • ...

要想掌握这些,绝对是不容易的,如果够努力,迟早你也能征服这些。当掌握这些之后,用起js来就游刃有余了。

在这之后呢,你就需要学习node了,学习node是对异步的一个很好的练习,如果想尝试后端,那么顺着express、koa等框架去学习,也是非常不错的,这又会有另一本推荐的书籍:朴灵的《深入浅出nodejs》,可惜微信读书上没有,这本书也值得读几遍了。其次学node是意味着学习前端的各种构建工具了,grunt基本死了,还剩下gulp,webpack等各种工具。

接下来,才应该是当前热门的各大MVVM框架的学习。没必要说一个一个的去学,认真学习一个,其它的也就懂了很多了,毕竟底层原理都是类似的。这里一部分人学习某个框架可能是为了解决实际问题,另一部分人是为了探索其实现的原理,当然不乏有一些人是因为热门而无目的的去学。我是因为兴趣而学的、而了解最深的只有vue,稍微了解的是angular和avalon。在我看来,我们需要借助这些框架来学习如下知识:

  • Object属性描述符
  • html解析器
  • virtual dom
  • 依赖收集
  • 脏检查,依赖注入(angular)
  • 单向数据流
  • SPA,主要是前端路由

这相比于之前,又上了一个台阶,但必须要那些基础知识,你才有能力去学习这些知识,如果被一个长长的正则吓到,那么基本无缘学习这些框架。上面的知识我依旧有很多不懂的,还需要不断磨练。重要的是持续学习,每天收获一点点,开开心心的畅游在前端的世界里。

←支付宝← →微信 →
comments powered by Disqus