在深度學(xué)習(xí)Node.js之前,建議學(xué)習(xí)什么?
- Lexical Structure (詞法)
JavaScript 的詞法(lexical grammar)。ECMAScript 源碼文本會(huì)被從左到右掃描,并被轉(zhuǎn)換為一系列的輸入元素,包括 token、控制符、行終止符、注釋和空白符。ECMAScript 定義了一些關(guān)鍵字、字面量以及行尾分號(hào)補(bǔ)全的規(guī)則。
- Expressions (表達(dá)式)
JavaScript 中的基本關(guān)鍵字和常用表達(dá)式。常用表達(dá)式,例如,function*,關(guān)鍵字定義了一個(gè) generator 函數(shù)表達(dá)式。還有左表達(dá)式,例如:new
- Data Types (數(shù)據(jù)類型)
基本數(shù)據(jù)類型包括:Null、Undefined、Boolean、Number、BigInt、String、String、Symbol
類型都定義了表示在語(yǔ)言最低層面的不可變值。我們將這些值稱為原始值。
對(duì)象(object)是指內(nèi)存中的可以被標(biāo)識(shí)符引用的一塊區(qū)域。在 JavaScript 中,對(duì)象是唯一可變的值。
- Classes (類)
類是用于創(chuàng)建對(duì)象的模板。他們用代碼封裝數(shù)據(jù)以處理該數(shù)據(jù)。JS 中的類建立在原型上,但也具有某些語(yǔ)法和語(yǔ)義未與 ES5 類相似語(yǔ)義共享。
- Variables (變量)
一個(gè)變量,就是一個(gè)用于存放數(shù)值的容器。這個(gè)數(shù)值可能是一個(gè)用于累加計(jì)算的數(shù)字,或者是一個(gè)句子中的字符串。變量的獨(dú)特之處在于它存放的數(shù)值是可以改變的。
- Functions (函數(shù))
函數(shù)是 JavaScript 中的基本組件之一。一個(gè)函數(shù)是 JavaScript 過(guò)程 — 一組執(zhí)行任務(wù)或計(jì)算值的語(yǔ)句。要使用一個(gè)函數(shù),你必須將其定義在你希望調(diào)用它的作用域內(nèi)。
一個(gè) JavaScript 函數(shù)用function關(guān)鍵字定義,后面跟著函數(shù)名和圓括號(hào)。
- this operator (this 操作符)
與其他語(yǔ)言相比,函數(shù)的 this 關(guān)鍵字在 JavaScript 中的表現(xiàn)略有不同,此外,在嚴(yán)格模式和非嚴(yán)格模式之間也會(huì)有一些差別。
在絕大多數(shù)情況下,函數(shù)的調(diào)用方式?jīng)Q定了 this 的值(運(yùn)行時(shí)綁定)。this 不能在執(zhí)行期間被賦值,并且在每次函數(shù)被調(diào)用時(shí) this 的值也可能會(huì)不同。ES5 引入了 bind 方法來(lái)設(shè)置函數(shù)的 this 值,而不用考慮函數(shù)如何被調(diào)用的。ES2015 引入了箭頭函數(shù),箭頭函數(shù)不提供自身的 this 綁定(this 的值將保持為閉合詞法上下文的值)。
- Arrow Functions (箭頭函數(shù))
箭頭函數(shù)表達(dá)式的語(yǔ)法比函數(shù)表達(dá)式更簡(jiǎn)潔,并且沒(méi)有自己的this,arguments,super或new.target。箭頭函數(shù)表達(dá)式更適用于那些本來(lái)需要匿名函數(shù)的地方,并且它不能用作構(gòu)造函數(shù)。
- Loops (循環(huán))
for 語(yǔ)句
do...while 語(yǔ)句
while 語(yǔ)句
label 語(yǔ)句
break 語(yǔ)句
continue 語(yǔ)句
for...in 語(yǔ)句
for...of 語(yǔ)句
- Scopes (作用域)
作用域是當(dāng)前的執(zhí)行上下文,值和表達(dá)式在其中“可見”或可被訪問(wèn)。如果一個(gè)變量或表達(dá)式不在當(dāng)前的作用域中,那么它是不可用的。作用域也可以堆疊成層次結(jié)構(gòu),子作用域可以訪問(wèn)父作用域,反過(guò)來(lái)則不行。
JavaScript 的作用域分以下三種:
1、全局作用域:腳本模式運(yùn)行所有代碼的默認(rèn)作用域
2、模塊作用域:模塊模式中運(yùn)行代碼的作用域
3、函數(shù)作用域:由函數(shù)創(chuàng)建的作用域
- Arrays (數(shù)組)
Array 對(duì)象支持在單個(gè)變量名下存儲(chǔ)多個(gè)元素,并具有執(zhí)行常見數(shù)組操作的成員。
- Template Literals (模板)
模板字面量是用反引號(hào)(`)分隔的字面量,允許多行字符串、帶嵌入表達(dá)式的字符串插值和一種叫帶標(biāo)簽的模板的特殊結(jié)構(gòu)。
模板字面量有時(shí)被非正式地叫作模板字符串,因?yàn)樗鼈冏畛1挥米髯址逯担ㄍㄟ^(guò)替換占位符來(lái)創(chuàng)建字符串)。然而,帶標(biāo)簽的模板字面量可能不會(huì)產(chǎn)生字符串——它可以與自定義標(biāo)簽函數(shù)一起使用,來(lái)對(duì)模板字面量的不同部分執(zhí)行任何操作。
- Strict Mode (嚴(yán)格模式)
嚴(yán)格模式是采用具有限制性 JavaScript 變體的一種方式,從而使代碼隱式地脫離“馬虎模式/稀松模式/懶散模式“(sloppy)模式。
有時(shí)你會(huì)看到非嚴(yán)格模式,被稱為“sloppy mode”。這不是一個(gè)官方術(shù)語(yǔ)。
- ECMAScript 2015 (ES6) and beyond (ES6及以上)
ES6及以上版本的內(nèi)容。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-435782.html
異步編程
以下概念也是理解異步編程的關(guān)鍵,異步編程是Node.js的基本部分之一:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-435782.html
- Asynchronous programming and callbacks (異步編程和回調(diào))
- Timers (計(jì)時(shí)器)
- Promises (承諾)
- Async and Await (異步和等待)
- Closures (閉包)
- The Event Loop (事件循環(huán))
到了這里,關(guān)于學(xué)習(xí)Node.js需要哪些JavaScript知識(shí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!