有ES规定的特性被称为标准JS,具体内容可以翻阅ES文件,上一篇文章说过
前端的JS = 标准JS + webAPI
webAPI参阅MDN
nodejs = 标准JS + 一些系统相关的API
具体参阅node文档
下面的代码可以在浏览器或者node中执行
var a = new Date()
let b = Promise.reject()
下面代码只能在node中执行的
console.log(__dirname)
下面代码只能在浏览器中执行的
var a = new XMLHttpRequest()
JS解释器
无论是node还是各大浏览器,都需要有解释JS代码的引擎,参考下表浏览器使用的JS解释器
- Mozilla -- Spidermonkey
- Chrome -- v8
- Safari -- JavaScriptCore
- IE、Edge -- -- Chakra
- PhantomJS -- JavaScriptCore
- node -- v8
不同解释器对JS代码的处理都要符合ES规范。但是ES并没有规定数组、集合等数据结构的底层实现,也没有阐述代码编译或解释的方式,这些由各大厂商自行决定。