JavaScript 術語表 – JavaScript 完全手冊(2018版)
sary-36.jpg" class="alignCenter"/>
小編推薦:ofollow,noindex">掘金是一個面向程式員的高質量技術社群,從 一線大廠經驗分享到前端開發最佳實踐,無論是入門還是進階,來掘金你不會錯過前端開發的任何一個技術乾貨。
注:本文為 《JavaScript 完全手冊(2018版) 》第36節,你可以檢視該手冊的完整目錄。
最後,介紹一些您可能不熟悉的前端開發術語。
非同步
當您啟動某些內容時,程式碼是非同步的,建議忘記它,並且當結果準備就緒時,您可以將其取回而無需等待它。 典型的例子是一個 AJAX 呼叫,它可能需要幾秒鐘,同時你完成其他的東西,當響應準備就緒時,呼叫回撥函式。 Promise 和 async/await 是處理非同步的現代方法。
塊(Block)
在 JavaScript 中,塊是用大括號({}
)包裹的。if
語句包含一個塊,for
迴圈包含一個塊。
塊級作用域
使用函式作用域,在塊中定義的任何變數對整個塊都是可見的,可以在塊內部訪問,但塊外部不能訪問。
回撥
回撥是在發生某些事情時呼叫的函式。元素單擊事件會繫結一個事件處理程式,這就是回撥函式,當用戶單擊元素時會呼叫該回調函式。fetch 請求有一個回撥函式,當資源被下載時呼叫該回調函式。
宣告
宣告就是告訴機器你需要做什麼,然後讓他計算出詳細資訊。 React 被認為是宣告性的,因為你更注重推理抽象而不是直接編輯 DOM 。 每種高階程式語言都比彙編程式等低階程式語言更具宣告性。 JavaScript 比 C 語言更具宣告性,HTML是宣告性的。
回退
當用戶無法訪問特定功能時,回退可以用於提供良好的體驗。例如,禁用 JavaScript 的使用者應該能夠返回到頁面的純 HTML 版本。或者對於沒有實現 API 的瀏覽器,您應該有一個回退,以避免完全破壞使用者的體驗。
函式作用域
在函式作用域中,函式中定義的任何變數都是可見的,並且可以在整個函式內部訪問。
不可變性(Immutability)
當一個變數的值在建立後無法更改時,該變數就被認為是不可變的。可變變數可以改變的。這同樣適用於物件和陣列。
詞法作用域
詞法作用域是一個特定作用域,父函式的變數可以被內部函式訪問。內部函式的作用域也包括了父函式的作用域。
Polyfill
polyfill 是一種為現有 JavaScript 提供新功能,或為舊版瀏覽器提供現代瀏覽器 API 的方法。 polyfill 是一種特殊的 shim 。
如果你還有迷惑,可以檢視JavaScript術語:shim 和 polyfill 瞭解更多細節。
純函式(pure function)
一個沒有副作用(side effects)的函式(不會修改外部資源),其輸出僅由引數決定。您可以呼叫此函式 1M 次,並且給定相同的引數集,輸出將始終相同。
重新賦值
JavaScript 中,使用var
和let
宣告的變數允許您無數次地重新賦值。 使用const
宣告,您可以有效地為字串,整數,布林值和物件宣告一個不可變值(對於物件值來說,你無法重新分配,但您仍然可以通過其方法對其進行修改)。
作用域
作用域是一個變數集合,該變數集合對於程式來說是可見的那一部分。
Scoping
Scoping 程式語言裡定義的一組規則,用於確定變數的值。
Shim
Shim 包含了許多功能或者 API。它通常用於抽象內容,預填充引數或為不支援某些功能的瀏覽器新增 polyfill。你可以把它看作相容層。
如果你還有迷惑,可以檢視JavaScript術語:shim 和 polyfill 瞭解更多細節。
副作用(side effects)
副作用是當一個函式與它之外的某個其他函式或物件進行互動。與網路或檔案系統或UI的互動都是副作用。
state(狀態)
在討論元件時,state(狀態) 通常會發揮作用。如果元件管理自己的資料,則元件可以是 stateful(有狀態的),如果元件不管理自己的資料,則可以是 stateless(無狀態) 元件。
有狀態的(stateful)
一個有狀態的元件,函式或類管理其自己的狀態(資料)。它可以儲存陣列,計數器或其他任何東西。
無狀態的(stateless)
一個無狀態的元件,函式或者類也被稱作dumb ,因為它無法使用自己的資料做出決定,所以它的輸出或者展示完成基於它的引數。這意味著純函式無狀態的。
嚴格模式(Strict mode)
嚴格模式是 ECMAScipt 5.1 的新功能,它會導致 JavaScript 執行時捕捉更多的錯誤,但是它可以通過拒絕未宣告的變數和衝突的物件屬性等其他容易被忽視的問題來幫助你改進 JavaScript 程式碼。建議:使用嚴格模式。另一個“草率模式(sloppy mode)”看名字就知道不是什麼好事情。
Tree Shaking
Tree Shaking 意味著從你傳送給使用者的包中刪除“死程式碼”。如果你在import
語句中添加了一些從未使用過的程式碼,這些程式碼就不會被髮送給你的使用者,從而減少檔案大小和載入時間。
關於 Tree Shaking 的實現和原理請檢視webpack 2中的Tree Shaking
感謝閱讀!
如果你覺得本文對你有幫助,那就請分享給更多的朋友
關注「前端乾貨精選」加星星,每天都能獲取前端乾貨
