Не могу понять задачу по JS

90
21 апреля 2021, 12:50

Не могу понять почему результат получается 8, объясните пожалуйста.

var a = 1,x; 
x = ++a + ++a; 
x +=a; 
console.log(x); // 8

Answer 1
  1. В самом начале мы присваиваем переменной a значение 1.
  2. После этого производим 2 раза инкремент (в вашем случае используется префиксная форма):
    • первый ++a — увеличиваем a на 1, получаем 2,
    • второй ++a — увеличиваем a на 1, получаем 3,
    • складываем получившиеся значения, получаем 5 и записываем это значение в переменную x.
  3. Запись x += a эквивалентна x = x + a, x у нас равна 5, a, после последнего инкремента, равна 3. В итоге и получаем значение 8.

Также стоит упомянуть, что приоритет префиксного инкремента/декремента выше, чем у оператора сложения, поэтому инкремент выполнится раньше, чем суммирование.

READ ALSO
100% высота блока в React

100% высота блока в React

С помощью npm установил ReactИз "коробки" существует файл App

80
Указатель на тело функции?

Указатель на тело функции?

Столкнулся я с проблемой изменения кода функции в целях оптимизации (прошу прощения за си-стиль):

119
Почему получаю ошибку `copy assignment operator is implicitly deleted`?

Почему получаю ошибку `copy assignment operator is implicitly deleted`?

Есть класс в котором есть вот такая переменная

120