JavaScript 如此受欢迎的 4 个原因
JavaScript 之所以能在编程语言中名列前茅，是有充分的理由的。
JavaScript
JavaScript 之所以能在编程语言中名列前茅，是有充分的理由的。

> 
> JavaScript 之所以能在编程语言中名列前茅，是有充分的理由的。
> 
> 
> 


![](/data/attachment/album/202011/17/102936u1hghm95bbu7xjxg.jpg)


如 GitHub 的 [The State of the Octoverse](https://octoverse.github.com/) 报告的这张图所示，如果按 GitHub 上项目的贡献者数量统计，[JavaScript](https://en.wikipedia.org/wiki/JavaScript) 一直是最受欢迎的编程语言。


![The State of the Octoverse 报告中的热门语言](/data/attachment/album/202011/17/103021ngxojxso2qx8oldj.png "Top Languages from The State of the Octoverse report")


*热门语言，根据《The State of the Octoverse》（©2019，[GitHub Corp](https://octoverse.github.com/)）*


在本系列的 [上一篇](/article-12813-1.html) 中，我们深入了解了 JavaScript 的历史。在这篇文章中，我将分享它如此受欢迎的四个[原因](https://medium.com/paul-heintzelman/so-why-is-javascript-so-popular-f35bd6cfeb39)。


### 1、JavaScript 适合初级、中级和高级开发人员


JavaScript 不需要任何环境设置，只要打开浏览器，比如 Chrome 浏览器，导航到[开发者工具](https://developers.google.com/web/tools/chrome-devtools)，就可以开始编码。编写一个 “Hello World” 的程序，就这么简单：



```
console.log("Hello World");

```

JavaScript 的灵活性最适合中级开发人员。该语言通过让开发人员专注于解决问题来帮助你完成任务。开发者可以混合使用插件和自己的代码片段来让一个应用程序工作。


虽然 JavaScript 比较容易上手，但它也并不是一下子就能掌握的。如果你想达到高级水平，这里有一些你需要了解的概念：


* **JavaScript 的[多范式](https://medium.com/javascript-in-plain-english/what-are-javascript-programming-paradigms-3ef0f576dfdb)特性：** JavaScript 同时支持函数式编程和面向对象编程（OOP）。
* **在 JavaScript 中应用[设计模式](https://addyosmani.com/resources/essentialjsdesignpatterns/book/)：** 模型-视图-\*（[MV\*](https://developpaper.com/javascript-mv-pattern/)）设计模式一直是最流行的模式之一，并促成了[多个现代框架](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel#JavaScript_frameworks)的发展。
* **[带原型链的继承](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain)：** JavaScript 由于其动态的特性，无法实现传统的 Java 基于类的模式下的 OOP。JavaScript 中的 OOP 是通过原型继承模型实现的。
* **[闭包](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures)：** 闭包可以从内部函数中访问外部函数的作用域。
* **<ruby> <a href="https://javascript.info/currying-partials">  柯里化 </a> <rt>  Currying </rt></ruby>：** 柯里化是函数的一种转换，它将函数从 `f(a, b, c)` 的调用形式转换为 `f(a)(b)(c)` 调用形式。
* **[Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) 和 [Observables](https://rxjs-dev.firebaseapp.com/guide/observable)：** 这些可以帮助你处理异步函数。
* **[TypeScript](https://en.wikipedia.org/wiki/TypeScript)：** 在 JavaScript 中添加了静态类型。


### 2、全平台


JavaScript 可以在任何地方运行，包括：


* 手机、平板电脑和笔记本电脑等设备。
* 在客户端和服务器端。


这种在任何地方都能运行的能力使 JavaScript 成为一种通用语言。


### 3、开放标准和社区


[ECMAScript](https://en.wikipedia.org/wiki/ECMAScript) 是 JavaScript 的标准化版本，也是一种开放的标准语言。公司可以使用 ECMAScript 来创建 JavaScript 的实现。根据[维基百科](https://en.wikipedia.org/wiki/List_of_ECMAScript_engines)，“ECMAScript 引擎是执行以 ECMAScript 语言标准编写的源代码（例如，JavaScript）的程序”。最流行的引擎 [V8](https://en.wikipedia.org/wiki/V8_%28JavaScript_engine%29) 和 [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) 是开源项目。


JavaScript 已经存在了 25 年，背后有一个庞大的社区。开发者们简直目不暇接，社区已经构建了如此多的插件和框架，以至于创造了“[框架疲劳](https://teropa.info/blog/2015/07/15/overcoming-javascript-framework-fatigue.html)”这个词。


### 4、现代框架


现代框架如 [React](https://en.wikipedia.org/wiki/React_%28web_framework%29)、[Angular](https://en.wikipedia.org/wiki/Angular_%28web_framework%29) 和 [Vue.js](https://en.wikipedia.org/wiki/Vue.js) 已经稳定下来，并且正在进行优化以获得更好的性能。大多数框架对开发者非常友好，有良好的社区支持。


### 未来


JavaScript 将长期存在。全栈开发和现代前端框架继续帮助 JavaScript 巩固其作为最受欢迎的编程语言之一的地位。


JavaScript 的[下一波](https://medium.com/@rangleio/the-future-of-javascript-in-the-front-end-world-2544c1814e2)可能会将焦点放在。


* **[Deno](https://en.wikipedia.org/wiki/Deno_%28software%29)：** JavaScript 的现代安全运行时。
* **网络组件：** 可重复使用的自定义元素。
* **与 AI 和 ML 的整合：** 像 [Supernova](https://techcrunch.com/2018/03/13/supernova-studio/) 和 [BAYOU](https://futurism.com/military-created-ai-learned-to-program) 这样的项目在将 JavaScript 与人工智能和机器学习整合方面取得了实质性的突破。




---


via: <https://opensource.com/article/20/11/javascript-popular>


作者：[Nimisha Mukherjee](https://opensource.com/users/nimisha) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

