es6 鏈判斷運算子

2021-10-12 12:43:27 字數 772 閱讀 8363

老的寫法

var obj = }}

// 錯誤的寫法

var name =obj.info.user.name // 若物件不存在,則會報錯

// 正確的寫法

var name = (obj &&

obj.info &&

obj.info.user &&

obj.info.user.name) || 'default'

(?.)寫法

var name = obj?.info?.user?.name

鏈判斷運算子是直接在鏈式呼叫的時候判斷,左側的物件是否為null或undefined。如果是,則直接返回undefined

注意:若babel的版本低於7.0.0,則無法使用,需要公升級版本

1.(公升級babel版本)進入到專案根目錄執行

npx babel-upgrade --write

公升級過版本,新增以下devdependencies依賴:

@babel/plugin-proposal-optional-chaining 

在.babelrc或者babel.config.js中加入這個外掛程式

執行 

npm install

ES6 擴充套件運算子

擴充套件運算子用3個點表示,功能是把陣列或者類陣列物件展開成一系列用逗號隔開的值 1,陣列 let arr red green blue console.log arr red,green,blue拷貝陣列 和object.assign一樣都是淺拷貝 let arr red green blue l...

ES6擴充套件運算子

首先,我們要讀仔細下面這句話,就很容易知道擴充套件運算子的使用了,可以在心裡反覆讀三遍 接下來,我們看下究竟怎麼個情況 宣告乙個方法 var foo function a,b,c console.log a console.log b console.log c 宣告乙個陣列 var arr 1,2...

es6擴充套件運算子

1 複製 拷貝 陣列 陣列元素都是基本資料型別 var arr a b c var copy arr console.log copy a b c arr copy false2 函式呼叫 陣列作引數 function add x,y var numbers 4 38 add numbers 423...