日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

js怎样和硬件交互_Node.js与JavaScript

發(fā)布時(shí)間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js怎样和硬件交互_Node.js与JavaScript 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

有很多介紹nodejs的文章,也有很多教程,覆蓋了服務(wù)器開發(fā)、桌面開發(fā)、移動(dòng)端等等,但是鮮有文章明確的回答過一個(gè)問題:Node是什么?

這看起來是一個(gè)再簡(jiǎn)單過的問題了,真要答起來可不容易,不去深入研究的話可能會(huì)認(rèn)為Node就是javascript,javascript就是Node,筆者最初也是這么認(rèn)為的,但這種想法并不正確。

要尋求正確的答案首先要弄明白Node與JavaScript的關(guān)系,在Node官網(wǎng)是這樣描述的:

Node.js? is a JavaScript runtime built on Chrome's V8 JavaScript engine.

大概的意思就是Node是一個(gè)支持javascript的運(yùn)行時(shí)(runtime),是用來完成運(yùn)行腳本所需要的系統(tǒng)底層支持。嚴(yán)格的說來,Node支持的只是ECMAScript語法,它屬于javascript的一部分。

① ECMAScript:描述了該語言的語法和基本對(duì)象。

② DOM:文檔對(duì)象模型,處理網(wǎng)頁內(nèi)容的方法和接口。

③ BOM:瀏覽器對(duì)象模型,與瀏覽器進(jìn)行交互的方法和接口。

對(duì)于編程語言而言,語法的作用是面向開發(fā)者所體現(xiàn)的,最終交付于硬件執(zhí)行的效果卻是體現(xiàn)在解釋/編譯器上的。Node采用C++實(shí)現(xiàn)與系統(tǒng)底層的互動(dòng),遵循的語法是ECMAScript,當(dāng)然如果把內(nèi)核的V8引擎更換一下,完全可以實(shí)現(xiàn)對(duì)Ruby或Python的支持。

為什么Node選擇了javascript?完全是因?yàn)槌錾腣8引擎。

Node.js里頭沒有DOM和BOM的操作,只保留的JavaScript的語法核心(ES), 并且增加了事件驅(qū)動(dòng)的非阻塞 I/O 模型,使其輕量級(jí)和高效,并且V8是基于ECMAScript標(biāo)準(zhǔn)實(shí)現(xiàn)的,因此Node.js作為服務(wù)運(yùn)行在Windows、Linux、Mac設(shè)備時(shí),把JavaScript的角色從前臺(tái)開發(fā),轉(zhuǎn)移到了后臺(tái)開發(fā)。

Node.js完成了javascript和硬件之間的溝通,充當(dāng)翻譯官的角色。這過程中涉及了兩個(gè)重要的概念:

· runtime

· VM

最出名的runtime當(dāng)屬VC++,借助微軟推出的VC++,開發(fā)者只需要編寫C/C++代碼即可完成Windows程序開發(fā),而不需要考慮與硬件交互的底層操作。同樣的,V8在Node中作為javascript的runtime出現(xiàn),,這與chrome內(nèi)嵌V8的作用是一樣的,不過node針對(duì)IO做了更多的擴(kuò)展,比如FS模塊的實(shí)現(xiàn)等等。

這里關(guān)于另一個(gè)概念VM,泛指二進(jìn)制文件與硬件之間的交互層。作為開發(fā)者所熟知的對(duì)比,C++編譯后的二進(jìn)制文件可以直接被系統(tǒng)調(diào)用,但對(duì)于java而言,編譯好的字節(jié)碼雖然也是二進(jìn)制文件,單必須交給虛擬機(jī)運(yùn)行,虛擬機(jī)完成與系統(tǒng)和硬件的互動(dòng)。這樣的好處是開發(fā)者無需顧忌系統(tǒng)和硬件的差異,由虛擬機(jī)完成不同系統(tǒng)的抽象來實(shí)現(xiàn)同樣的運(yùn)行時(shí)。

因此借助Node.js,目前出現(xiàn)了大批跨平臺(tái)的桌面端開發(fā)工具,比如老牌的NW.js和新興的electron等等。這也引起了javascript語言生命力大爆發(fā),無論是傳統(tǒng)設(shè)備還是物聯(lián)網(wǎng)等各方面都能看到它的影子。

總結(jié)

以上是生活随笔為你收集整理的js怎样和硬件交互_Node.js与JavaScript的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。