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

Помните, что все числа в JavaScript имеют двойную точность, а значит,  если  вы
       выполняете арифметическую операцию с целыми числами (например,  3 / 2 ) ,   то ре­
       зультат имеет вид десятичного числа  1 . 5).
                                         (
          Для вычитания и унарного вычитания используется одинаковый символ (знак
       "минус"), так как же JavaScript узнает, что им обозначено? Ответ на этот вопрос сло­
       жен и здесь не рассматривается. Достаточно знать, что унарное вычитание вычисля­
       ется перед обычным.
       const  х   5 ;
       const  у  =  3  - -х;   1 1   у  равно  8
          То же относится к унарной сумме. Унарная сумма используется довольно редко.
       Обычно с ее помощью строка преобразуется в число или она используется для вы­
       равнивания значений при инвертировании знака некоторых из них.
       const  s  =  " 5 " ;
       const  у  =    3  +  + s ;   / /  у  равно  8 ;   без  унарного  плюса  это
                        / /   был  бы результат  конкатенации  строк:  "35 "

       1 1   использование  ненужных  унарных  плюсов  для  выравнивания  кода
       const  xl   О,  х2   3 ,   х3  =  - 1 . 5 ,  х4  =  - 6 . 3 3 ;
       const  pl   -xl * l ;
       const  р2   +х * 2 ;
                    2
                    3
       const  р3   +х * 3 ;
       const  р3   -х4* 4 ;
          Обратите внимание, что в этих примерах я специально использовал переменные
       с операторами унарного вычитания и суммы. Если вы используете их с числовыми
       литералами,  то  знак "минус"  фактически становится  частью  числового  литерала,
       а потому технически он не оператор.
          Оператор остатка возвращает остаток после деления. Если у вас есть выражение
       х  %  у, то результатом будет остаток от делении делимого (х) на делитель (у). Напри­
       мер, 1 0   %  З даст 1  (3 входит в  10 три раза и остается 1 ) . Обратите внимание, что
       при отрицательных числах результат получит знак делимого, а не делителя, что не
       позволяет ему быть истинным оператором модуля. В то время как оператор остатка
       обычно используется только с целочисленными операндами, в JavaScript он приме­
       ним и к дробным операндам. Например,  0   %  3 .   6 даст 3 ( 3 . 6 входит в  10 дважды,
                                             1
       остается 2.8).
          Оператор инкремента ( ++) фактически является оператором суммы и оператором
       присваивания одновременно. Аналогично оператор декремента (--) является опера­
       тором вычитания и присваивания. Это очень полезные сокращения, но использо­
       вать их следует осторожно: если применить один из них глубоко в выражении, то он
       может стать причиной трудно обнаруживаемого "побочного эффекта" (изменений
       в переменной). Понимание различий между префиксными (prefix) и постфиксными



       1 0 8    Глава 5. Выражения и операторы
   104   105   106   107   108   109   110   111   112   113   114