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

JS 基本概念詳細(xì)介紹

 更新時(shí)間:2021年10月14日 10:23:01   作者:海擁  
這篇文章主要介紹JS 基本概念,對(duì)于初學(xué)者來(lái)說(shuō),Javascript 乍一看似乎很容易,因?yàn)樗念?lèi)似于 C 的語(yǔ)法,但不管它的運(yùn)行方式如何,對(duì)語(yǔ)言 (ESNext) 及其框架所做的不斷變化可能會(huì)讓初學(xué)者不知所措。下面我們就來(lái)看JS 初學(xué)者怎么入門(mén)吧

許多人在深入研究 Javascript 之前忽略了 Javascript 的理論方面。這些概念幫助我們了解構(gòu)建 Javascript 應(yīng)用程序時(shí)所采用的不同路徑和模式。這些模式存在于 JS Land 的每個(gè)框架中,因此在學(xué)習(xí)語(yǔ)言本身之前了解這些概念很有意義。

1、JS的特點(diǎn)

1.1 多范式

Javascript 支持過(guò)程式、面向?qū)ο蠛褪录?qū)動(dòng)的函數(shù)式編程!掌握 JS 的面向?qū)ο缶幊田L(fēng)格是非常有益的。

面向?qū)ο缶幊炭蓭椭绦騿T更輕松地可視化軟件應(yīng)用程序的組件。此外,學(xué)習(xí) Typescript(Javascript with Types)可以讓程序員輕松實(shí)現(xiàn)行業(yè)中最好的設(shè)計(jì)模式。這些設(shè)計(jì)模式用于以最有效的方式解決軟件編程中遇到的最常見(jiàn)問(wèn)題。

這種多功能性使 Javascript 非常平易近人且非常強(qiáng)大。

1.2 解釋

Javascript C/C++ 不同,它不是一次讀取程序,而是逐行解釋。這就是說(shuō) JS 會(huì)比 C/C++ 等編譯語(yǔ)言慢。

警告:  Javascript 因在運(yùn)行時(shí)是一種極其被動(dòng)的語(yǔ)言而臭名昭著,對(duì)錯(cuò)誤進(jìn)行故障排除非常困難。

不過(guò)隨著時(shí)間和練習(xí),你將學(xué)會(huì)如何流暢地運(yùn)行。最常見(jiàn)的錯(cuò)誤涉及你的變量返回NULL值。當(dāng)此類(lèi)問(wèn)題確實(shí)出現(xiàn)時(shí),請(qǐng)前往 Stack Overflow,因?yàn)槲蚁蚰惚WC,無(wú)論錯(cuò)誤多么離譜,你都不是第一個(gè)遇到錯(cuò)誤的人。在你的項(xiàng)目進(jìn)行開(kāi)發(fā)時(shí)自由地使用console.log()也是一個(gè)好辦法。這可以幫助您準(zhǔn)確找出程序生命周期中的時(shí)刻,您的變量可能已經(jīng)脫落。

1.3單線程

Javascript 一次只能執(zhí)行一項(xiàng)任務(wù)。它根據(jù)類(lèi)型將不同的任務(wù)排隊(duì)到不同的隊(duì)列中。
在最抽象的意義上,Javascript 基本上會(huì)將同步任務(wù)和異步任務(wù)分組,并將它們分開(kāi)排隊(duì)。

同步任務(wù)是在遇到它們時(shí)立即處理的語(yǔ)句,即它們立即運(yùn)行。這些任務(wù)包括日志語(yǔ)句、變量聲明、條件檢查等。

異步任務(wù)涉及可能需要可變時(shí)間來(lái)返回輸出的任務(wù)。異步任務(wù)的一個(gè)示例可能是從 Web API 請(qǐng)求信息。

此外,Javascript 還有一個(gè) Job Queue,用于處理名為 Promises JS Feature

通過(guò)右鍵單擊此網(wǎng)頁(yè)并點(diǎn)擊檢查選項(xiàng)卡,您實(shí)際上可以看到 Javascript 的單線程特性。接下來(lái),轉(zhuǎn)到剛剛打開(kāi)的窗口上的控制臺(tái)選項(xiàng)卡。輸入以下代碼并按回車(chē)鍵。\

while(true) {}


您現(xiàn)在可以觀察到此頁(yè)面完全沒(méi)有響應(yīng)。這是因?yàn)榇隧?yè)面上的 Javascript 現(xiàn)在正忙于運(yùn)行我們上面執(zhí)行的無(wú)限 while 循環(huán)。

1.4 非阻塞

我們之前已經(jīng)討論過(guò)異步任務(wù)。由于 JS 在單線程環(huán)境中運(yùn)行,默認(rèn)情況下,它不會(huì)進(jìn)行等待!

異步代碼塊只有在所有同步代碼塊都執(zhí)行完后才會(huì)執(zhí)行,而不管代碼在程序中的位置如何。

console.log("我是第一個(gè)語(yǔ)句")

setTimeout(()=> {
console.log("我是第二個(gè)語(yǔ)句")
},1000)

console.log("我是第三個(gè)語(yǔ)句")

這里console.log()將其中的語(yǔ)句記錄到控制臺(tái),setTimeout()函數(shù)在一秒鐘后運(yùn)行第二條語(yǔ)句。

在檢查輸出時(shí)

我是第一個(gè)語(yǔ)句
我是第三個(gè)語(yǔ)句
我是第二個(gè)語(yǔ)句


我們可以看到第三條語(yǔ)句在第二條語(yǔ)句之前記錄。這是因?yàn)?JS 處理同步和異步代碼塊的固有方法。

1.5 高級(jí)

JavaScript 是一種高級(jí)語(yǔ)言。高級(jí)語(yǔ)言可能只是意味著它們更接近人類(lèi)所說(shuō)的語(yǔ)言。高級(jí)語(yǔ)言能夠提供更多功能來(lái)幫助程序員更好地表達(dá)他們正在嘗試構(gòu)建的內(nèi)容。

Javascript 的這種高級(jí)特性有助于它最好地服務(wù)于 Web 的客戶(hù)端部分。過(guò)去 JS 的一個(gè)主要限制是它只能在客戶(hù)端提供服務(wù),而不能像大多數(shù)服務(wù)器端語(yǔ)言那樣進(jìn)行文件操作。

然而,這已經(jīng)改變了NodeJS,允許開(kāi)發(fā)人員使用 Javascript 來(lái)構(gòu)建后端服務(wù)器。因此,只需使用一種語(yǔ)言,軟件開(kāi)發(fā)人員就可以在服務(wù)器端和客戶(hù)端進(jìn)行操作。這導(dǎo)致全棧工程師變得突出。

1.6 動(dòng)態(tài)類(lèi)型

Javascript 也是一種動(dòng)態(tài)類(lèi)型語(yǔ)言。這意味著與需要為變量指定數(shù)據(jù)類(lèi)型的 C 不同,我們可以type-inferenceJavascript 中使用來(lái)自動(dòng)檢測(cè)數(shù)據(jù)的類(lèi)型,變量保存。\

// 在 C 中變量必須有數(shù)據(jù)類(lèi)型。 為了將數(shù)據(jù)類(lèi)型從一種類(lèi)型更改為另一種類(lèi)型,我們需要使用類(lèi)型轉(zhuǎn)換
int a = 5;
char b = "a";
float c = 7.036;


Javascript 中,我們使用letconst分別聲明變量或常量。\

let a = 5
console.log(a) // 5
a = 'Hello World'
console.log(a) // Hello World

const b = 'JS 很酷' 
console.log(b) // JS 很酷

b = '我改變主意了'
console.log(b) // Error: const cannot be changed

雖然類(lèi)型推斷因其易于使用而看起來(lái)是一個(gè)加分點(diǎn),但它立即成為需要類(lèi)型安全作為功能的大型項(xiàng)目的一個(gè)騙局。

出于這個(gè)原因,較大的項(xiàng)目使用 TypeScript,它只是 Javascript 的包裝器,提供類(lèi)型、接口和各種其他功能。

2、學(xué)習(xí)策略

JS Land 中安頓下來(lái)需要一段時(shí)間,但我有一個(gè)簡(jiǎn)單的清單,Minimum Requirements用于學(xué)習(xí) Express ReactJS 等框架。

首先,不要急于學(xué)習(xí)這些框架。你需要花點(diǎn)時(shí)間掌握 Vanilla Javascript

3、基礎(chǔ)知識(shí)

  • 變量和常量
  • 條件塊(if-else
  • 循環(huán)(forwhileforEach
  • 開(kāi)關(guān)盒(Switch Case
  • 方法(Functions

高級(jí)部分(最低要求)

  • 異步/等待
  • Promises
  • Javascript 中的類(lèi)
  • Rest/Spread 語(yǔ)法
  • 數(shù)組/對(duì)象迭代器
  • 數(shù)組解構(gòu)
  • 模塊(導(dǎo)入、導(dǎo)出)

在構(gòu)建項(xiàng)目時(shí)繼續(xù)學(xué)習(xí),很快你就會(huì)對(duì)語(yǔ)言有很強(qiáng)的掌握。

到此這篇關(guān)于JS 基本概念詳細(xì)介紹的文章就介紹到這了,更多相關(guān)JS 基本概念內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

保康县| 美姑县| 武宁县| 鸡泽县| 定陶县| 罗城| 波密县| 容城县| 道孚县| 抚顺县| 拜城县| 秦安县| 鲁山县| 汉中市| 石门县| 谢通门县| 合江县| 客服| 阿拉善右旗| 富宁县| 田东县| 高清| 武川县| 丹阳市| 平陆县| 镇宁| 商洛市| 渭南市| 东方市| 安庆市| 沅江市| 亳州市| 鄂温| 青冈县| 游戏| 施秉县| 仪陇县| 于都县| 新绛县| 钟山县| 五家渠市|