С помощью короткого замыкания можно предотвратить вычисление части выражения:
let x = "", y = 123;
x && alert("foo"); // ""
y || alert("bar") // 123
Поскольку выражения формы логических операций, вы можете использовать их в вызовах функций или в операторах возврата.
Но в конечном итоге это не что иное, как условное ветвление, которое легко достигается с помощью тернарного оператора:
x ? alert("foo") : x; // ""
y ? y : alert("bar"); // 123
Это более читабельно и так же лаконично. Есть ли причина использовать свойство короткого замыкания логических операторов, кроме иллюстративного термина?
&&
и||
были разработаны как специальные формы&
и|
, оптимизированные для конкретных случаев. Для людей, привыкших думать в терминах логической арифметики,x ? y : x
вместоx && y
было бы гораздо менее читабельным, как и проблема с побочными эффектами, и их не совсем то же самое, что в C, от которого Javascript унаследовал их. - person Jon Hanna   schedule 03.02.2016