怎麼真正入行Web前端行業 JS五大新特性是什麼

  怎麼真正入行Web前端行業?JS五大新特性是什麼?JavaScript是Web開發者必學的三種語言之一,是一種具有函數優先的輕量級,解釋型或即時編譯型的編程語言。隨著互聯網的更迭以及技術的革新,JavaScript也增加了很多新特性,接下來就給大家分享一下。

怎麼真正入行Web前端行業 JS五大新特性是什麼

  一、類的私有變量

  最新提案之一是在類中添加私有變量的方法。我們將使用#符號表示類的私有變量。這樣就不需要使用閉包來隱藏不想暴露給外界的私有變量。通過#修飾的成員變量或成員函數就成為了私有變量,如果試圖在Class外部訪問,則會拋出異常。現在,此特性可在最新版本的Chrome和 Node.js中使用。

  二、空位合併操作符

  在開發過程中,經常會遇到這樣場景:變量如果是空值,則就使用默認值,我們是這樣實現的:

  let c = a ? a : b // 方式1

  let c = a || b // 方式2

  這兩種方式有個明顯的弊端,它都會覆蓋所有的假值,如(0, '', false),這些值可能是在某些情況下有效的輸入。

  為了解決這個問題,有人提議創建一個“nullish”合併運算符,用??表示。有了它,我們僅在第一項為null或undefined時設置默認值。

  三、可選鏈操作符

  你可能碰到過這樣的情形:當需要訪問嵌套在對象內部好幾層的屬性時,會得到臭名昭著的錯誤Cannot read property 'stop' of undefined,然後你就要修改你的代碼來處理屬性鏈中每一個可能的undefined對象,比如:

  let nestedProp = obj && obj.first && obj.first.second;

  在訪問obj.first.second之前,obj和obj.first 的值要被確認非null(且不是undefined)。目的是為了防止錯誤發生,如果簡單直接的訪問obj.first.second而不對obj和obj.first 進行校驗就有可能產生錯誤。

  有了可選鏈式調用 ,你只要這樣寫就可以做同樣的事情:

  let nestedProp = obj?.first?.second;

  如果obj或obj.first是null/undefined,表達式將會短路計算直接返回undefined。

  四、static字段

  它允許類擁有靜態字段,類似於大多數OOP語言。靜態字段可以用來代替枚舉,也可以用於私有字段。現在,此特性可在最新版本的Chrome和Node.js中使用。

  五、WeakRef

  一般來說,在JavaScript中,對象的引用是強保留的,這意味著只要持有對象的引用,它就不會被垃圾回收。

   目前在Javascript中,WeakMap和WeakSet是弱引用對象的唯一方法:將對象作為鍵添加到WeakMap或WeakSet中,是不會阻止它被垃圾回收的。

  JavaScript的WeakMap並不是真正意義上的弱引用:實際上,只要鍵仍然存活,它就強引用其內容。WeakMap僅在鍵被垃圾回收之後,才弱引用它的內容。WeakRef是一個更高級的API,它提供了真正的弱引用,Weakref實例具有一個方法deref,該方法返回被引用的原始對象,如果原始對象已被收集,則返回undefined對象。JavaScript中對象的引用是強引用,WeakMap和WeakSet可以提供部分的弱引用功能,若想在JavaScript中實現真正的弱引用,可以通過配合使用WeakRef和終結器(Finalizer)來實現。

  除了以上內容,JavaScript新特性還包括BigInt、static字段。想要入行Web前端,就必須掌握JavaScript,就一定要了解JavaScript特性。為了讓自己儘快掌握技術,你可以專業學習一下。


分享到:


相關文章: