javascript條件式訪問屬性和箭頭函數(shù)介紹
一、條件式訪問屬性
?. 是ES2020引入的新特性,是一個(gè)條件式屬性訪問操作符,當(dāng)你訪問值為undefined
變量的某個(gè)屬性值時(shí),如果使用.操作符會(huì)直接報(bào)錯(cuò),如果使用條件式屬性訪問操作符來訪問會(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
是沒有任何屬性值的,所以會(huì)報(bào)錯(cuò)。
如果你無法確定某個(gè)值是undefined
還是對(duì)象,除了可以用 if 語句來判斷之外,還可以直接用條件式訪問操作符來訪問某個(gè)屬性, 就算被訪問的對(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ù)讓代碼看起來更簡(jiǎn)潔了。
如果使用傳統(tǒng)的function
關(guān)鍵字來定義函數(shù),看起來就顯得有點(diǎn)啰嗦
nums = [1,2,3,4].map(function(x){return x*2}) console.log(nums)
箭頭函數(shù)如果有多個(gè)參數(shù),則需要使用括號(hào)括起來
const add = (x,y)=>x+y; console.log(add(1,2))
如果箭頭函數(shù)的函數(shù)體有多條語句,則要將函數(shù)體用大括號(hào)括起來,并用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)單的單行語句中才顯得簡(jiǎn)潔,并具有可讀性。一旦函數(shù)體過于復(fù)雜,再用箭頭函數(shù)來定義可讀性就沒那么好了。
到此這篇關(guān)于javascript條件式訪問屬性和箭頭函數(shù)介紹的文章就介紹到這了,更多相關(guān)javascript條件式訪問屬性和箭頭函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript 運(yùn)行機(jī)制詳解再淺談Event Loop
這篇文章主要介紹了JavaScript 運(yùn)行機(jī)制詳解及淺談了Event Loop,感興趣的小伙伴可以和小編一起閱讀下面文章的具體內(nèi)容2021-09-09JavaScript實(shí)現(xiàn)棧結(jié)構(gòu)詳細(xì)過程
這篇文章主要介紹了JavaScript實(shí)現(xiàn)棧結(jié)構(gòu)詳細(xì)過程,棧即stack它是一種受限的線性表,后進(jìn)先出LIFO,更多具體的內(nèi)容,需要的小伙伴參考下面文章的詳細(xì)內(nèi)容2021-12-12詳解lodash中的cloneDeep使用細(xì)節(jié)
這篇文章主要為大家介紹了詳解lodash中的cloneDeep使用細(xì)節(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01JS前端使用Canvas快速實(shí)現(xiàn)手勢(shì)解鎖特效
這篇文章主要為大家介紹了JS前端使用Canvas快速實(shí)現(xiàn)手勢(shì)解鎖特效,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09微信小程序滾動(dòng)Tab實(shí)現(xiàn)左右可滑動(dòng)切換
這篇文章主要介紹了微信小程序滾動(dòng)Tab實(shí)現(xiàn)左右可滑動(dòng)切換的相關(guān)資料,這里提供實(shí)現(xiàn)實(shí)例幫助大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-08-08JavaScript的function函數(shù)詳細(xì)介紹
這篇文章主要介紹了JavaScript的function函數(shù)詳細(xì),而我們的JavaScript腳本語言比較特殊,相對(duì)于C語言,它的參數(shù)是不需要數(shù)據(jù)類型加持的。返回值return,我就不過多描述,他是和 C語言通的,如果沒寫他就會(huì)自動(dòng)返回undefined,下面一起來看看文章內(nèi)容,需要的朋友可以參考一下2021-11-11