javaScript函数-为什么我的默认参数失败?
我的Javascript函数引导我的控制台返回我: TypeError:样式为空 下面是代码片段: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} 函数样式化(样式=默认样式,
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。您可能需要指出您认为使代码更干净的特定语言功能。删除返回关键字