函数参数默认值

时间:2013-04-12 06:15:24

标签: javascript

function foo( a, b ) {

  a = a || '123';
  b = b || 55;  
  document.write( a + ',' + b );
}

foo(); // prints: 123,55
foo('bar'); // prints: bar,55
foo('x', 'y'); // prints x,y

但:

foo(0,''); // prints: 123,55

为什么不打印0,55?

3 个答案:

答案 0 :(得分:4)

由于||测试了真实性0属于被认为是false的值。

答案 1 :(得分:3)

因为值0 is a "falsy" value并被视为false

答案 2 :(得分:2)

检查时,

0和“”也会计算为false。因此,您需要将条件更改为

a = a != null ? a : '123';
b = b != null ? a : 55;