Показать сообщение отдельно
  #5 (permalink)  
Старый 23.01.2019, 08:09
Интересующийся
Отправить личное сообщение для AlexanderFilatov Посмотреть профиль Найти все сообщения от AlexanderFilatov
 
Регистрация: 14.09.2018
Сообщений: 26

Сообщение от j0hnik
правая часть от && будет выполняться только в случае если левая вернет true
Спасибо вам большое!Я понял!Здесь оператор && использует короткий цикл вычисления, который вычисляет операнды слева направо до первого ложного, а если все истинные, то последнее значение!Поэтому так как левая часть тут равна true, то запустится вычисление второго аргумента, которое тоже равно true!Оно и вернется!
Как например:
var x;
true && (x = 1);
alert(x); // 1

А если первый аргумент false, то вычисление второго аргумента не произойдет:
var x;
false && (x = 1);
alert(x); // undefined

Смутило пояснение автора данной книги: "У || приоритет ниже всех, потом идет &&, потом операторы сравнения, потом все остальное!"
Получается интерпретатор анализирую выражение с оператором && и ||
начинает вычисление с левого аргумента.
Ответить с цитированием