Основні арифметичні оператори додавання, віднімання, множення, ділення і залишок від ділення працюють точно так же, як у звичайній математики.
var x = 10, y = 5;
alert ( "x + y =" + (x + y) + «\ n» +
"X - y =" + (x-y) + «\ n» +
"X * y =" + (x * y) + «\ n» +
"X / y =" + (x / y) + «\ n» +
"X% y =" + (x% y));
При виконанні стандартних арифметичних операцій необхідно стежити, щоб тип операндів був число. Інакше операнди будуть приведені до числа, а в разі неможливості приведення операндів до числа як результату виразу буде повернуто спеціальне значення NaN. виняток має операція додавання (+) застосовується до рядків.
додавання рядків
Якщо оператор + застосовується до строкових змінних, то результатом буде об'єднана рядок. приклад:
var str = "Це" + "рядок.»;
alert (str); // виведе Це рядок
alert (1 + «2»); // виведе 12
alert ( «1» + 2); // виведе 12
Перетворення в число
Для перетворення змінних в число широко застосовується унарний +.
Зазвичай дані від користувачів надходять за допомогою html форми і в більшості випадків вони надходять у формі рядків. І в разі, якщо необхідно отримати суму, то застосувавши бінарний плюс, вийде об'єднання рядків:
var x = «1»;
var y = «2»;
alert (x + y); // виведе 12
спробувати
Але застосувавши унарний плюс можна перетворити строкові дані в число. наприклад:
var x = «1»;
var y = «2»;
alert (+ x + + y); // виведе 3
Присвоєння
Оператор присвоювання позначається символом = (дорівнює). Використовується для привласнення змінним будь-якого значення:
var x = 5;
alert (x); // виведе 5
спробувати
Оператор присвоювання, як і всі інші оператори, повертає значення. Тому його можна використовувати як частину іншого виразу:
var x = 5;
var y = 10;
var a = 15 - (x = y + x);
alert (a); // виведе 0
alert (x); // виведе 15
спробувати
Також можливо присвоювання по ланцюжку:
спробувати
Так як оператор присвоювання має асоціативність справа наліво і один з найменших пріоритетів, то спочатку виконується вираз 3 + 2, результат якого присвоюється змінної с, потім виконується вираз b = c і останнім a = b. Таким способом зручно привласнювати значення цілої групи змінних.
Інкремент (++) і декремент (-)
- інкремент '++' - збільшення на 1;
- декремент '-' - зменшення на 1.
спробувати
Операції інкремент і декремент можна застосовувати тільки до змінних. Так код 1 ++ видасть помилку.
Операції інкремент і декремент мають дві форми:
- Постфіксний - після операнда (x ++);
- префіксних - перед операндом (++ x).
Обидві форми роблять одне і теж, зменшують або збільшують на одиниці. Але між ними є невелика різниця. Так Постфіксний запис спочатку повертає початкове значення змінної, а потім вже збільшує або зменшує її на одиницю, а префиксная збільшує або зменшує змінну і повертає її значення:
var x = 1;
var y = 1;
var a = x ++;
alert (a); // 1
var b = ++ y;
alert (b); // 2
спробувати
Операції інкремент і декремент можна використовувати в будь-яких виразах. При цьому вони мають більш високий пріоритет і виконуються раніше, ніж арифметичні операції. наприклад:
var x = 1;
var y = 5 * ++ x;
alert (y); // 10
Побітові оператори
Побітові оператори розглядають операнди як 32-х розрядні цілі числа і працюють на рівні їх внутрішнього двійкового представлення.
Підтримуються наступні побітові оператори:
- AND (і) ( );
- OR (або) (|);
- XOR (побітовое виключає або) (^);
- NOT (не) (
Побітові використовуються рідко і вимагаю додаткових знань в програмуванні, тому це тема для окремої статті.
Скорочена арифметика з привласненням
Часто буває потрібно застосувати до змінної оператор і зберегти отримане значення в ній же:
var x = 2;
x = x * 5;
Такий запис можна скоротити за допомогою суміщених операторів:
var x = 2;
x * = 5; // рівносильно x = x * 5
alert (x);
спробувати
Так можна зробити для арифметичних операторів +, -, *, / і побітових <<,>>, >>> ,, |, ^.
Поєднані оператори мають такий же пріоритет як і оператор присвоювання і виконуються після більшості інших операцій:
var x = 2;
x * = 10 + 5;
alert (x); // 30 (x = x * 15)
оператор кома
Самим незвичайним оператором є оператор кома (,). Вона є бінарним оператором, може приймати операнди будь-якого типу і завжди повертає значення правого операнда:
var x = (1, 2);
alert (x); // 2
спробувати
Оператор кома має пріоритет нижче привласнення, тому в прикладі вище вираз укладено в дужки, інакше б оператор = виконався б раніше і вийшло б x = 1.
Зазвичай оператор кома використовується в конструкціях, де необхідно виконати декілька дій в одному рядку. Наприклад в циклі for:
for (var i = 1, j = 5, x = i * j; i <10; i++) .
>
На цьому все! До нових зустрічей!