Сообщение от DreamTheater
|
А если значение по-умолчанию undefined или null?
|
я в таких случаях не пишу так
вообще,я уже давно так не делаю. непереданные переменные просто меняют работу кода, они не получают значения.
Сообщение от bes
|
Всё-таки попытаемся выяснить для чего этот приём так часто используется в программировании.
|
необязательные аргументы - которые можно опустить при вызове функции, и которые меняют её поведение (или не меняют). флаги сюда тоже относятся.
пример:
var dump = function(variable, useAlert){
if(useAlert){
alert(variable);
} else {
console.log(variable);
}
};
ещё пример - функция ожидает объект в качестве аргумента. если вызвать её без ничего, то будет ошибка при попытке обращения к info, как к объекту.
var ajax = function(info){
info = info || {};
makeReq( info.url );
};
сюда же относится обычная строчка в обработчике клика
var handler = function(e){
e = e || window.event;
// ....
}
ещё пример - используется в GCC при сжатии - выполнится выражение справа, если выражение слева вернёт false
var foo = function(){ alert("Foo called!"); };
var bar = function(dontCallFoo){
dontCallFoo || foo();
};
bar("я уже не falsy");
falsy значение :
var foo = function(){ alert("Foo called!"); };
var bar = function(dontCallFoo){
dontCallFoo || foo();
};
bar(/* undefined */);