JavaScript:函数、const/let/var、数组、Promise,等等。
比如说你正在写一个 Node.js 服务器,你会用 JavaScript 编写,意味着你可以使用 Promise 这种东西,但不能使用 document.querySelector。
jQuery 早在 2006 年就诞生了:它是一个用来解决 JavaScript 和 Web API 中许多缺陷的库。
jQuery 中的 API 对常见 Web 任务助力颇大,如 DOM 操作、异步处理、处理跨浏览器差异和资源获取等。
基本上来说,虽然用旧的 JavaScript/ 旧的 Web-API 处理这些事情在技术上都是可行的,但它们非常烦人、无趣,而且往往很难编写——所以为了把 Web 开发者从编写头疼代码的负担中解放出来,你可以下载 jQuery 库并用它的精美 API 来处理 JSON 文件之类的任务。
但是今天距离 2006 年已经很久了!
自 2006 年以来,JavaScript 和 Web API 得到了极大的改进。jQuery 和很多开发者都贡献巨大!
JavaScript 是一种不断发展的语言。与软件的更新类似,JavaScript 语言也会更新很多版本。
你可能听说过“ES6”一词。ES6代表“ECMAScript 6”,指的是ECMAScript的第 6 次迭代。ECMAScript 只是 JavaScript 的另一种叫法,区别只是人们通常使用“ECMAScript”来指代规范,而使用“JavaScript”来指代人们编写的语言。
顺便说一句,这又是一件让人头晕的事情:JavaScript 不是 ECMAScript 的实现;就像你不能把“HTML”称为“HTML”的实现一样,叫成“HTML 规范”也不行,都是错的!维基百科就写错了!JavaScript 和 ECMAScript 是一个东西。
不管怎样,ES6是一次重大更新,因为它为 JavaScript 添加了很多非常好的语言功能,比如 const、模块和 Promise 等。另外 ES8 引入了我最喜欢的语言功能,也就是异步。
与此同时,自 2006 年以来 Web API 也得到了极大的改进,加入了 document.querySelector、fetch 以及 classList 和 hidden 之类的东西。
因此在 2019 年的今天,大多数情况下我们可以直接使用 JavaScript 和 Web API,无需 jQuery 之类的库了。
……但也有例外
更新 JavaScript 语言时浏览器也要更新才能支持新的语言功能。Web API 也是如此,但简单起见我们现在只谈 JavaScript。
用户全部升级到最新版本的浏览器,通常通过自动更新 / 重新启动浏览器来完成。
矛盾:我们应该用旧版 JavaScript 还是最新的 JavaScript 编写呢?两者都有利有弊
这给 JavaScript 开发人员带来了两难的处境:我们希望使用现代化的 JavaScript 语言功能,因为这些改进通常会让某些内容编写起来更容易。但我们也希望网站能够为所有用户服务,不管他们是什么时候重启浏览器更新版本的都应该看到同样的内容。
这种困境通常要由 Babel 来解决。
Babel 是一个 JavaScript 编译器,可以将 JavaScript 代码转换为... 不同的 JavaScript 代码!具体来说,它能把用最新版 JavaScript 编写的 JavaScript 代码转换为被更多浏览器支持的旧版 JavaScript 等效代码。
Web 开发人员将 Babel 整合到流程中,就可以使用最新的 JavaScript 功能编写代码,无需担心浏览器兼容性。
例如,如果你在 JavaScript 中使用 fetch,Babel 将不会提供兼容性支持,因为 fetch 是一个 Web API 而不是 JavaScript 本身的一部分。他们正在重新考虑这个决定: https://github.com/babel/babel/issues/10008
因此你还需要一个独立的解决方案来 polyfilling Web API!之后的文章中我们会谈到这一点。
好的,所以现在我们已经知道为什么要用 Babel 了。那么使用 Babel 的 Web 开发流程是什么样的呢?
以下是最简单的 Babel 流程,人们通常不会用它。
你可以按照 CLI 说明操作,但它假设你了解 npm 的机制。他们建议你在本地安装 Babel 作为每个项目的 npm dev 依赖项,而不是在你的计算机上全局安装。
CLI 说明: https://babeljs.io/setup#installation
开发流程
像普通的静态网页一样开发你的网站。
- 2019-08-13还在死磕下沉市场?把货卖到中东非洲去
- 2019-08-13为何现代Web开发如此复杂?
- 2019-08-08小红书在苹果商店下架;马斯克要来中国
- 2019-08-08带货的不止李佳琦们,还有二次元
- 2019-08-06酷睿F级处理器好座驾 华硕Z390 徐以若图片
- 2019-08-06进军社区生鲜便利店 首农股份拟收购罗森