javascript - 默认函数参数不起作用
问题描述
有一个具有默认参数值的函数
const range = (start = 0, stop, step = 1) => {
console.log('start', start)
console.log('stop', stop)
console.log('step', step)
}
range(4)
请解释为什么控制台显示
start 4
stop undefined
step 1
虽然在我看来它应该出来
start 0
stop 4
step 1
因为我为 start 参数传递了一个默认值。如何纠正这种行为?谢谢
解决方案
将第一个参数作为未定义传递 - 因为函数的参数是“位置的”,即第一个参数获取调用中的第一个值,第二个获取第二个等
如果您undefined
作为参数传递,则分配“默认值”(如果存在)
const range = (start = 0, stop, step = 1) => {
console.log('start', start)
console.log('stop', stop)
console.log('step', step)
}
range(undefined, 4)
或者使用单个对象作为参数,具有属性 start、stop 步骤
也可以将其称为自我记录
const range = ({start = 0, stop, step = 1}) => {
console.log('start', start)
console.log('stop', stop)
console.log('step', step)
}
range({stop:4})
推荐阅读
- django - UpdateView 问题:在 url 中传递的已清理数据不在实例中
- r - 在 U-SQL 中运行 R 脚本
- azure - 秘密名称不支持特殊字符
- javascript - React Date Picker Onchange 方法令人困惑
- java - Java LocaleDate 或 DateTime 用于检查汽车是否需要进行不定期检查
- visual-studio - 如何在 Visual Studio 的 React Native 中打开现有项目?
- asp.net - Crystal Reports 不显示数据库中的记录,只显示列
- java - Hyperjaxb 3 导入 XSD 和 persistence.xml
- json - @JsonPropert 抛出所有错过必填字段的异常
- jenkins - 如何在 Jenkins 日志中隐藏步骤调用