请教JavaScript中range函数默认参数step=start<end?1:-1的含义
关于range函数中默认步长逻辑的解释
这行step = start < end ? 1 : -1是ES6参数默认值的写法,用三元运算符给step设置了智能默认规则:
- 当起始值
start小于结束值end时,默认步长设为1,生成递增序列,比如range(1,10)就会输出从1到10的连续数组。 - 当起始值
start大于等于结束值end时,默认步长设为-1,生成递减序列,比如调用range(5,2)不用传step,也能得到[5,4,3,2],和手动传-1的效果一致。
这个逻辑的好处是让range函数更易用——不管你要生成递增还是递减的数组,只要不传step,函数会自动根据起始值和结束值的大小关系判断方向,不用额外手动指定步长的正负。
比如你测试range(10,1),不需要传第三个参数,函数会自动用-1作为步长,输出[10,9,8,7,6,5,4,3,2,1]。
内容的提问来源于stack exchange,提问作者bardala
相关产品推荐
相关产品推荐

