javascript條件式訪問(wèn)屬性和箭頭函數(shù)介紹
一、條件式訪問(wèn)屬性
?. 是ES2020引入的新特性,是一個(gè)條件式屬性訪問(wèn)操作符,當(dāng)你訪問(wèn)值為undefined變量的某個(gè)屬性值時(shí),如果使用.操作符會(huì)直接報(bào)錯(cuò),如果使用條件式屬性訪問(wèn)操作符來(lái)訪問(wèn)會(huì)返回undefined。
看例子:
let book = {price:10,
edition:10,
name:"javascirpt"
}
console.log(book.page.num)
直接報(bào)錯(cuò):
TypeError: Cannot read property 'num' of undefined
因?yàn)?code>book.page 的值 undefined, undefined是沒(méi)有任何屬性值的,所以會(huì)報(bào)錯(cuò)。
如果你無(wú)法確定某個(gè)值是undefined還是對(duì)象,除了可以用 if 語(yǔ)句來(lái)判斷之外,還可以直接用條件式訪問(wèn)操作符來(lái)訪問(wèn)某個(gè)屬性, 就算被訪問(wèn)的對(duì)象是undefined,也不會(huì)報(bào)錯(cuò)。而是返回 undefined
console.log(book.page?.num)
輸出:
undefined
二、箭頭函數(shù)介紹
箭頭函數(shù)是ES6中出現(xiàn)的一種定義函數(shù)的簡(jiǎn)寫方法, 用=>分隔參數(shù)列表和函數(shù)體。
例子:
let square = x=>x**2; console.log(square(3))
輸出:
9
這個(gè)函數(shù)的定義等價(jià)于傳統(tǒng)函數(shù):
function square(x){
return x**2
}
箭頭函數(shù)通常用于把一個(gè)未命名函數(shù)作為參數(shù)傳給另一個(gè)函數(shù)。
let nums = [1,2,3,4].map(x=>x*2) console.log(nums)
輸出:
[ 2, 4, 6, 8 ]
箭頭函數(shù)讓代碼看起來(lái)更簡(jiǎn)潔了。
如果使用傳統(tǒng)的function關(guān)鍵字來(lái)定義函數(shù),看起來(lái)就顯得有點(diǎn)啰嗦
nums = [1,2,3,4].map(function(x){return x*2})
console.log(nums)
箭頭函數(shù)如果有多個(gè)參數(shù),則需要使用括號(hào)括起來(lái)
const add = (x,y)=>x+y; console.log(add(1,2))
如果箭頭函數(shù)的函數(shù)體有多條語(yǔ)句,則要將函數(shù)體用大括號(hào)括起來(lái),并用return關(guān)鍵字返回值
const add = (x,y)=>{let tmp=x+y;return tmp};
console.log(add(1,2))
這時(shí)候箭頭函數(shù)的函數(shù)體和普通的function定義的函數(shù)體格式就完全一樣了。所以箭頭函數(shù)在簡(jiǎn)單的單行語(yǔ)句中才顯得簡(jiǎn)潔,并具有可讀性。一旦函數(shù)體過(guò)于復(fù)雜,再用箭頭函數(shù)來(lái)定義可讀性就沒(méi)那么好了。
到此這篇關(guān)于javascript條件式訪問(wèn)屬性和箭頭函數(shù)介紹的文章就介紹到這了,更多相關(guān)javascript條件式訪問(wèn)屬性和箭頭函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序 頁(yè)面跳轉(zhuǎn)及數(shù)據(jù)傳遞詳解
這篇文章主要介紹了微信小程序 頁(yè)面跳轉(zhuǎn)及數(shù)據(jù)傳遞詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03
前端加密cryptojs與JSEncrypt使實(shí)例詳解
這篇文章主要為大家介紹了前端加密cryptojs與JSEncrypt使實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

