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 :(得分: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;