学什么不好,你学前端?
众所周知,JavaScript是一门非常"简单"的语言,入门很容易,可以去图书馆随便借一本书就能入门了,然后再来看这里的内容吧~基础语法这里不说了,这里更多的是记一下大部分人不太涉猎的内容~(当然了,也有一些基础,这句话感觉是病句!)
依次阅读即可,后面的可能会依赖前面的知识点~
JavaScript 是基于ECMAScript规范实现的一种脚本语言,关于 ECMAScript 规范的话,大家也可以去看看导航里的 前端 > ECMAScript 规范 部分
截至2020年底,ECMAScript 规范共发布了以下版本:
- ECMAScript 1 :1997.06 发布首版规范;
- ECMAScript 2 :1997.06 修改规范完全符合ISO/IEC 16262国际标准;
- ECMAScript 3 :1999.12 新增正则、更好的文字处理、新的控制语句、try/catch异常处理、更加明确的错误定义、数字输出格式等等;所有浏览器都完全支持ECMAScript 3
- ECMAScript 4 :放弃发布了~(既然没发布,那为啥要写呢?因为不写,你就会问为啥没有ECMAScript 4版本呢?)
- ECMAScript 5 :2009.12 完善了ECMAScript 3版本,新支持:"strict mode"(严格模式)、Getter和Setter、JSON支持、String.trim、Array.isArray等等;ECMAScript 5也是所有现代浏览器完全支持的版本
- ECMAScript 5.1 :2011.06 修改ECMAScript 5规范,更符合ISO/IEC 16262 2011年第3版;
- ECMAScript 2015 :2015.06 这个版本就是传说中的ES6(泛称,现在大家口中说的ES6大多是指这个版本及以后的所有改动,从这个版本开始就不再使用数字版本号(如5/5.1)了,改用年份表述了,要记得哈)了,也可以叫ES2015。这个版本新增了非常非常多的知识,详情参考这里《ES6 常用语法》以及《ES2015 规范》,官方文档在《ES2015 规范》的导读中可以找到。简而言之,let、const、class、Promise、箭头函数等等都是这个版本新增的;
- ECMAScript 2016 :2016.06 完善ES6规范,新支持:求幂运算符和Array.includes的额外扩展;
- ECMAScript 2017 :2017.06 新支持:并发、原子操作、Object.values/Object.entries、字符串填充、async/await等等;
- ECMAScript 2018 :2018.06 新支持:rest/spread属性、Promise.finally、异步迭代、RegExp等等;
- ECMAScript 2019 :2019.06 新支持:Array.flat/Array.flatMap/Array.sort、Object.fromEntries、String.trimStart/String.trimEnd等等;
- ECMAScript 2020 :2020.06 新支持:Promise.allSettled、可选链(obj.user?.name)、空值合并运算符、按需引入(dynamic-import)、BigInt(终于不用再为IEEE754烦恼了)、String.matchAll等等;
ES5是2009.12/2011.06分别发布的,自此之后,都是每年的3月,TC39会召开会议,将(所有人之前提交的新特性申请)审核完成的新特性添加到标准中,在每年的4月到6月,会由ECMA CC和ECMA CG来做Review,大概每年的6月就会批准通过新的标准并发布!