es6中的默认值不适用于箭头功能

Ala*_*hen 2 javascript ecmascript-6 babeljs

handleSuccessFeatureListing = (selectedOption=7) => {
    console.log(selectedOption);
}
Run Code Online (Sandbox Code Playgroud)

为什么selectedOption仍然可以为null?我以为我已经将7设置为selectedOption的参数的默认值?

log*_*yth 8

只有在没有参数或undefined值的情况下调用函数时,默认值才会生效.如果handleSuccessFeatureListing被调用null,null将被传递.

例如

function fn(arg = 7){
  return arg;
}

fn() === 7
fn(undefined) === 7
fn(6) === 6
fn(null) === null
Run Code Online (Sandbox Code Playgroud)

所以如果你得到一个null,那么它是因为null当你期望一个undefined值时传递给函数.