㈠ JS高級(三)----可選鏈 && Map && Set
可選鏈(?.) 是一種簡化代碼的語法,它允許在訪問嵌套對象屬性時,檢查對象是否為 null 或 undefined。通過使用可選鏈,代碼變得更加簡潔易讀,減少了長串的邏輯判斷。例如:
原本可能需要使用大量的邏輯判斷,現在只需一行可選鏈語法即可實現相同功能。可選鏈簡化了代碼,避免了冗長的表達,提高了代碼的可讀性。
總結了之前關於 JS 高級的主題,檢查變數是否為 null 或 undefined 的方法有三種:
短路 (&& 和 ||):這種方法在邏輯判斷上有一定的缺陷,因為它會進行隱式轉換,如0和""會被轉換為false。
空合並(??):此方法提供了一種更加精準的檢查方式,只會檢查變數是否為 null 或 undefined,並不會進行隱式轉換。
可選鏈(?.):這種語法在檢查變數是否存在時,只檢查是否為 null 或 undefined,並且以簡潔的語法實現,使得代碼更加易於理解和閱讀。
Map 是一種與對象類似的集合數據結構,但具有不同的特性。以下是 Map 的基本語法和使用方法:
實例化 Map:可以使用以下方式創建 Map 對象,然後對其進行操作。
Map 操作方法:包括讀取數據(get(key))、新增數據(set(key, value))、檢查鍵是否存在(has(key))、刪除數據(delete(key))和清空數據(clear())。
與對象相比,Map 在數據結構和操作方法上具有明顯區別,如鍵值對的唯一性、使用場景和操作方式。
Set 是一種類似於數組的數據結構,但其特性在於元素的唯一性。這意味著集合中不會有重復的數據。以下是 Set 的基本語法和特性:
數據唯一性:Set 集合中的元素只會出現一次,重復的數據不會被添加。
Set API:Set 提供了三個主要方法,用於檢查值是否存在(has(value))、添加值(add(value))和刪除值(delete(value))。
通過這些方法,Set 實現了數據的唯一性和高效管理,使得在處理集合數據時更加靈活和方便。
㈡ javascript最新的版本是什麼引入了一些什麼新的特性
EMCAScript6(ES6)是JavaScript的最新版本,它引入了一系列強大的新特性。這些特性極大地簡化了代碼的編寫,提升了開發效率,使JavaScript在處理復雜應用時更加得心應手。
ES6中引入了箭頭操作符,這是一種簡化函數定義的方式,與C#或Java中的lambda表達式類似。使用箭頭操作符,可以將函數定義得更加簡潔。例如,以前需要定義一個函數,現在可以用箭頭操作符直接定義一個回調函數,極大地方便了回調函數的編寫。
ES6還引入了類的支持,使用class關鍵字定義類,使得對象的創建、繼承更加直觀。ES6中的類實際上是JavaScript原型模式的一種封裝。通過類,父類方法的調用、實例化、靜態方法和構造函數等概念都更加形象化。
ES6增強了對象字面量的功能,使得定義對象時更加簡潔與靈活。可以在對象字面量中定義原型,定義方法時不用使用function關鍵字,可以直接調用父類方法。這些改進使得代碼更加簡潔,易於維護。
ES6引入了字元串模板,這是一種更簡潔的字元串拼接方式。使用反引號`可以創建字元串,其中可以包含由美元符號加花括弧包裹的變數${variable}。這種方式使得字元串拼接更加直觀。
ES6引入了解構特性,可以自動解析數組或對象中的值。這使得返回多個值的函數可以直接返回一個數組,數組中的值會自動被解析到對應接收該值的變數中。這種方法使得代碼更加簡潔,易於理解。
ES6引入了let與const關鍵字,讓變數的作用域更加明確。let定義的變數在特定范圍內有效,離開這個范圍則無效。const用來定義常量,即無法被更改值的變數。
ES6還引入了for of循環,用於遍歷數組、類數組或對象。與for in循環不同的是,for of循環提供的不是序號而是值。
ES6引入了模塊的概念,JavaScript原生支持mole。這種將JS代碼分割成不同功能的小塊進行模塊化的概念是在一些三方規范中流行起來的,比如CommonJS和AMD模式。
ES6還引入了Map、Set、WeakMap和WeakSet等新的集合類型,提供了更加方便的獲取屬性值的方法。同時,Map和Set還提供了專門的get和set方法。
ES6還引入了Proxy,可以監聽對象身上的變化,並在這些變化發生後執行相應的操作。這使得我們可以對一個對象有很強的追蹤能力,同時在數據綁定方面也有很大幫助。
ES6還引入了Symbols,這種值可以作為對象的鍵。Symbols是一種基本類型,像數字、字元串和布爾一樣,它不是一個對象。Symbols通過調用symbol函數產生,它接收一個可選的名字參數,該函數返回的symbol是唯一的。之後就可以用這個返回值作為對象的鍵。
ES6還為Math、Number、String和Object等對象添加了許多新的API,使得這些對象的功能更加豐富。
ES6還引入了Promises,這是一種處理非同步操作的模式。它使得非同步編程變得更加簡潔和易於理解。