久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      nodejs和瀏覽器的區(qū)別是什么

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

      nodejs和瀏覽器的區(qū)別是什么

      本教程操作環(huán)境:windows7系統(tǒng)、nodejs 12.19.0版,DELL G3電腦。

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

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

        在node中this指向global而在瀏覽器中this指向window,這就是為什么underscore中一上來(lái)就定義了一 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();了。因?yàn)檫@些API是瀏覽器級(jí)別的封裝,存javascript中是沒(méi)有的。當(dāng)然node中也提供了不少node特有的API。

      二、js引擎

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

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

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

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

      三、DOM操作

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

      nodejs和瀏覽器的區(qū)別是什么

      四、I/O讀寫

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

      五、模塊加載

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

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

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

        當(dāng)然瀏覽器這邊ES6也有這方面的補(bǔ)充,相信未來(lái)會(huì)更好。。。

        當(dāng)然,關(guān)于node和瀏覽器的區(qū)別還有很多,我會(huì)隨時(shí)補(bǔ)充上。

      【推薦學(xué)習(xí):《nodejs 教程》】

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)