假設a
對象是a = {b:1,c:2,d:null,e:undefined}
我們用解構賦值:爲什麼解構賦值不檢查空值?
var {
b : amer ,
c : karam ,
d : moji = 3 ,
e : yasi = [] ,
} = a;
amer
是1
和karam
是2
,它是正確的,但我把默認值d
和e
。因此,如果d
或e
是undefined
或null
,分配使用默認值,是[]
因爲e
是undefined
但moji
返回null
值,它是如此的不可思議,因爲在解構assingment默認值是用於檢查undefined
或null
。
爲什麼解構賦值不檢查空值?
也許我對這種風格一無所知,但我真的不明白你的代碼片段的語法 - 它的幾個部分。最明顯的是,你真的可以像這樣定義變量'a'嗎?你能指點我一個資源嗎? –
@DouglasTylerGordon它是默認值的標準[對象解構](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Object_destructuring)。 – Bergi
爲什麼它沒有啓用空值默認值?因爲'null' *是一個值,明確地說是「當前未設置或沒有設置」的值。它與*甚至不存在*不同,它是'undefined'所代表的。 – sweaver2112