var x = y !== undefined ? y : 1;
Обратите внимание, что var x = y || 1;
назначит 1
для любого случая, когда y
является ложным (например, false
, 0
, ""
), что может быть причиной того, почему это "не работает" для тебя.Кроме того, если y
является глобальной переменной, если она действительно не определена, вы можете столкнуться с ошибкой, если вы не обращаетесь к ней как window.y
.
Как подсказывает vol7ron в комментариях, вы также можетеиспользуйте typeof
, чтобы избежать необходимости ссылаться на глобальные переменные как window.<name>
:
var x = typeof y != "undefined" ? y : 1;