前端的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並沒有規定數組、集合等數據結構的底層實現,也沒有闡述代碼編譯或解釋的方式,這些由各大廠商自行決定。