主页»JavaScript»为什么 JavaScript 会无处不在?

为什么 JavaScript 会无处不在?

来历:infoq 发布时刻:2019-05-23 阅览次数:

  首要,我并不是一名开发人员。

  几年前,我甚至都分不清什么是后端开发、什么是前端开发。Vue、React、Node……它们都是什么东西?

  我底子无法了解为什么 JavaScript 会无处不在,为什么它会这么重要。

  我知道我并不是仅有一个感到如此疑问的人。不论是你是一名开发新手,仍是一个需求与开发人员严密协作的人,都会感到很茫然。

  由于作业的联系,我每天需求与开发人员待在一同,时刻长了,我对这个问题才开端有了一丝了解。

  我将在这篇文章中测验答复下面这些问题:

  • 什么是 JavaScript?

  • 为什么 JavaScript 这么重要?

  • 咱们为什么要运用 JavaScript?

  • JavaScript 的未来会怎样?

 什么是 JavaScript?

  当一个人在面临新鲜事物时,通常会先在维基百科上查找它的界说。假如你查找 JavaScript,就会得到这样的描绘:

  咱们能够从这些信息知道,JavaScript 是一门客户端编程言语。现在,咱们假定只知道 JavaScript 是一个用于给网站增加交互性的东西。

  阅览器需求三个东西才干让咱们看到网页上呈现的内容:

  • 用于结构化内容的 HTML;

  • 用于给内容增加款式的 CSS;

  • 让内容活起来的 JavaScript。

  它们看起来好像很简略,但请信任我,这儿触及的东西可不止这么多。

  JavaScript 简史

  要想知道咱们现在在哪里以及未来要到哪里去,首要需求了解咱们是从哪里来的。JavaScript 走过了一条绵长且高低的路途。

  JavaScript 最早能够追溯到 1995 年,第一个 JavaScript 版别诞生于 Netscape 作业室里。1995 年……咱们能够幻想一下其时的 Web 国际是多么的不同!其时我才三岁,信任许多读者那个时候都还没出世。Netscape 公司本身便是一个很悠远的回忆。

  但在那个时候,Netscape 的 Navigator 是最为盛行的阅览器之一。这家公司开发了 JavaScript,作为 Java 的同伴编程言语。他们想要一门看起来像 Java、一同又能限制其他本来也能够在阅览器上运转的其他言语(如 Python、Tcl、Scheme,等等)。

  那个时候,Web 上都是彻底静态的网页,这些网页运用 HTML 和 CSS 构建,而 JS 给它们带来了动态性。

 

  开发 JavaScript 这门言语的开端方针是要让 Web 成为一个万能的运用程序渠道,也便是说,JavaScript 既能够运转在客户端,也能够运转在服务器端。但这个主意并没有取得成功,由于过了许多年之后才有人乐意拿它当成一门服务器端编程言语看待。不论怎样,JavaScript 仍是在前端范畴得到了蓬勃开展,成为 Web 的规范编程言语。

  在 Navigator 与世长辞之后,其他 Web 阅览器(从 IE 到 Firefox,再到 Chrome)接过了接力棒。

  JavaScript 的呈现太匆忙,在前期呈现了各种古怪的阻力,对言语的选用形成了阻挠。但由于其本身具有了强壮的特性,这些阻力并没能阻挠它的开展。

  接下来,ECMA 规范呈现了,它将 JavaScript 带给了愈加广阔的受众和其他潜在的完结者,比方微软。

  假如想持续了解 JavaScript 的前史,能够阅览这篇文章(https://auth0.com/blog/a-brief-history-of-javascript/)。

 为什么咱们需求 JavaScript?

  为什么 Netscape 要开发一门新的言语,光是有 Java 还不行吗?

  在其时看来,Java 并不合适一切的 Web 开发受众,比方脚本编写人员、业余爱好者和规划人员。

  跟着 JavaScript 到来,它有或许能够满意不同的受众。组件开发者和企业级专业开发人员运用 Java,脚本编写人员和规划人员能够运用 JavaScript。在现代 Web 开发团队中,后者被称为前端开发者。

  这门言语之所以叫作 JavaScript,是为了赶上 Java 的那一波盛行浪潮,以便加快言语的选用。在现在看来,这两门言语之间其实找不到太多的相似之处。

  正如之前所说到的,JavaScript 给 Web 带来了动态特性。那么这意味着什么呢?每次你在网页上看到的以下这些东西都离不开 JavaScript:

  • 主动完结;

  • 在不从头改写整个页面的状况下加载新的内容和数据;

  • 翻转作用和下拉菜单;

  • 元素动画作用,比方渐褪、缩放巨细或移动;

  • 播映音频和视频;

  • 验证表单数据;

  • 等等……

  JavaScript 是一门直接被嵌入到 HTML 中的脚本言语。这也是仅有一门能够被 Web 阅览器了解的言语。阅览器读取 JavaScript,然后解析它,运转它,由此创立强壮的客户端体会。

从 2017 年开端,现代阅览器也支撑 WebAssembly。WebAssembly 是一门能够与 JavaScript 一同运转的现代言语。

  JavaScript 之所以能够到达今日的状况,是由于它是敞开且规范化的,最重要的是——不论你赞同与否——它是一门十分好的言语。它的动态特性和 DOM 的严密集成十分合适 Web 环境。

  JavaScript 也能够与其他言语兼容,这关于运转其他言语(如 PHP、Python、Ruby、Java 或.NET)的 Web 服务器来说是十分重要的。由于运转在阅览器中的 JavaScript 与怎么生成 HTML 是 100% 别离的,不论服务器端运用了是什么言语,都不会影响用户的体会。

 为什么 JavaScript 这么重要?

  尽管一直以来 JavaScript 都是一门运转在阅览器上的言语,但在一开端并没有得到开发社区一起认可。即便是 JavaScript 之父 Brendan Eich 在 2008 也从前说过一些“中伤”JavaScript 的话:

许多人咒骂 JavaScript,包括我自己在内。我依然把它看成是一个 C 言语和 Self 的“怪胎”儿子。用 Johnson 博士的话说便是:“好的部分不是原创的,而原创的部分并不好”。

  但十多年后,JavaScript 以史无前例的相貌展现在咱们面前,它现已变得无处不在。

  为什么会这样?

  要想知道这个问题的答案,咱们需求先看看构建在 JavaScript 之上的生态体系。

  那么到底是 JavaScript 的强壮促成了这个蓬勃开展的生态体系,仍是生态体系让 JavaScript 进一步演化,并成为一门愈加不可或缺的言语?

  或许,咱们应该把这场“JavaScript 革新”归功于 ECMAScript 6(ECMAScript 2015)的发布。ES6 增加了新的语法,可用来开发杂乱的运用程序,还有许多其他特功能够被视为下一代 JavaScript。

  总归,活泼的开发社区和 Web 的兴起将 JavaScript 面向了风口浪尖。

 现在的前端开发都在运用哪些言语

  在很长一段时刻内,网站比例被根据 PHP 的 CMS(比方 WordPress)所占有。服务器端的代码负责处理大部分逻辑。但这种状况正在发作变化,你或许听说过“静态”网站又回来了,但它们肯定与 90 时代所谓的静态生成网站不一样。

  现代阅览器能够让这些内容变得可交互和彻底动态化。由于有了 JavaScript,能够直接在客户端,也便是阅览器中处理逻辑。

  现在的一些闻名的 Web 运用程序便是运用 JS 开发的。想想 Facebook、Gmail、Twitter,等等。假如没有了 JavaScript,这些运用程序就不会那么有吸引力了。

  这些科技巨子还开发了自己的 JavaScript 结构,然后其他不计其数的开发者根据这些结构开发自己的 Web 运用程序。你或许听说过由谷歌开发的 Angular 和由 Facebook 开发的 React。这儿还需求提一下 Vue,尽管它不是由哪个科技巨子公司开发的,但它是干流 JS 结构生态圈不可或缺的部分。

  这些结构不只协助开发者削减用于开发根据 JS 的网站和运用程序的时刻和作业量,它们还带来了新的 Web 体会。以单页运用程序(SPA)为例,SPA 能够在不改写整个页面的状况下动态加载部分内容,让网页看起来就像是桌面运用程序。

  多面手

  或许,JavaScript 首要仍是被用在前端开发傍边。但在 2019 年,JavaScript 能够做的作业会更多。

  服务器端

  在最开端,人们测验在服务器端运转 JavaScript,但并没有取得成功。许多人以为 JavaScript 不太或许成为一门安稳的后端开发言语,直到 Node.js 的呈现。

  现如今,JS 运转时现已成为十分盛行的 Web 服务器东西。这意味着 JS 开发人员能够凭借 Node.js 来开发客户端和服务器端代码,而不需求依靠外部的 Web 服务器。

  移动 App

  在曩昔,咱们需求运用其他编程言语来开发移动 App,比方运用 Objective-C 开发 iOS 运用,运用 Java 开发 Android 运用。现在比以往更简略运用 JavaScript 来衔接移动 API,也便是说,你能够经过 JavaScript 调用移动设备的功用,比方摄像头。

  这为更为广阔的开发者打开了开发移动 App 的大门,而他们无需为此学习新的编程言语。

  除此之外,运用 JavaScript 开发移动 App 也在功能方面带来了更多或许性。以渐进式 Web App(PWA)为例,由于组合了最好的 Web 特性和最好的 App 特性,PWA 改进了可靠性、功能和粘性。它们还带来了一些令人形象深化的新功用,比方离线阅览。

  API 集成

  开发者能够运用 JavaScript 从其他数据源获取数据,并展现在自己的网站上。模块化是 Web 开发范畴很受注重的一个概念——运用不同的东西履行特定的使命。由于有了 API 和 JavaScript,现在能够很简略就构建出这种技术栈。

 为什么要运用 JavaScript?

  这个问题的另一种问法是:JavaScript 给咱们带来了什么优点?

  JavaScript 的优点

  • 在客户端履行逻辑带来了更快的用户体会。由于代码能够直接运转在阅览器中,削减了服务器端调用,极大了削减了加载时刻。即便需求调用服务器,由于 JS 是异步的,所以能够在后台与服务器通讯,而不会中止前端正在发作的用户交互。

  • 在一开端,JavaScript 就将用户界面交互性带到了 Web 上。现在,它也为一切类型的运用程序带来了这种交互性。

  • JavaScript 是各种呼应式 Web 规划背面的功臣。越来越多的开发者需求为不同的阅览器和设备适配他们的规划,经过组合 HTML5、CSS3 和 JavaScript,他们能够在同一个代码库中完结一切的作业。

  • 关于开发者来说,JavaScript 简略易学,并且能够很快上手开发。它的语法很简略,也很灵敏,能够简化杂乱运用程序的开发作业。许多现成的结构和包让开发人员的开发作业变得更简略。

  • JavaScript 十分盛行,假如说盛行程度并不能与高质量划上等号,但至少能够阐明一件作业:你能够在社区里为你遇到的问题找处处理办法。何况,假如你想招聘 JavaScript 开发人员,能够很简略就招到,由于有许多提名人等在那里。

  但 JavaScript 并不完美,它也有一些潜在的缺乏。

  JavaScript 的潜在缺乏

  • 查找引擎终究能够爬取 JavaScript 到什么程度?这个问题现在尚不清楚。但这个问题并非没有处理办法,一些爬虫在遇到 JavaScript 时现已知道怎么处理了。

  • JavaScript 胀大。项目中包括太多的 JavaScript 最终会形成功能问题。处理这个问题的办法是只在需求的当地刺进 JavaScript 代码,而不是把它们搞得处处都是。

  • JavaScript 生态体系中的包能够让开发人员在不从头发明轮子的状况下快速完结开发作业,但这也带来了“依靠项阴间“问题。

 JavaScript 的未来

  现在,咱们能够想象一下 JavaScript 的未来,以及咱们能够从中等待些什么。

  JavaScript 和它的生态体系会持续演化开展。我个人以为,在未来,新的东西会逐渐削减,但大头玩家会变得愈加老练,并得到更广泛的选用。咱们现已在 JS 结构方面看到了这一点,React 和 Vue 正在成为主角。

  其他结构也是如此,Gatsby、Next.js 和 Nuxt 正逐渐成为抢先的静态网站和 PWA 生成器。

  TypeScript 或许会扮演重要的人物。TypeScript 是 JavaScript 的超集,现已被社区大规模选用。

  在未来,科技国际有许多东西会对前端开发形成重要影响,比方人工智能和物联网。JavaScript 将会被运用在新的范畴。

  最终,假如你想在这个范畴站稳脚跟,请不要停下学习新事物的脚步!

  检查英文原文:https://snipcart.com/blog/why-javascript-benefits

QQ群:凯发娱乐官网官方群(515171538),验证音讯:10000
微信群:加小编微信 849023636 邀请您参加,验证音讯:10000
提示:更多精彩内容重视微信大众号:全栈开发者中心(fsder-com)
网友谈论(共0条谈论) 正在载入谈论......
沉着谈论文明上网,回绝歹意咒骂 宣布谈论 / 共0条谈论
登录会员中心