介绍
JavaScript 是世界上最流行的编程语言之一.
自 20 年前创建以来, 它已经走了很长一段路.
作为第一个也是唯一一个由 web 浏览器本机支持的脚本语言.
在一开始, 它并没有像现在这样强大, 它主要用于花哨的动画和当时称为 Dhtml.
随着网络平台需求的不断增长, JavaScript 也有责任发展, 以满足世界上最广泛使用的生态系统之一的需求.
平台中引入了很多东西, 包括浏览器 API, 但语言自身也发展了不少.
JavaScript 现在也广泛用于浏览器之外. Node.js https://flaviocopes.com/nodejs/ 在过去几年中的兴起开启了后端开发, 而这曾经是 Java,Ruby,Python 和 PHP 以及更传统的服务器端语言领域.
JavaScript 现在也是支持数据库和更多应用程序的语言, 甚至可以开发嵌入式应用程序, 移动应用程序, 电视机应用程序等等. 最初作为浏览器内部的一种小语言, 现在是世界上最流行的语言.
JavaScript 的基本定义
JavaScript 是一种编程语言, 它是:
高级别: 它允许您忽略运行它的机器的详细信息. 它使用垃圾收集器自动管理内存, 因此您可以专注于代码而不是管理内存位置, 并提供许多构造, 使您可以处理功能强大的变量和对象.
动态: 与静态编程语言相反, 动态语言在运行时执行静态语言在编译时所做的许多事情. 这有利有弊, 它为我们提供了强大的功能, 如动态类型, 懒加载, 反射, 函数式编程, 对象运行时更改, 闭包 https://flaviocopes.com/javascript-closures/ 等等.
动态类型: 变量不强制执行类型. 您可以将任何类型重新分配给变量, 例如将整数分配给包含字符串的变量.
弱类型: 与强类型相反, 弱 (或松散) 类型的语言不强制执行对象的类型, 允许更大的灵活性但弱化了类型安全和类型检查(TypeScript 和 Flow 旨在改进的东西)
解释: 它通常被称为解释语言, 这意味着它在程序运行之前不需要编译阶段, 而不是 C,Java 或 Go. 实际上, 出于性能原因, 浏览器在执行之前会编译 JavaScript, 但这对您来说是无所谓的: 不需要额外的步骤.
多范式: 该语言不强制执行任何特定的编程范例, 不像 Java 那样强制使用面向对象编程, 或者 C 强制命令式编程. 您可以使用面向对象的范例编写 JavaScript, 使用原型和新的 (从 ES6 开始) 类语法. 您可以在函数编程风格中编写 JavaScript, 使用其第一类函数, 甚至以命令式 (C-like) 编写.
你需要知道, JavaScript 与 Java 无关(译者注: 类似雷锋与雷峰塔), 虽然它是一个糟糕的名字选择, 但我们必须接受它.
JavaScript 版本
让我在这里介绍一下 ECMAScript 这个术语. 我们有一份专门针对 ECMAScript https://flaviocopes.com/ecmascript 的完整指南, 您可以在其中深入了解它, 但首先, 您只需要知道 ECMAScript(也称为 ES )是 JavaScript 标准的名称.
JavaScript 是该标准的实现. 这就是为什么你会听到 ES6,ES2015 https://flaviocopes.com/ecmascript/#es2015-aka-es6 ,ES2016 https://flaviocopes.com/ecmascript/#es2016-aka-es7 ,ES2017 https://flaviocopes.com/ecmascript/#es2017-aka-es8 ,ES2018 等.
很长一段时间, 所有浏览器都运行的 JavaScript 版本是 ECMAScript 3. 由于功能大变(他们试图一次添加太多东西), 版本 4 被取消了, 而 ES5 是 JS 的一个重要的版本.
ES2015, 也称为 ES6 https://flaviocopes.com/ecmascript/#es2015-aka-es6 , 变化也是巨大的.
从那时起, 负责人决定每年发布一个版本, 以避免在版本之间闲置太多, 并且版本迭代和反馈都将变得更快.
来源: https://juejin.im/entry/5b8281d3e51d4538b2047ad1