javascript條件式訪問屬性和箭頭函數(shù)介紹
一、條件式訪問屬性
?. 是ES2020引入的新特性,是一個條件式屬性訪問操作符,當你訪問值為undefined
變量的某個屬性值時,如果使用.操作符會直接報錯,如果使用條件式屬性訪問操作符來訪問會返回undefined
。
看例子:
let book = {price:10, edition:10, name:"javascirpt" } console.log(book.page.num)
直接報錯:
TypeError: Cannot read property 'num' of undefined
因為book.page
的值 undefined
, undefined
是沒有任何屬性值的,所以會報錯。
如果你無法確定某個值是undefined
還是對象,除了可以用 if 語句來判斷之外,還可以直接用條件式訪問操作符來訪問某個屬性, 就算被訪問的對象是undefined
,也不會報錯。而是返回 undefined
console.log(book.page?.num)
輸出:
undefined
二、箭頭函數(shù)介紹
箭頭函數(shù)是ES6
中出現(xiàn)的一種定義函數(shù)的簡寫方法, 用=>分隔參數(shù)列表和函數(shù)體。
例子:
let square = x=>x**2; console.log(square(3))
輸出:
9
這個函數(shù)的定義等價于傳統(tǒng)函數(shù):
function square(x){ return x**2 }
箭頭函數(shù)通常用于把一個未命名函數(shù)作為參數(shù)傳給另一個函數(shù)。
let nums = [1,2,3,4].map(x=>x*2) console.log(nums)
輸出:
[ 2, 4, 6, 8 ]
箭頭函數(shù)讓代碼看起來更簡潔了。
如果使用傳統(tǒng)的function
關(guān)鍵字來定義函數(shù),看起來就顯得有點啰嗦
nums = [1,2,3,4].map(function(x){return x*2}) console.log(nums)
箭頭函數(shù)如果有多個參數(shù),則需要使用括號括起來
const add = (x,y)=>x+y; console.log(add(1,2))
如果箭頭函數(shù)的函數(shù)體有多條語句,則要將函數(shù)體用大括號括起來,并用return關(guān)鍵字返回值
const add = (x,y)=>{let tmp=x+y;return tmp}; console.log(add(1,2))
這時候箭頭函數(shù)的函數(shù)體和普通的function
定義的函數(shù)體格式就完全一樣了。所以箭頭函數(shù)在簡單的單行語句中才顯得簡潔,并具有可讀性。一旦函數(shù)體過于復(fù)雜,再用箭頭函數(shù)來定義可讀性就沒那么好了。
到此這篇關(guān)于javascript條件式訪問屬性和箭頭函數(shù)介紹的文章就介紹到這了,更多相關(guān)javascript條件式訪問屬性和箭頭函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript 運行機制詳解再淺談Event Loop
這篇文章主要介紹了JavaScript 運行機制詳解及淺談了Event Loop,感興趣的小伙伴可以和小編一起閱讀下面文章的具體內(nèi)容2021-09-09JavaScript實現(xiàn)棧結(jié)構(gòu)詳細過程
這篇文章主要介紹了JavaScript實現(xiàn)棧結(jié)構(gòu)詳細過程,棧即stack它是一種受限的線性表,后進先出LIFO,更多具體的內(nèi)容,需要的小伙伴參考下面文章的詳細內(nèi)容2021-12-12JavaScript的function函數(shù)詳細介紹
這篇文章主要介紹了JavaScript的function函數(shù)詳細,而我們的JavaScript腳本語言比較特殊,相對于C語言,它的參數(shù)是不需要數(shù)據(jù)類型加持的。返回值return,我就不過多描述,他是和 C語言通的,如果沒寫他就會自動返回undefined,下面一起來看看文章內(nèi)容,需要的朋友可以參考一下2021-11-11