Неожиданный результат суммы приращений

#javascript #increment

Вопрос:

Добрый день, пожалуйста, объясните, почему при ожидании 3, 4 выводится на консоль.

 let x = 1;
console.log (x       x) // 4
 

Сначала я подумал, что приоритет операций, но тогда почему в таком примере выводится 8, а не 6, например?

 let x = 1;
console.log (x       x     x) // 8
 

Извините, если этот вопрос дублируется, но я не могу найти ничего об этом вопросе.

Комментарии:

1. x x равно 1 3, что равно 4. x x x равно 1 3 4, что составляет 8. Знаете ли вы разницу между приращением до и после приращения?

2. x добавляет 1 к x после своего вызова, поэтому, когда вы вызываете следующий x, это действительно (x 1)

3. Да, я знаю о приращениях, но я пропустил, что мы работаем с переменной X)

Ответ №1:

Для первого примера:

 let x = 1;
console.log (x       x) // 4 
  1. x возвращает значение x (1) и затем увеличивает его. x это сейчас 2 . (Это постфиксное приращение.)
  2. x увеличивает значение x и возвращает его, равное 3 (2 1). (Это приращение префикса.)
  3. 1 3 = 4

См.раздел Оператор Приращения.

Комментарии:

1. Боже, это было так просто… Спасибо за объяснение.

Ответ №2:

x или x-- сначала используется, а затем обновляется.
x или --x сначала обновить, а затем использовать.

обновить означает обновить значение переменной x .