Собственно вот в чём вопрос: если верить https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence , то у операторов инкремента/декремента не самый высокий приоритет. Но на практике, вне зависимости от формы(постфиксная или префиксная – не важно), они выполняются раньше, чем оператор группировки или вызов функции:
function test(i) {
console.log(i);
return(i);
};
let i = 0;
i++ + test(i); //1
То есть, сначала выполняется увеличение переменной на 1, затем в функцию передаётся уже увеличенное значение, а затем, так как форма инкремента постфиксная при выполнении бинарного сложения используется его значение до увеличения, то есть 0. Обернув функцию в скобки, ничего не поменялось.
Получилось, что инкремент выполнился раньше, чем функция, хотя судя по таблице приоритетов, такого быть не должно.
Или это особенность взаимодействия унарных и бинарных операторов(в данном случае плюса, который выполняется слева направо)? Облазал кучу форумов – ответа так и не нашёл. Надеюсь, кто-нибудь сможет мне объяснить, желательно простыми словами;)
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости