Page 23 - 6105
P. 23
Інакше кажуть, що «плюс виробляє конкатенацію (додавання) рядків».
Якщо хоча б один аргумент є рядком, то другий буде також перетворений до
рядка!
Причому не важливо, праворуч або ліворуч знаходиться операнд-рядок, в
будь-якому випадку нестроковий аргумент буде перетворений. Наприклад:
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", так як бінарний плюс
складає рядка
22