前言
不少人看到现在前端框架很火,感觉不学就会缺少了什么?今日早读文章由@lampui翻译分享。
正文从这开始~
这篇文章的意图是要给每位前端开发者强调 JavaScript 的基本原理。原生(Vanilla)是指没有额外框架或库的 JavaScript。本文将会告诉你为什么应该对原生 JavaScript 有一个较好的认识。
我也会提及一些帮助过我学习这些基本原理的资源。
写这篇文章背后的另一个原因是许多有抱负的 web 开发者倾向于跳过 JavaScript 核心概念的学习,诸如提升、闭包或原型。他(她)们直接学习最热门的框架,例如 React 或 Angular 2。我会向你说明为什么这种方法不能称之为一条捷径。
每个人都想要有 ${请填写热门的框架名字} 知识的开发者…
那么,还有什么理由让你再费事去学习原生 JavaScript 吗?
不了解一门语言本身的核心知识那是很难成为一名大神的,就像在你去一个有特定法律的领域之前,你需要先清楚法律的一些基本原则。这个比喻真的很巧。😉
我能理解大多数热血十足的 web 开发者想尽快地找到工作的心情。因为我也想。
看起来去上一门 JavaScript 基础速成班、钻研一些框架、开发个 ToDo 列表(let a puppy die)和上传到 GitHub,然后再开始找工作会简单些。
…但从长远来看,把时间投入到原生 JavaScript 的学习会更有收获
别误会我,无论如何我都不是对 JavaScript 的各种框架有偏见。恰好相反,许多框架反而能让你书写出可读性和维护性更高的代码,这些框架还能让你写出比平时更容易调试的抽象代码。
但 JavaScript 生态进化得非常快,新框架层出不穷,新功能不断地被添加到已有的功能上,最重要的是,眼下许多热门的框架迟早都会被替代,例如 Angular 1。
在这样的环境下,你还认为具备某个 JavaScript 框架的知识对一名 web 开发者来说就足够了吗?
还是去理解这门语言是如何在这些框架和库的背后运作好点?
Yes, 你对了!当然是第二个选择。
如果你有一个很扎实的 JavaScript 基础,当开始工作的时候唯一需要让自己熟悉的就是新框架的语法,在所有层次的抽象下,基本的规则还是一样的,它还是纯粹的 JavaScript。
如果你的知识仅限于某个 JavaScript 框架,那你学习另一个新框架的时候会很艰难。不同的框架通常是基于不同的 JavaScript 原则。从长远来看,你会花跟多时间去理解不同的框架和调试你写的代码。
所有的 JavaScript 框架和库都不可避免地基于原生 JavaScript。
从长远来看,这应该能说服任何人掌握原生 JavaScript 是必须的。这是对任何一名成功开发者的必要条件,特别是对于一个主要工作在 JavaScript 生态下的开发者。
个人经验
不久前,我回顾了自己是怎样从一名律师转变为一名 web 开发者的过程,从我开始写第一个 JavaScript 函数算起,都有 18 个月了,并且现在是我成为专业前端开发者的第 10 个月了。
我依然记得摸索正确的 JavaScript 学习之路对我来说是多么地有挑战性,因为我之前没有任何的编程经验。我尝试过(至今还在尝试)许多不同的方法成为一名高效的学习者,有些方法会让我收获很多,有些却较少。
最重要的是,开始的时候我把重点放在了学习原生 JavaScript 上面,这对我的帮助太不可思议了。接下来是框架。
现在,我在工作中用的是 React-Redux 技术栈。即便如此,我经常能用原生 JavaScript 的知识解决眼下的一些问题。如果只具备某个框架的知识,这些 bugs 解决起来将会更具挑战性。