Во всех учебниках и уроках что я читал, всегда пишут что первым выполнится тот оператор в выражении, у которого больше приоритет. И вроде бы это логично. Но давайте спросим у самого языка. Вот вам два примера:
var a = 10;
a = a + (a = 5);
console.log(a);
var a = 10;
a = a++ + (a + 5);
console.log(a);
В первом и втором примере левая часть вычисляется до скобок, хотя у скобок наивысший приоритет. Я уже понял алгоритм, для меня это не проблема. Но!!! Почему этого нет ни в одном учебнике? Что это и почему так? Канешно врядли кто-то знает ответ, просто так есть и надо мирится.
Могу привести даже более пугающий пример, надеюсь он прояснит ситуацию :)
var obj = {
get A()
{
console.log('A!');
return 5;
},
get B()
{
console.log('B!');
return 2;
}
}
var result = obj.A + obj.B * 2;
console.log(result);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Столкнулся со странной ситуацией, есть функция которая должна просто удалить все пробелы в строке:
Недавно начал изучать JS, для практики решил написать небольшой калькуляторВсе в нем более-менее работает, но интересует вопрос, как оптимизировать...
Полога, что создаю дубль, но вдруг что-то изменилось) и есть решение вернуть значение примаса PromiseValue?