javaScript函数-为什么我的默认参数失败?

javaScript函数-为什么我的默认参数失败?,javascript,function,ecmascript-6,default-parameters,Javascript,Function,Ecmascript 6,Default Parameters,我的Javascript函数引导我的控制台返回我: TypeError:样式为空 下面是代码片段: let样式={ 一:一,, 二:二,, 3:3 } 函数样式(样式=样式,…规则集){ 返回ruleSetStock.map(ruleSet=>{ console.log(规则集) 返回样式[规则集] }) } console.log(样式设置(null,“一”、“二”、“三”)仅当未传递值或未定义时才被分配 让defaultStyle={1:1,2:2,3:3} 函数样式化(样式=默认样式,

我的Javascript函数引导我的控制台返回我:

TypeError:样式为空

下面是代码片段:

let样式={
一:一,,
二:二,,
3:3
}
函数样式(样式=样式,…规则集){
返回ruleSetStock.map(ruleSet=>{
console.log(规则集)
返回样式[规则集]
})
}
console.log(样式设置(null,“一”、“二”、“三”)
仅当
未传递值或
未定义时才被分配

让defaultStyle={1:1,2:2,3:3}
函数样式化(样式=默认样式,…规则集目录){
返回ruleSetStock.map(ruleSet=>{
返回样式[规则集]
})
}

log(样式(未定义的“一”、“二”、“三”))
需要更新的两件事

  • 传递默认参数没有值或未定义
  • 将样式默认变量更改为其他名称
  • 请查看更新的代码

    let defaultStyle={
    一:一,,
    二:二,,
    3:3
    }
    函数样式化(样式=默认样式,…规则集目录){
    返回ruleSetStock.map(ruleSet=>{
    console.log(规则集)
    返回样式[规则集]
    })
    }
    
    log(样式设置(未定义的“一”、“二”、“三”)
    样式
    变量重命名为
    样式
    ,然后在调用
    样式设置
    时使用
    未定义
    ,而不是将
    null
    作为第一个参数:

    const styles = {
      one: 1,
      two: 2,
      three: 3
    }
    
    function styling(style = styles, ...ruleSetStock) {
    
      return ruleSetStock.map(ruleSet => {
        console.log(ruleSet)
        return style[ruleSet]
      })
    }
    
    console.log(styling(undefined, "one", "two", "three"))
    // one
    // two
    // three
    // [1, 2, 3]
    

    “如果未传递任何值或未定义的值,则允许使用默认值初始化命名参数”问题是您正在传递null,因此它将在返回行中抛出null错误,如果它为null,则您希望采用默认样式对象不是“使用es6的更干净方式”是什么意思?OP显然已经在使用带有默认初始化器语法的ES6。您可能需要指出您认为使代码更干净的特定语言功能。删除返回关键字