該存儲庫的創建是為了幫助開發人員在JavaScript中掌握其概念。這不是要求,而是未來研究的指南。它基於斯蒂芬·柯蒂斯(Stephen Curtis)撰寫的文章,您可以在此處閱讀。
Github認為是2018年最佳開源項目之一!
通過添加指向您自己的回顧或評論的鏈接來提交PR。如果您想將存儲庫翻譯成您的母語,請隨時這樣做。
此存儲庫的所有翻譯將在下面列出:
呼叫堆棧是JavaScript解釋器用來跟踪程序中功能執行的一種機制。在JavaScript中,函數是按照調用的順序執行的。呼叫堆棧遵循的最後一個(LIFO)原理,這意味著將最後一個功能推入堆棧是第一個要執行的功能。
根據Ecmascript規範,呼叫堆棧定義為執行上下文的一部分。每當調用函數時,都會創建新的執行上下文並將其放置在堆棧頂部。該功能完成後,其執行上下文將從堆棧中刪除,並將控件返回到先前的上下文。這有助於管理同步代碼執行,因為每個函數調用必須在下一個函數開始之前完成。
⬆回到頂部
根據Ecmascript規範,JavaScript具有六種原始數據類型:字符串,數字,bigint,布爾值,未定義和符號。這些類型是不變的,這意味著它們的價值無法改變。還有一種稱為NULL的特殊原始類型,它代表故意沒有任何對象值。
原始值直接分配到變量,當您操縱原始類型時,您將直接處理該值。與對像不同,原始詞沒有屬性或方法,但是JavaScript在必要時會自動將原始值與對應物包裝(例如,在字符串上調用方法時)。
⬆回到頂部
根據eCmascript規範,值類型直接存儲在變量訪問的位置中。這些類型包括數字,字符串,布爾值,未定義,bigint,符號和null。當您為變量分配值類型時,值本身會存儲。
⬆回到頂部
eCmascript規範將JavaScript定義為動態鍵入的語言,這意味著類型與值而不是變量關聯,並且在運行時發生類型檢查。 JavaScript管理類型有多種:
隱式鍵入(或類型強制):這發生在JavaScript在需要時自動將一種數據類型轉換為另一種數據時。例如,JavaScript可能在算術操作期間將字符串轉換為數字。儘管這可以簡化一些代碼,但如果不仔細處理,也可能導致意外結果。
顯式鍵入:與隱式鍵入不同,明確鍵入涉及使用number(),string()或boolean()()之類的函數手動將值從一種類型轉換為另一種類型。
名義分型:JavaScript不本質地支持名義鍵入,在該類型中明確聲明並檢查了類型。但是,TypeScript是JavaScript的超集,它帶來了此功能,以幫助在開發過程中捕獲類型錯誤。
結構打字:在此類型系統中,類型基於數據的結構或屬性。 JavaScript是一種結構鍵入的語言,如果對象共享相同的結構(即相同的屬性和方法),則它們是兼容的。
鴨打字:這是一個概念,即對象的適用性取決於某些屬性和方法的存在,而不是由對象的實際類型確定。 JavaScript在很大程度上依賴於鴨打字,其中從對象的屬性而不是其聲明的類型中推斷出行為。
⬆回到頂部
根據Ecmascript規範,JavaScript包括嚴格(===)和寬鬆(==)等價運算符,它們在比較值時的行為不同。這是一個故障:
==(鬆散的平等):該操作員在比較兩個值之前執行類型的脅迫。如果這些值是不同類型的,則JavaScript將嘗試在比較之前將一個或兩個值轉換為一個公共類型,這可能會導致意外結果。
===(嚴格的平等):該操作員比較了沒有任何類型的脅迫的值和類型。如果兩個值不是同一類型,則比較將返回false。
操作員類型:使用類型運算符來檢查變量的數據類型。雖然通常是可靠的,但有些怪癖,例如,由於JavaScript的實現中的長期行為,null類型如何返回“對象”而不是“ null”。
⬆回到頂部
Ecmascript規範概述了範圍的三種關鍵類型:
函數範圍:在使用VAR的函數中聲明的變量僅在該函數中訪問。該範圍將變量隔離在聲明其聲明的功能之外訪問。
塊範圍:帶有ES6的引入,以Let and const聲明的變量被塊分割。這意味著它們僅在定義的特定塊{}(例如內部循環或條件)中訪問。
詞彙範圍:是指根據代碼中變量的物理位置確定變量訪問的方式。功能是詞彙範圍的,這意味著它們可以從父範圍訪問變量。
⬆回到頂部
根據Ecmascript規範,表達式產生值,語句是執行操作的指令,例如可變分配或控制流。函數聲明會懸掛,並且可以在代碼中定義之前調用,而函數表達式未懸掛,必須在調用之前定義。
⬆回到頂部
隨著ES6模塊的引入,IIFE在範圍隔離中的作用減少了,但它們仍然相關。
⬆回到頂部
事件循環是JavaScript並發模型的關鍵部分,可通過以異步方式處理任務來確保非阻滯行為。了解它如何與消息隊列和微型簽名交互是掌握JavaScript行為的關鍵。
⬆回到頂部
⬆回到頂部
⬆回到頂部
⬆回到頂部
⬆回到頂部
super
⬆回到頂部
this
。 (JavaScript) - Jason Yu⬆回到頂部
typeof
和instanceof
:簡化動態類型檢查 - Axel Rauschmayer博士⬆回到頂部
⬆回到頂部
⬆回到頂部
⬆回到頂部
⬆回到頂部
⬆回到頂部
⬆回到頂部
⬆回到頂部
⬆回到頂部
Promise
101 - Igor Irianto⬆回到頂部
⬆回到頂部
⬆回到頂部
⬆回到頂部
⬆回到頂部
⬆回到頂部
⬆回到頂部
⬆回到頂部
⬆回到頂部
該軟件已根據MIT許可獲得許可,請參閱許可證以獲取更多信息©Leonardo Maldonado。