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?
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?
因为||
测试真实性,并且0
是被认为是的值之一false
。
因为该值0
是一个“假”值,并且被认为是false
0 和 "" 在选中时也会计算为 false。因此,您需要将您的条件更改为
a = a != null ? a : '123';
b = b != null ? a : 55;