Что означает конструкция x = x || значит? - PullRequest
216 голосов
/ 10 мая 2010

Я отлаживаю некоторый JavaScript, и не могу объяснить, что делает ||?

function (title, msg) {
  var title = title || 'Error';
  var msg   = msg || 'Error on Request';
}

Может кто-нибудь дать мне подсказку, почему этот парень использует var title = title || 'ERROR'?Иногда я вижу это и без var декларации.

Ответы [ 11 ]

0 голосов
/ 29 апреля 2016

И я должен добавить еще одну вещь: эта часть стенографии - мерзость. Он неправильно использует оптимизацию интерпретатора (не беспокоясь о второй операции, если первая верна) для управления назначением. Это использование не имеет ничего общего с целью оператора. Я не верю, что его стоит когда-либо использовать.

Я предпочитаю троичный оператор для инициализации, например,

var title = title?title:'Error';

Используется условная операция в одну строку для правильного назначения. Он по-прежнему играет неприглядные игры с правдивостью, но для вас это Javascript.

...