Показать сообщение отдельно
  #14 (permalink)  
Старый 16.05.2012, 12:26
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от 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 */);
Ответить с цитированием