Логические операторы && и || работают с величинами разных типов очень странным образом. Они преобразуют величину с левой стороны оператора в булевскую, чтобы понять, что делать дальше, но в зависимости от оператора и от результата этого преобразования, возвращают оригинальное значение либо левой, либо правой части. К примеру, || вернёт значение с левой части, когда его можно преобразовать в true – а иначе вернёт правую часть. console.log(null || "user") // → user console.log("Karl" || "user") // → Karl Такая работа оператора || позволяет использовать его как откат к значению по умолчанию...
Когда от нас ждут ответ с каким-либо утверждением или отрицанием мы либо соглашаемся, говоря «да», либо отрицаем, говоря «нет». Подобные вопросы подразумевают два возможных ответа – либо «да», когда выражение расценивается как правда(истина), либо «нет», когда утверждение оценивается как ошибочное, ложное. В программировании, если результатом вычисление выражения может быть истина или ложь, то такое выражение называется ЛОГИЧЕСКИМ. Логическое (выражение) значение - это иное название для проверки условия...