自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

33 個重要的 JavaScript 概念,你學會幾個?

開發(fā) 前端
調用棧是解釋器(如web瀏覽器中的JavaScript解釋器)跟蹤其在調用多個函數(shù)的腳本中的位置的機制——當前正在運行什么函數(shù)以及從函數(shù)中又調用了哪些函數(shù)等。

了解這33個JavaScript概念絕對會讓你將來的職業(yè)生涯受益無窮。

話不多說,直接進入主題!

1. 調用棧

調用棧是解釋器(如web瀏覽器中的JavaScript解釋器)跟蹤其在調用多個函數(shù)的腳本中的位置的機制——當前正在運行什么函數(shù)以及從函數(shù)中又調用了哪些函數(shù)等。

2. 原始類型(Primitive Types)

除了對象之外的所有類型都定義了不可變的值(即不能更改的值)。例如(不同于C語言),字符串是不可變的。我們將這些類型的值稱為“原始值”。

3. 值類型和引用類型

分配了非原始值的變量將獲得對該值的引用。引用指向對象在內存中的地址。變量實際上并不包含值。

4. 隱式、顯式、標稱、結構化和鴨子類型

類型強制意味著當運算符的操作數(shù)是不同的類型時,其中一個將被轉換為另一個操作數(shù)類型的“等價”值。

5. == 和 === 和 typeof

JavaScript有兩種看上去相似、但實際大相徑庭的方法可用于測試相等性。那就是=====

6. 函數(shù)作用域、塊作用域和詞法作用域

詞法作用域:定義在詞法階段的作用域。是由你在寫代碼時將變量和塊作用域寫在哪里來決定的。

函數(shù)作用域:屬于這個函數(shù)的全部變量都可以在整個函數(shù)的范圍內使用(事實上也可用于嵌套的作用域)。

7. 表達式與語句

表達式可以像語句一樣工作,這就是我們也有Expression語句的原因。但是,另一方面,語句不能像表達式那樣工作。

8. IIFE、模塊和命名空間

常用的函數(shù)編碼模式有一個花哨的名字:Immediately-invoked Function Expression(立即調用函數(shù)表達式)?;蛘吒鼜V為人知的是被寫作IIFE。

9. 消息隊列和事件循環(huán)

問:JavaScript如何異步和單線程?

答:JavaScript語言是單線程的,異步行為不是JavaScript語言本身的一部分,而是構建在瀏覽器(或編程環(huán)境)中的核心JavaScript語言之上,并通過瀏覽器API訪問。

10. setTimeout、setInterval和requestAnimationFrame

我們可以決定現(xiàn)在不執(zhí)行函數(shù),而在以后的某個時間執(zhí)行。

11. JavaScript引擎

在寫JS代碼有時感覺有點神奇,因為開發(fā)人員編寫的一系列字符就像魔術一樣,在瀏覽器中變成具體的圖像、文字和動作。

這一切都是由JS引擎在背后默默地支持著。

12. 位運算符、類型數(shù)組和數(shù)組緩沖區(qū)

好的,從技術上講,對于計算機來說,一切都歸結為1和0。因為計算機不使用數(shù)字,也不使用字符或字符串,它只使用二進制數(shù)字(位)。即一切都以二進制形式進行存儲。然后計算機使用UTF-8等編碼將保存的位組合映射到字符、數(shù)字或不同的符號(ELI5版本)。

13. DOM和布局樹

文檔對象模型,通常稱為DOM,是使網(wǎng)站具有交互性的重要部分。它是一個界面,允許編程語言操縱網(wǎng)站的內容、結構和風格。JavaScript是連接到Internet瀏覽器DOM的客戶端腳本語言。

14. 工廠和類

JavaScript是基于原型的語言,意味著可以通過具有克隆和擴展能力的通用對象來共享對象屬性和方法。這稱為原型繼承,與類繼承不同。

15. this、call、apply和bind

這些函數(shù)對每個JavaScript開發(fā)人員都非常重要,因為幾乎每個JavaScript庫或框架中都會用到。

16.new、Constructor、instanceof和Instances

每個JavaScript對象都有一個原型。JavaScript中的所有對象都從其原型繼承其方法和屬性。

17. 原型繼承和原型鏈

JavaScript對于學習基于類的語言(如Java或C++)的開發(fā)人員來說有點困惑,因為它是動態(tài)的并且本身不提供類實現(xiàn)(class關鍵字由ES2015引入,但卻是語法糖,JavaScript仍然基于原型)。

18. Object.create和Object.assign

Object.create方法是在JavaScript中創(chuàng)建新對象的方法之一。

19. map,reduce,filter

即使你不知道什么是函數(shù)式編程,也可能一直在使用mapfilterreduce。它們非常有用,可幫助編寫更清晰的邏輯。

20. 純函數(shù)、函數(shù)副作用、狀態(tài)突變和事件傳播

我們的許多錯誤都植根于IO相關、數(shù)據(jù)突變、帶有副作用的代碼,然后在代碼庫中蔓延——從接受用戶輸入、通過http調用接收意外響應或寫入到文件系統(tǒng)。不幸的是,這是一個我們不得不習慣的殘酷現(xiàn)實。

21. 閉包

閉包是將(封閉的)函數(shù)與對其周圍狀態(tài)(詞法環(huán)境)的引用捆綁在一起的組合。換句話說,閉包使你可以從內部函數(shù)訪問外部函數(shù)的范圍。在JavaScript中,每次創(chuàng)建函數(shù)的同時都會創(chuàng)建閉包。

22. 高階函數(shù)

JavaScript可以接受高階函數(shù)。這種處理高階函數(shù)的能力以及其他特性使JavaScript成為非常適合函數(shù)式編程的編程語言之一。

23. 遞歸

可以擴展你對函數(shù)式編程的理解。

24. 集合與生成器

生成器函數(shù)返回Generator對象,同時符合可迭代協(xié)議和迭代器協(xié)議。

25. Promise

Promise對象表示異步操作的最終完成(或失敗)及其結果值。

26. async/await

async/await是一種可以以更舒適的方式處理Promise的特殊語法。非常容易理解和使用。

27. 數(shù)據(jù)結構

JavaScript每天都在發(fā)展。隨著React、Angular、Vue、NodeJS、Electron、React Native等框架和平臺的快速增長,將JavaScript用于大型應用程序已變得相當普遍。

28. 昂貴的運算和Big O標記法

“什么是Big O標記法?”這是一個非常常見的開發(fā)面試問題。簡而言之就是算法運行時間取決于輸入時間的數(shù)學表達式,通常談論最壞的情況。

29. 算法

在數(shù)學和計算機科學中,算法是有明確定義的指令的有限序列,通常用于解決一類特定問題或執(zhí)行計算。

30. 繼承、多態(tài)和代碼重用

類繼承是一個類擴展另一個類的一種方式,因此我們可以在現(xiàn)有基礎上創(chuàng)建新功能。

31. 設計模式

每個開發(fā)人員致力于編寫可維護、可讀和可重用的代碼。隨著應用程序變得越來越大,代碼結構變得越來越重要。設計模式被證明是解決這一挑戰(zhàn)的關鍵——為特定情況下的常見問題提供組織化的結構。

32. 部分應用、Currying、Compose和Pipe

函數(shù)組合是一種組合多個簡單函數(shù)以構建更復雜函數(shù)的機制。

33. 干凈的代碼

編寫干凈、可理解和可維護的代碼是每個開發(fā)人員都必須掌握的一項技能。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2025-01-10 15:29:01

2020-04-07 08:51:25

CCNP協(xié)議網(wǎng)絡協(xié)議路由

2023-11-30 07:37:49

MySQL函數(shù)

2022-11-16 09:04:36

SQL查詢SELECT

2022-04-27 09:48:56

JS前端開發(fā)

2022-07-18 08:08:16

Go?語言技巧

2009-06-30 15:49:00

J2ME編程

2019-11-01 09:23:31

開源項目UI

2022-04-28 08:41:53

JavaScript數(shù)組

2021-10-09 10:50:30

JavaScript編程開發(fā)

2011-07-21 16:03:12

J2ME

2021-06-11 13:59:22

CSS原子類

2010-05-04 08:58:02

.NET

2020-08-06 08:27:21

JavaScript概念語言

2022-08-30 08:13:30

流程模板定期復盤數(shù)據(jù)

2024-10-31 09:15:09

2022-04-08 14:45:23

JavaScript框架/前端

2009-04-22 17:18:29

PCB技術單片機

2020-07-15 07:45:51

Python開發(fā)工具

2023-09-13 08:00:57

云原生Java開發(fā)者
點贊
收藏

51CTO技術棧公眾號