Не делайте этого
function byMonth(export){
export = export || 0;
alert(export);
}
Edit:
В предыдущей версии была тихая ошибка, я оставляю ее просто в качестве примера того, что НЕ ДЛЯ ТОГО .
Проблема в том, что если передать функцию в аргумент false
, она примет значение по умолчанию, хотя вы на самом деле вызывали ее с аргументом.
Все остальные параметры будут игнорироваться, и будет использоваться значение по умолчанию (из-за концепции javascript falsy )
- Число ноль
0
- Пустая строка
""
NaN
false
null
- и (очевидно)
undefined
Более безопасный способ проверить наличие параметра:
function byMonth(export){
if(export === undefined) export = 0;
}
Редактировать 2 :
Предыдущая функция не на 100% безопасна, так как кто-то (возможно, идиот) может определить undefined
, заставляя функцию вести себя неожиданно. Это окончательная, работающая где угодно, пуленепробиваемая версия:
function byMonth(export){
var undefined;
if(export === undefined) export = 0;
}