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

Вопрос по приоритетам!?
Привет всем!Помогите разобраться в работе приоритетов!Вот конкретный пример:
alert(1 + 1 == 2 && true); //true

Моя логика рассуждений как работает это выражение:
1.Вначале интерпретатор вычисляет сложение получается:
2 == 2 && true
2. Потом сравнение 2 == 2 получается:
true && true
3. В итоге оператор && возвращает последнее истинное значение.Я понял так!Еще пример(он взят из книги Выразительный JavaScript):
alert(1 + 1 == 2 && 10 * 10 > 50); // true

Здесь(как я думаю исходя из таблицы приоритетов)js вычисляет его следующим образом:
1. Сначала умножение(14), получаем: 1 + 1 == 2 && 100 > 50
2. Затем сложение(13): 2 == 2 && 100 > 50
3. Далее "больше"(11): 2 == 2 && true
4. Потом "равно"(10): true && true
Получаем true.
Изначально я думал, что при сравнение происходит вычисление левого и правого выражения!Но так будет, только если заключить хотя бы одно выражение в скобки:
alert(1 + 1 == (2 && 10 * 10 > 50)); // 2 == true  => 2 == 1 => false


Просьба прокомментировать самым строгим образом, если что не так!Спасибо!
Ответить с цитированием