为什么“解构分配”不检查空值?

Ame*_*icA 2 javascript arrays object destructuring ecmascript-6

假设obj对象是obj = {b:1,c:2,d:null,e:undefined},我们使用解构分配:

const {
    b : amer ,
    c : karam ,
    d : moji = 3 ,
    e : yasi = [] ,
} = obj;
Run Code Online (Sandbox Code Playgroud)

amer1karam2,它是正确的,但我把默认值de。因此,如果deundefinednull,分配使用默认值,yasi[]因为eundefinedmoji返回null值,它是如此的不可思议,因为在解构assingment默认值是用于检查undefinednull

为什么解构分配不检查空值?

Bar*_*icz 6

根据MDN文档,有关对象解构中的默认值:

如果从对象提取的值未定义,则可以为变量分配默认值。