es6与JavaScript关系

javascript是一种语言、HTML也是一种语言,而浏览器有解析JavaScript和HTML的引擎,所以其能运行这两种语言。
那es6又是什么呢?
这就要涉及到历史知识了,先有JavaScript,后来JavaScript的创造公司把JavaScript委托给ECMA大公司,大公司来制定标准,即ECMAScript规范,es规范,各浏览器厂商根据规范来实现,这个实现就是JavaScript。其实都是代号而已,es6是ECMAScript的2015年规范,有的浏览器遵循此规范进行了实现,而有的浏览器比较倔强还未实现或者部分实现了。

浏览器原生支持JavaScript。所以JavaScript能在浏览器运行,但是浏览器对js的兼容性不同,导致有些js代码在某些不兼容浏览器上不能正确使用,比如attachEvent和attachEventLister这两个API就分别对应IE和其他浏览器。

那么es6是如何被应用到浏览器的呢?
刚才说了,不是所有的浏览器都支持es6,网上给了两种实践:
第一种:es6被babel编译成es5用;因为es5基本都被现在浏览器实现了
第二种:script type=module与nomodule分别对应兼容或者不兼容es6时的解决方案
第一种比较好理解,我们看第二种。

<script type="module" src="module.mjs"></script>
<script nomodule src="fallback.js"></script>

对于支持ES6模块导入的浏览器,自然也支持原生的nomodule属性,此时fallback.js是忽略的;但是,对于不支持的老浏览器,无视nomodule、和type=module,此时module.mjs不执行,而fallback.js就会执行,于是浏览器全兼顾。
参考文章:
译」ES5, ES6, ES2016, ES.Next: JavaScript 的版本是怎么回事?
详解JavaScript与ECMAScript的区别
万岁,浏览器原生支持ES6 export和import模块啦!

此条目发表在JavaScript分类目录。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注