目前JavaScript腳本的運行環(huán)境有瀏覽器和node.js環(huán)境兩種。
1、JavaScript被定義為一種瀏覽器的腳本語言,一直以來其運行環(huán)境都是客戶端瀏覽器,因為JavaScript設(shè)計的初衷就是做一些瀏覽器與用戶的交互和一些網(wǎng)頁的特效來補充HTML和CSS的不足。
2、在2009年,誕生了node.js技術(shù),node.js是一個Javascript運行環(huán)境(runtime)。實際上它是對Google V8引擎進行了封裝, node.js是一個基于Chrome JavaScript運行時建立的平臺, 用于方便地搭建響應(yīng)速度快、易于擴展的網(wǎng)絡(luò)應(yīng)用。node.js使得JavaScript可以運行在服務(wù)器端作為一種服務(wù)器腳本語言運行,類似于php等動態(tài)語言。
判斷JavaScript腳本運行在瀏覽器還是node.js環(huán)境中?
this === window ? 'browser' : 'node';
通過判斷Global對象是否為window,如果不為window,則當前腳本運行在node.js環(huán)境中。
/**********************************************************************************************************/
javascript的代碼之所以能被執(zhí)行,是因為javascript解釋引擎的存在,每一款瀏覽器都會有JS引擎。瀏覽器外要運行javascript的代碼,同樣需要這個東西。ie老版本的JScript,ie9以后的Chakra,mozilla的SpiderMonkey,chrome的v8,Safari的Nitro,KDE Konqueror的KJS,js之父用javascript寫的Narcissus,java語言寫的Rhino,等等,都是js引擎,都能獨立在瀏覽器之外運行。