| 
 Приоритеты в выражении запутали Здравствуйте!Помогите понять, почему переменная c = 5? Ведь сначала вычисляется выражение в скобках: (a = b), т.е. переменная a меняет свое значение на 10.А после происходит взятие остатка: 15 % 10 = 5.Только я вот чего не могу уяснить, почему переменная a в левой части выражении равняется 15, а не 10!?Значение переменной a должно было изменится, после операции в скобках или видимо тут используется старое значение переменной a.Подскажите пожалуйста в чем ошибка в моих рассуждениях!И как вычисляется по приоритетам данное выражение!Заранее спасибо! var a = 15, b = 10, c; c = a % (a = b); alert(c); // 5 | 
| 
 AlexanderFilatov, вот что у тебя происходит: var a = 15, b = 10, c; c = a /* "а" у тебя тут равно 15*/ % (a/* только тут у тебя "а" становится 10*/ = b); // итого 15 % 10 = 5 alert(c); // 5 | 
| 
 Это я понял!Но ведь переменная a ссылается на одну область памяти  и если у нее поменялось значение в одно месте, то и в другом должно поменяться!Почему так? | 
| 
 AlexanderFilatov, Так первую "а" ты еще не успел поменять. Это в математика сначала скобки выполняются, а присваивание переменных это не математика. Все идет с лева на право, код у тебя читается так 15 % (10). | 
| 
 Все сообразил!Я понял в чем ошибка моих размышлений!Я думал математически и забыл что интерпретатор вычисляет выражение слева направо!Большое спасибо за ответ! | 
| 
 Цитата: 
 А сначала он не считает, а производит лексический анализ написанного выражения, и только потом принимает решение о действиях. | 
| 
 Цитата: 
 Получается он подставляет сначала значение 15, а затем значение 10 вычислив выражение (a = b) и присваивает той же переменной вот так: var a = 15, b = 10; a = a % (a = b); alert(a); // 5 Я правильно вас понял!? | 
| 
 Цитата: 
 выражение 1(выражение 2(выражение 3)) то порядок выполнения всего выражения будет с 3 к 1, а никак ни слева направо. | 
| 
 Цитата: 
 | 
| 
 Цитата: 
 1.В "a" подставляется значение 15 2.Далее происходит вычисление выражения: (a = b), в переменную "a" получит значение переменной "b".(присвоение)То есть 10. 3. 15 % (10) 4.Результат 5 запишется снова в переменную "a". Я правильно понял суть? | 
| Часовой пояс GMT +3, время: 08:21. |