Подтвердить что ты не робот

Что такое var x = x || {};

что делает следующий код в java script:

var x = x || {};
4b9b3361

Ответ 1

|| является логическим OR.

Выражение

var x = x OR {};

должно стать более очевидным.

Если x имеет значение фальшивости (например, null, undefined, 0, ""), мы назначаем x пустой объект {}, иначе просто сохраните текущее значение. Длинная версия будет выглядеть как

var x = x ? x : {};

Ответ 2

Если x - undefined (или null или любое другое значение false), он становится пустым.

Ответ 3

Нельзя писать "var x = x || {};" как таковой.

Единственное обстоятельство, когда это не идентично "var x = {};" когда x ранее был инициализирован в той же области. Это аморально. Примечание:

function() {
  x = {foo:"bar"};
  var x = x || {};
}

То же самое, что и более запутанное, чем

function() {
  var x = {foo:"bar"};
  x = x || {};
}

В любом случае нет ссылки на значение символа "x" в глобальной области.

Это выражение представляет собой запутанный вариант идиомы законной ленивой инициализации свойств:

function( foo ) { 
  foo.x = foo.x || {};
  foo.x.y = "something";
}

Ответ 4

Присвойте x новому пустому объекту, если он null (undefined, false) или сохраните его существующее значение, если не null.

Ответ 5

Если х не определено или не назначено значение, в качестве значения по умолчанию для него будет выбран пустой объект.

т.е.

for example
x = 10
var x = x || {};

вывод должен быть

10

если значение x не присвоено. выходное значение должно быть,

undefined

Ответ 6

если var x определен, то это будет определенное значение. Иначе это будет пустой объект вроде [object Object]

Например, в следующем блоке кода x будет 10:

var x = 10;
x = x || {}

Однако, если:

var x = x || {};

то x будет [object Object]