Dodawcze operatory ECMAScript

W większości języków programowania, operatorzy dodawania (czyli plus lub minus) są najprostszymi operatorami matematycznymi.

W ECMAScript istnieje wiele specjalnych zachowań dla operatorów dodawania.

Operator dodawania

Operator dodawania jest reprezentowany przez plus (+):

var iResult = 1 + 2

Jak operatory mnożeniowe, w przypadku obsługi wartości specjalnych, dodawanie w ECMAScript ma również pewne specjalne zachowania:

  • Jeśli któryś z operandów jest NaN, wynik wynosi NaN.
  • -Infinity dodać -Infinity, wynik to -Infinity.
  • Infinity dodać -Infinity, wynik to NaN.
  • +0 dodać +0, wynik to +0.
  • -0 dodać +0, wynik to +0.
  • -0 dodać -0, wynik to -0.

Jednak jeśli któryś z operandów jest ciągiem znaków, należy stosować następujące zasady:

  • Jeśli oba operandy są ciągami znaków, drugi ciąg znaków jest dołączany do pierwszego.
  • Jeśli tylko jeden z operandów jest ciągiem znaków, drugi operand jest przekształcany w ciąg znaków, wynik to połączone ciągi znaków.

Przykład:

var result = 5 + 5;	//Dwie liczby
alert(result);		//Wyjście "10"
var result2 = 5 + "5";	//Liczba i ciąg znaków
alert(result2);		//Wyjście "55"

Ten kod pokazuje różnice między dwoma trybami operatora dodawania. W normalnych warunkach 5+5 wynosi 10 (oryginalna wartość), jak w pierwszych dwóch liniach powyższego kodu. Jednak jeśli jeden z operandów zmieni się na ciąg znaków "5", wynik będzie wynosił "55" (oryginalna wartość stringowa), ponieważ drugi operand również zostanie przekształcony w ciąg znaków.

Uwaga:Aby uniknąć powszechnego błędu w JavaScript, zawsze dokładnie sprawdzaj typ danych operandów przy użyciu operatora dodawania.

Operator odejmowania

Operator odejmowania (-) to również często używany operator:

var iResult = 2 - 1;

Jak i operator dodawania, operator odejmowania ma również pewne specyficzne zachowania przy przetwarzaniu wartości specjalnych:

  • Jeśli któryś z operandów jest NaN, wynik wynosi NaN.
  • Infinity odjąć Infinity, wynik to NaN.
  • -Infinity odjąć -Infinity, wynik to NaN.
  • Infinity odjąć -Infinity, wynik to Infinity.
  • -Infinity odjąć Infinity, wynik to -Infinity.
  • +0 odjąć +0, wynik to +0.
  • -0 odjąć -0, wynik to -0.
  • +0 odjąć -0, wynik to +0.
  • Jeśli któryś z operatorów nie jest liczbą, wynik wynosi NaN.

Uwaga:Jeśli operandy są liczbami, wykonuje się zwyczajne działanie odjęcia i zwraca wynik.