函数的默认值
ヤッハロー、Kaiqisanすうう、一つふつうの学生プログラマである , 今天康康一个比较重要且灵活的东西 — 默认值,这个玩意其实非常好使,肯积极适使用的话,代码瘦身就不在话下。
- 上节提到的短路运算符
function app(a, b) {
a = a || 5
b = b || 10
return a * b
}//在这里,如果没有给这个方法传值的时候,就会采用默认值(这里分别为5,10)
- 第二种默认赋值的格式
function app(a = 10, b = 5){ // 如果a没有传值,默认赋值为5,b同理
return a * b
}// 这个实例也是同样的道理
// 在调用的时候
app(4) //赋值a=4, b默认为5,最终结果为20
app(undefined, 1)//赋值b=1,a默认为10,最终结果为10
注意点
- 注意函数本身的机制,切勿不可这么写
function add(val1 = 5, val2 = 5, val3 = 5, val4 = 5) {
return val1 + val2 + val3 + val4
}
let sum = add(20, 10, , 55) // 不可空出传入参数,否则必报错
可以这么写
function add(val1 = 5, val2 = 5, val3 = 5, val4 = 5) {
return val1 + val2 + val3 + val4
}
let sum = add(20, 10, undefined, 55) // 90
也可以这么写
function add(val1 = 5, val2 = 5, val3 = 5, val4 = 5) {
return val1 + val2 + val3 + val4
}
let sum = add(20, 10) // 后俩没传值,取默认值,结果为40
- 传入值最好不要是null,毕竟undfined和null不是一种数据类型。传入函数的值是null,而不是默认值,这样会造成不必要的错误
function add(val1 = 5, val2 = 5, val3 = 5, val4 = 5) {
return val1 + val2 + val3 + val4
}
let sum = add(20, 10, null, 50) // 不取默认值,结果为80
总结
为了避免上面的麻烦,在写函数的时候请先思考一下需要传入的参数哪些是重要的,哪些是次要的,把重要的,必填的参数放在前面,把次要的,可能不会有传值的参数放在后面。嘛!可能不会方便太多,但是这也是一种代码规范。