欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript條件式訪問屬性和箭頭函數(shù)介紹

 更新時(shí)間:2021年11月12日 15:47:26   作者:劉志軍  
這篇文章主要介紹了javascript條件式訪問屬性和箭頭函數(shù),下面文章圍繞條件式訪問屬性和箭頭函數(shù)的相關(guān)資料展開文章內(nèi)容,需要的朋友可以參考一下

一、條件式訪問屬性

?. 是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

    這篇文章主要介紹了JavaScript 運(yùn)行機(jī)制詳解及淺談了Event Loop,感興趣的小伙伴可以和小編一起閱讀下面文章的具體內(nèi)容
    2021-09-09
  • JavaScript實(shí)現(xiàn)棧結(jié)構(gòu)詳細(xì)過程

    JavaScript實(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é)

    這篇文章主要為大家介紹了詳解lodash中的cloneDeep使用細(xì)節(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • JS算法題解搜索插入位置方法示例

    JS算法題解搜索插入位置方法示例

    這篇文章主要為大家介紹了JS算法題解搜索插入位置方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 17個(gè)JavaScript?單行程序

    17個(gè)JavaScript?單行程序

    這篇文章主要介紹了17個(gè)JavaScript?單行程序?,在?JavaScript?代碼的世界里,在保證代碼易讀性的前提下更少等于更好,下面文章將為大家分享17?個(gè)?JavaScript?單行程序代碼,希望能幫助到大家
    2021-12-12
  • JS前端使用Canvas快速實(shí)現(xiàn)手勢(shì)解鎖特效

    JS前端使用Canvas快速實(shí)現(xiàn)手勢(shì)解鎖特效

    這篇文章主要為大家介紹了JS前端使用Canvas快速實(shí)現(xiàn)手勢(shì)解鎖特效,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 前端JavaScript大管家 package.json

    前端JavaScript大管家 package.json

    這篇文章主要介紹了前端JavaScript大管家 package.json,在每個(gè)前端項(xiàng)目中,都有package.json文件,它是項(xiàng)目的配置文件,常見的配置有配置項(xiàng)目啟動(dòng)、打包命令,聲明依賴包等,下面我們就來學(xué)習(xí) package.json的詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-10-10
  • 微信小程序滾動(dòng)Tab實(shí)現(xiàn)左右可滑動(dòng)切換

    微信小程序滾動(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-08
  • JavaScript的function函數(shù)詳細(xì)介紹

    JavaScript的function函數(shù)詳細(xì)介紹

    這篇文章主要介紹了JavaScript的function函數(shù)詳細(xì),而我們的JavaScript腳本語言比較特殊,相對(duì)于C語言,它的參數(shù)是不需要數(shù)據(jù)類型加持的。返回值return,我就不過多描述,他是和 C語言通的,如果沒寫他就會(huì)自動(dòng)返回undefined,下面一起來看看文章內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • 前端JavaScript之Promise

    前端JavaScript之Promise

    這篇文章主要介紹關(guān)于前端JavaScript的Promise,Promise 是異步編程的一種解決方案,下面文章我們就來看看Promise的基本用法及各種方法,需要的朋友可以參考一下,希望對(duì)你有所幫助
    2021-10-10

最新評(píng)論