站長資訊網
        最全最豐富的資訊網站

        nodejs和瀏覽器的區別是什么

        區別:1、全局環境下,node中this指向global,而瀏覽器中this指向window;2、瀏覽器中可直接或間接的操作DOM和BOM,而node中不會操作DOM和BOM;3、瀏覽器無法執行nodejs中的文件操作等功能。

        nodejs和瀏覽器的區別是什么

        本教程操作環境:windows7系統、nodejs 12.19.0版,DELL G3電腦。

        正好最近有朋友咨詢我這個問題,那就簡單談一下我理解的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。

        nodejs和瀏覽器的區別是什么

        四、I/O讀寫

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

        五、模塊加載

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

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

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

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

          當然,關于node和瀏覽器的區別還有很多,我會隨時補充上。

        【推薦學習:《nodejs 教程》】

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 久久久国产乱子伦精品作者 | 国产精品99久久久久久www| 久久久久久久久久免免费精品| 国产精品亚洲日韩欧美色窝窝色欲| 久久久久九九精品影院| 一本久久a久久精品综合夜夜| 久久精品aⅴ无码中文字字幕不卡| 国产精品无码无卡无需播放器| 国产精品一区二区久久不卡 | 国产a视频精品免费观看| 亚洲精品午夜国产VA久久成人| 国产精品自在欧美一区| 久久精品九九亚洲精品天堂| 国产午夜福利精品一区二区三区| 亚洲中文字幕无码久久精品1| 久久久久无码精品国产app| 99久久精品久久久久久清纯| 国产精品久久国产精麻豆99网站| 欧美精品黑人粗大免费| 中文字幕精品一区二区精品| 人妻无码久久精品| 精品国产综合区久久久久久| 成人国产精品日本在线观看| 欧美亚洲精品在线| 四虎国产精品永久一区 | 久久精品中文騷妇女内射| 中文字幕久精品免费视频| 中文字幕日本精品一区二区三区| 欧美精品91欧美日韩操| 老子影院午夜精品无码 | 欧美精品整片300页| 国产香蕉国产精品偷在线观看| 56prom精品视频在放免费| 2021国产三级精品三级在专区| 久久99精品综合国产首页| 欧美亚洲国产精品第一页| 亚洲国产精品久久66| 999久久久国产精品| 9re热国产这里只有精品| 中文精品一卡2卡3卡4卡| 91精品在线国产|