Алгоритм получение результата А && B
Если операнд A истинный (true, «string», someObj), результатом является B, иначе — А.
То бишь код:
Может быть заменен на более компактный:
Алгоритм получение результата А || B
Если операнд A истинный, результатом является A, иначе — B.
Эта особенность может быть использована для присвоения дефолтных значений переменным:
Создание объекта на лету
Если операнд A истинный (true, «string», someObj), результатом является B, иначе — А.
То бишь код:
if (a) {
return a.member;
} else {
return a;
}
Может быть заменен на более компактный:
return a && a.member;
Алгоритм получение результата А || B
Если операнд A истинный, результатом является A, иначе — B.
Эта особенность может быть использована для присвоения дефолтных значений переменным:
last = input || default_value;
Создание объекта на лету
obj = {fieldName: "a"};
— объект с полем fieldName