最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2018年08月14日 10:11:53   作者:manshufeier  
最近有朋友問我node環(huán)境和瀏覽器的區(qū)別這一問題,今天小編就抽空給大家介紹下Node環(huán)境和瀏覽器的區(qū)別,感興趣的朋友一起看看吧

正好最近有朋友咨詢我這個問題,那就簡單談一下我理解的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中是沒有的。當然node中也提供了不少node特有的API。

二、js引擎

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

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

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

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

三、DOM操作

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

四、I/O讀寫

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

五、模塊加載

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

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

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

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

總結

以上所述是小編給大家介紹的Node環(huán)境和瀏覽器的區(qū)別,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • 枚舉JavaScript對象的函數(shù)

    枚舉JavaScript對象的函數(shù)

    枚舉JavaScript對象的函數(shù)...
    2006-12-12
  • 原生的html元素選擇器類似jquery選擇器

    原生的html元素選擇器類似jquery選擇器

    做前端,需要選擇元素,下面是實現(xiàn)代碼,一個原生的html元素選擇器類似jquery選擇器,很棒,很實用
    2014-10-10
  • webpack獨立打包和緩存處理詳解

    webpack獨立打包和緩存處理詳解

    這篇文章主要介紹了webpack獨立打包和緩存處理的相關資料,文中介紹的非常詳細,對大家學習webpack具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-04-04
  • javascript簡單實現(xiàn)圖片預加載

    javascript簡單實現(xiàn)圖片預加載

    本文是給大家分享一段簡單的實現(xiàn)圖片預加載技術的javascript代碼,超級精簡,卻很實用,這里推薦給大家
    2014-12-12
  • js實現(xiàn)簡單的放大鏡效果

    js實現(xiàn)簡單的放大鏡效果

    這篇文章主要為大家詳細介紹了js實現(xiàn)簡單的放大鏡效果,可隨意更改,放大區(qū)域的大小、比例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 微信小程序進行微信支付的步驟昂述

    微信小程序進行微信支付的步驟昂述

    最近開發(fā)微信小程序進入到支付階段,一直以來從事App開發(fā),所以支付流程還是熟記于心的。下面通過本文給大家講述下微信小程序進行微信支付的步驟,需要的朋友可以參考下
    2016-12-12
  • 再談JavaScript異步編程

    再談JavaScript異步編程

    再談JavaScript異步編程,簡單描述了幾種JavaScript異步編程模式,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Javascript中的this,bind和that使用實例

    Javascript中的this,bind和that使用實例

    這篇文章主要介紹了Javascript中的this,bind和that使用實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • JavaScript實現(xiàn)簡易tab欄切換內(nèi)容欄

    JavaScript實現(xiàn)簡易tab欄切換內(nèi)容欄

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)簡易tab欄切換內(nèi)容欄,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 前端處理二進制流文件導出為excel表代碼示例

    前端處理二進制流文件導出為excel表代碼示例

    這篇文章主要給大家介紹了關于前端處理二進制流文件導出為excel表的相關資料,后臺管理系統(tǒng),常會出現(xiàn)導出excel表格功能,需要的朋友可以參考下
    2023-08-08

最新評論

苏尼特右旗| 宝鸡市| 静安区| 万荣县| 山阳县| 启东市| 岱山县| 平顶山市| 论坛| 英吉沙县| 鱼台县| 宁安市| 白城市| 左权县| 锦州市| 扶余县| 库车县| 呼图壁县| 鄂温| 交口县| 保德县| 夏河县| 都江堰市| 贵定县| 北票市| 稻城县| 营山县| 手游| 诸暨市| 宜丰县| 北辰区| 伊宁市| 蓬溪县| 江达县| 恩平市| 嵩明县| 宣武区| 安阳县| 常州市| 安平县| 商水县|