***内容预警*** 新手菜鸟教程,大佬请绕道
作为一个新手,我们肯定在入门的时候看到的大多数文档都是说的javascript,但是如果看一下更加系统的书籍,就会发现有的文章中提到了ECMAScript,会让我们云里雾里,以为是一个什么新的语言,搞的头都大了。
一句话总结
ECMAScript 是一个抽象的规范,javascript是ECMAScript规范的一个实现。
ecma是一个组织,名叫欧洲计算机制造商协会,ECMAScript是一个脚本语言标准。
完整的javascript 不仅包含了ECMAScript,还包含了DOM(文档对象模型)和BOM(浏览器对象模型)
Web浏览器只是ECMAScript 实现可能存在的一种宿主环境, 宿主环境提供ECMAScript的基准实现和环境自身交互必须的扩展。扩展(DOM和BOM等)使用ECMAScript核心类型和语法,提供特定于环境的额外功能。
其他宿主环境还有服务器端javascript平台node.js
这里我们提到了一个宿主环境的概念,我们常见的javascript的宿主环境就是web浏览器,也就是我们天天都用的chrome和火狐等浏览器,第二个就是node环境。
关于node到底是什么,可以参考一下这篇文章,看完这篇文章再结合本篇文章你应该能刚深刻的理解,浏览器和node的相似之处。
DOM和BOM是web浏览器作为ECMAScript的宿主环境之一的扩展,所以在浏览器中可以使用document等对象,但是在node中却不能使用,取而代之的全局对象是global
到这里我们就能理解,为什么有的时候,我们说某某方法是es6的新方法,而不是js6,那是因为我们跟着规范来说的,ECMAScript的规范中的新方法。