亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

深入淺析Node環境和瀏覽器的區別

發布時間:2020-09-29 18:13:07 來源:腳本之家 閱讀:184 作者:manshufeier 欄目:web開發

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

一、全局環境下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環境中xxx();或window.xxx();了。因為這些API是瀏覽器級別的封裝,純javascript中是沒有的。當然node中也提供了不少node特有的API。

二、js引擎

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

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

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

  js引擎都固定了,還對應神馬兼容性。

三、DOM操作

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

四、I/O讀寫

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

五、模塊加載

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

  在nodeJS中提供了CMD的模塊加載的API,如果你用過seaJS,那么應該上手很快。

  node還提供了npm 這種包管理工具,能更有效方便的管理我們飲用的庫

  當然瀏覽器這邊ES6也有這方面的補充,相信未來會更好。。。

總結

以上所述是小編給大家介紹的Node環境和瀏覽器的區別,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富民县| 阿拉善盟| 达孜县| 阳泉市| 隆德县| 梁河县| 茶陵县| 鹤岗市| 琼结县| 突泉县| 南郑县| 常熟市| 资阳市| 和林格尔县| 博客| 凤阳县| 略阳县| 塘沽区| 乡城县| 吴忠市| 固安县| 迁安市| 泌阳县| 遂宁市| 江孜县| 潼南县| 阿合奇县| 宽城| 玉龙| 金川县| 铅山县| 台州市| 外汇| 兰州市| 洱源县| 分宜县| 太仆寺旗| 桓台县| 虎林市| 北海市| 黎城县|