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
is a "falsy" value和被認爲是一個false
0和「」也計算爲false。因此,您需要將您的狀況更改爲
a = a != null ? a : '123';
b = b != null ? a : 55;
'0'是虛假的。我會使用'var a = typeof a!=='undefined'? a:'123';' – Blender