国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

深入淺析Node環(huán)境和瀏覽器的區(qū)別

2024-05-06 15:31:39
字體:
供稿:網(wǎng)友

正好最近有朋友咨詢我這個問題,那就簡單談一下我理解的node環(huán)境和瀏覽器的區(qū)別,高手請略過。

一、全局環(huán)境下this的指向

  在node中this指向global而在瀏覽器中this指向window,這就是為什么underscore中一上來就定義了一 root;

 var root = typeof self == 'object' && self.self === self && self ||       typeof global == 'object' && global.global === global && global ||       this;

 而且在瀏覽器中的window下封裝了不少的API 比如 alert 、document、location、history 等等還有很多。我們就不能在node環(huán)境中xxx();或window.xxx();了。因為這些API是瀏覽器級別的封裝,純javascript中是沒有的。當(dāng)然node中也提供了不少node特有的API。

二、js引擎

  在瀏覽器中不同的瀏覽器廠商提供了不同的瀏覽器內(nèi)核,瀏覽器依賴這些內(nèi)核解釋折我們編寫的js。但是考慮到不同內(nèi)核的少量差異,我們需要考慮瀏覽器兼容性。好在有一些優(yōu)秀的庫幫助我們處理這個問題,比如jquery、underscore等等。

  NodeJS是基于Chrome's JavaScript runtime,也就是說,實際上它是對GoogleV8引擎(應(yīng)用于Google Chrome瀏覽器)進(jìn)行了封裝。V8引 擎執(zhí)行Javascript的速度非常快,性能非常好。

      NodeJS并不是提供簡單的封裝,然后提供API調(diào)用,如果是這樣的話那么它就不會有現(xiàn)在這么火了。Node對一些特殊用例進(jìn)行了優(yōu)化,提供了替代的API,使得V8在非瀏覽器環(huán)境下運行得更好。例如,在服務(wù)器環(huán)境中,處理二進(jìn)制數(shù)據(jù)通常是必不可少的,但Javascript對此支持不足,因此,V8.Node增加了Buffer類,方便并且高效地 處理二進(jìn)制數(shù)據(jù)。因此,Node不僅僅簡單的使用了V8,還對其進(jìn)行了優(yōu)化,使其在各環(huán)境下更加給力。

  js引擎都固定了,還對應(yīng)神馬兼容性。

三、DOM操作

  瀏覽器中的js大多數(shù)情況下是在直接或間接(一些虛擬DOM的庫和框架)的操作DOM。因為瀏覽器中的代碼主要是在表現(xiàn)層工作。但是node是一門服務(wù)端技術(shù)。沒有一個前臺頁面,所以我門不會在node中操作DOM。

四、I/O讀寫

  與瀏覽器不同,我們需要像其他服務(wù)端技術(shù)一樣讀寫文件,nodejs提供了比較方便的組件。而瀏覽器(確保兼容性的)想在頁面中直接打開一個本地的圖片就麻煩了好多(別和我說這還不簡單,相對路徑。。。。。。試試就知道了要么找個庫要么二進(jìn)制流,要么上傳上去有了網(wǎng)絡(luò)地址在顯示。不然人家為什么要搞一個js庫呢),而這一切node都用一個組件搞定了。

五、模塊加載

  javascript有個特點,就是原生沒提供包引用的API一次性把要加載的東西全執(zhí)行一遍,這里就要看各位閉包的功力了。所用東西都在一起,沒有分而治之,搞的特別沒有邏輯性和復(fù)用性。如果頁面簡單或網(wǎng)站當(dāng)然我們可以通過一些AMD、CMD的js庫(比如requireJS 和 seaJS)搞定事實上很多大型網(wǎng)站都是這么干的。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 枞阳县| 晋江市| 青浦区| 广州市| 南部县| 会理县| 婺源县| 平安县| 鹤庆县| 金坛市| 郁南县| 敦煌市| 新郑市| 平乡县| 南郑县| 察隅县| 东乌| 綦江县| 儋州市| 镇巴县| 平舆县| 永平县| 湟中县| 万州区| 云和县| 缙云县| 城步| 和林格尔县| 秦皇岛市| 黄龙县| 霍城县| 荆州市| 罗源县| 托里县| 安新县| 米林县| 长武县| 汉源县| 大理市| 鹤岗市| 黑水县|