前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学了这么久,你不会还不知道ECMAScript发展历程吧

学了这么久,你不会还不知道ECMAScript发展历程吧

原创
作者头像
星辰大海c
发布2023-11-20 13:54:31
970
发布2023-11-20 13:54:31
举报
文章被收录于专栏:前端学习教程前端学习教程

ECMAScript(简称 ES)是 JavaScript 的标准化规范,定义了这门编程语言的语法、类型、语义以及与浏览器等环境的交互方式。以下是 ECMAScript 的一些特点:

  1. 脚本语言: ECMAScript 是一种解释性的脚本语言,不需要编译成二进制代码就可以在支持它的环境中运行。
  2. 弱类型语言: JavaScript 是弱类型语言,变量不需要明确声明其类型,可以在运行时自动转换类型。
  3. 面向对象: 支持基于对象的编程范式。对象是 JavaScript 中的核心概念,几乎所有内容都是对象或者基于对象的。
  4. 原型继承: JavaScript 使用原型继承机制,允许对象直接从其他对象继承属性,而不需要使用类的概念。
  5. 函数作为一等公民: 函数在 JavaScript 中是一等公民,可以像变量一样被传递、赋值,并作为参数或返回值。
  6. 异步编程: 支持异步编程模型,通过回调、Promise、async/await 等机制来处理异步操作,如网络请求、定时器等。
  7. 动态性: 允许在运行时改变对象结构,包括添加新属性、删除属性或修改属性值。
  8. 跨平台性: 可以在不同的平台上运行,包括浏览器、服务器端(Node.js)等。
  9. 事件驱动: 在浏览器环境中,JavaScript 常用于处理用户交互和事件响应,支持事件驱动编程模型。
  10. 开放性: ECMAScript 是一个开放标准,允许开发者通过各种方式扩展语言的功能。
  • 1995年,网景工程师Brendan Eich(布兰登·艾奇)花了10天时间设计了JavaScript语言,1996年微软发布了JScript,同时拉开了Navigator和Internet Explorer浏览器大战的序幕(到2002年IE完胜,占据全世界96%的市场份额);
  • 为了让各大浏览器统一编程规范,1997年6月ECMA(欧洲计算机制造联合会)以JavaScript语言为基础制定了ECMAScript标准规范ECMA-262,从此浏览器厂商都是按照这个规范来开发自己的浏览器产品;
  • 1999年12月ES3发布,到2011年6月ES5发布(2007年的ES4夭折:改动太大),ES3占据了10年历程,也是JS语言的基础。2015年6月ES6发布(但是由于之后规定每年发布一个新的版本,所以后改名ES2015),2016年6月对2015版本增强的2016版本发布,此后相继有ES2017、ES2018…
  • ES2015(ES6):let/const、解构赋值、数组/对象等方法扩展、Symbol、Set/Map、Proxy、Reflect、Promise、Iterator(for of)、Generator、Class、ES6Module...
  • ES2016(ES7):Array.prototype.includes、指数运算符(a**b)...
  • ES2017(ES8):async/await、Promise.prototype.finally、Object.values/entries/getOwnPropertyDescriptors、字符串填充 padStart和padEnd、SharedArrayBuffer共享内存、Atomic原子操作...
  • ES2018(ES9):对象的拓展运算符、正则表达式上的一些升级、异步遍历器...
  • ES2019(ES10):String.prototype.trimStart/trimEnd、Object.fromEntries、Array.prototype.flat/flatMap、catch的参数改为可选、Symbol.description、JSON Superset超集、stringify加强格式转化、Array.prototype.sort更加稳定、Function.prototype.toString重新修订...
  • ES2020(ES11):String.prototype.matchAll、import() 、BigInt、Promise.allSettled、globalThis、可选链、空值合并运算符、export * as ns from “mod”、for-in机制完善...
  • ES2021(ES12):String.prototype.replaceAll、Promise.any、WeakRefs、??=、||=、&&=、Numeric separators(数字分隔符)..

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档