Page 110 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 110

(postfix) операторами также важно. Префиксная версия изменяет значение перемен­
       ной, а затем возвращает новое значение; постфиксный оператор изменяет значение
       переменной, а затем возвращает первоначальное значение. Посмотрим, сможете ли
       вы предсказать результаты вычисления следующих выражений (подсказка: операто­
       ры инкремента и  декремента  вычисляются  перед сложением, а вычисления в этом
       примере осуществляются слева направо).

       let  х   =  2 ;
       const  rl   х++  +  х++ ;
       const  r2   ++х  +  ++х ;
       const  rЗ   х++  +  ++х ;
       const  r4   ++х  +  х++;
       let  у   =  1 0 ;
       const  rS   у-- +  у- - ;
       const  rб   --у  +  --у ;
       const  r7   у - +  - -у ;
                   -
       const  r 8    - у  +  у-- ;
                   -
          Давайте запустим этот пример на консоли JavaScript и выясним, сможете ли вы
       предсказать значения констант rl - r8, а также значения х и у на каждом этапе. Если
       у вас возникли проблемы с этим упражнением, попробуйте записать задачу на листе
       бумаги и  расставить круглые скобки согласно порядку выполнения каждой опера­
       ции, например так.
       let  х   =  2 ;
       const  r l    =  х++  +  х++ ;
       1 1     ( (х++)  +  (х++) )
       1 1        (  2  +  (х++) )   вычисляется  слева  направо;
       1 1                      теперь  х  содержит  значение  3
       1 1          2  +  3  )   теперь  х  содержит  значение  4
       1 1            5         результат  5 ;   х  содержит  значение  4
       const  r2  =  ++х  +  ++х;
       / /     ( (++х)  +  (++х) )
       1 1        (  5  +  (++х) )   вычисляется  слева  направо;
       1 1                      теперь  х  содержит  значение  5
       1 1        (  5  +  6  )   теперь  х  содержит  значение  6
       1 1            1 1       результат  1 1 ;   х  содержит  значение  6
       const  r З    =  х++  +  ++х;
       1 1     ( ( х++)  +  (++х) )
       1 1        (  б  +  (++х) )   вычисляется  слева  направо;
       1 1                      теперь  х  содержит  значение  7
       1 1          6  +  8     теперь  х  содержит  значение  8
       1 1            1 4       результат  1 4 ;   х  содержит  значение  8
       1 1
       / /  .  .  и  так  далее
          .




                                                       Арифметические операторы   1 0 9
   105   106   107   108   109   110   111   112   113   114   115