Page 80 - 6108
P. 80

в  будь-якому  випадку  нерядковий  аргумент  буде  перетворений  до  рядка.
               наприклад:
                     alert ( '1' + 2); // "12"
                     alert (2 + '1'); // "21"

                     Це приведення до рядка – особливість виключно бінарного оператора "+".
                     Решта  арифметичні  оператори  працюють  тільки  з  числами  і  завжди
               приводять аргументи до числа.
                     alert (2 - '1'); // 1
                     alert (6 / '2'); // 3

                     Приведення до числа, унарний плюс +
                     Унарний плюс нічого не робить з числами:
                     alert (+1); // 1
                     alert (+ (1 - 2)); // -1
                     Проте,  він  широко  застосовується,  так  як  його  «побічний  ефект»  -
               перетворення значення в число. Наприклад, коли отримуємо значення з HTML-
               полів або від користувача, то вони зазвичай у формі рядків.
                     А що, якщо їх потрібно, наприклад, скласти? Бінарний плюс складе їх як
               рядки.
                     var apples = "2";
                     var oranges = "3";
                     alert (apples + oranges); // "23",
                     Тому використовуємо унарний плюс, щоб ппривести значення операнда до
               числа:

                     alert (+apples + +oranges); // 5,

                     Спочатку  виконаються  унарні  плюси,  які  приведуть  рядки  до  чисел,  а
               потім - бінарний '+' їх складе.
                     Пріоритет
                     У  тому  випадку,  якщо  у  виразі    є  декілька  операторів  –  порядок  їх
               виконання  визначається  пріоритетом.  В  JavaScript  існує  ціла  таблиця
               пріоритетів,  в  якій  кожному  оператору  заданий  числовий  пріоритет.  Той,  у
               якого  число  більше  –  виконається  раніше.  Якщо  пріоритет  однаковий,  то
               порядок виконання – зліва направо.
                     Присвоєння
                     В таблиці пріоритетів також є оператор присвоювання =. У нього – один з
               найнижчих  пріоритетів:  3.  Саме  тому,  коли  змінній  щось  привласнюють,
               наприклад,  x  =  2  *  2  +  1  спочатку  виконається  арифметика,  а  вже  потім  –
               відбудеться присвоювання =.
                     var x = 2 * 2 + 1; // 5

                     Можливо присвоювання по ланцюжку:

                     var a, b, c;
                     a = b = c = 2 + 2;
                     alert (a); // 4
                     alert (b); // 4
                     alert (c); // 4
   75   76   77   78   79   80   81   82   83   84   85