1、 ECMAScript和JavaScript 关系
- ECMA是标准,JS是实现
- 类似于HTML5是标准,IE10,Chrome谷歌,FireFox火狐都是实现
- 换句话说,将来也可能有其他,XX某某Script来实现 ECMA标准
- ECMAScript简称ECMA或ES
- 目前也只有JavaScript实现,所以可以理解ECMAScript == JS
- 目前版本
- 低级浏览器主要支持ES 3.1
- 高级浏览器正在从ES 5 过度到 ES 6
- 96年推出了1.0版本,标志着JavaScript已经稳定了,Netscape网景接手了,提交给了ECMA组织,ES出现
- ES从正式出来被接受,是从1999.12, ES 3.0出来
- ES3.1 是用的相对比较多的一个版本
- 2011年ES成为ISO国际标准,沿用了好长时间
- 比较关键版本,ES5.1是事实上的标准,用的比较多,和3.1版本区别不大。然后ES6.是15年诞生的
3、ES6兼容性和新特性
- ES6兼容性肯定是不好的,因为2015年ES6才成为一个正式标准,这时各路浏览器都有了,所以兼容性不好
- 兼容性查询网站:
- ES6(或称为:2015)
- IE低版本肯定不支持,至少 IE10+ 版本以上
- Chrome, FireFox , 移动端,NodeJS 这些环境基本上都支持
- 那么如何去支持旧版本的IE 7/8/9
- 如何去支持旧版本 (可以编译转换,两种办法)
- 在线转换 【每次都得转换,用户慢】 babe == browser.js
- 提前编译
- 个人推荐提前编译,因为在线转换每次用户打开页面都需要花时间,表现每当打开页面就卡一下
- 如何去支持旧版本 (可以编译转换,两种办法)
3.1、兼容性体验
babel == browser.js 这个2个是同一个东西
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="browser.js" charset="utf-8"></script> <script type="text/babel"> let a=12; let b=5; alert(a+b) </script> </head> <body> </body> </html>
上面的HTML代码,在IE9无法使用,使用了let变量,引入了babel 库【browser.js】进行转换,需要指定类型 type="text/babel",直接在线编译,页面花费的时间也比原来长了些【页面滚了下需要时间去编译】。
- 学习期间建议Chrome谷歌浏览器为主,不推荐babel 转换学习
- 课程掌握之后,会很具体的如何让ES6用在所有的浏览器上,不管IE,火狐,见没见过的浏览器等。
4、ES6特性
ES6到底有什么东西,至于反复的去提到它。
- 变量
- 函数
- 数组
- 字符串
- 面向对象
- Promise
- 很不错的串行化修改方式,异步交互
- generator
- 将同步操作改成异步操作,generator是对Promise 一种封装
- 模块化
5、总结
稍微讲解了ES的历史和兼容性,以及如何在一些低版本里面怎么用(当然没说完,差远了),还有ES6的特性。基本上这节课是一个过度,知道接下来要怎么玩了。
标签:ES6,兼容性,浏览器,babel,初识,版本,ES From: https://www.cnblogs.com/codelives/p/17671393.html