node環(huán)境和瀏覽器環(huán)境有哪些區(qū)別

本文小編為大家詳細(xì)介紹“node環(huán)境和瀏覽器環(huán)境有哪些區(qū)別”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“node環(huán)境和瀏覽器環(huán)境有哪些區(qū)別”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

為集寧等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及集寧網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都做網(wǎng)站、集寧網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

區(qū)別:1、在node中this指向global,而在瀏覽器中this指向window;2、瀏覽器中的js大多數(shù)情況下是在直接或間接的操作DOM,而不會在node中操作DOM;3、node中提供了比較方便的組件用于讀寫文件,而瀏覽器中則沒有。

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

node環(huán)境和瀏覽器環(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();了。因?yàn)檫@些API是瀏覽器級別的封裝,存javascript中是沒有的。當(dāng)然node中也提供了不少node特有的API。

二、js引擎

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

nodejs是基于Chrome's JavaScript runtime,也就是說,實(shí)際上它是對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)境下運(yù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。因?yàn)闉g覽器中的代碼主要是在表現(xiàn)層工作。但是node是一門服務(wù)端技術(shù)。沒有一個前臺頁面,所以我門不會再node中操作DOM。

四、I/O讀寫

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

五、模塊加載

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

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

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

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

讀到這里,這篇“node環(huán)境和瀏覽器環(huán)境有哪些區(qū)別”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點(diǎn)還需要大家自己動手實(shí)踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站名稱:node環(huán)境和瀏覽器環(huán)境有哪些區(qū)別
網(wǎng)頁路徑:http://muchs.cn/article22/gpphjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、網(wǎng)站營銷、動態(tài)網(wǎng)站關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司