ECMAScript additionelle operatorer

In most programming languages, the addition operator (that is, the plus or minus sign) is usually the simplest mathematical operator.

In ECMAScript, the addition operator has a lot of special behaviors.

Addition operator

The arithmetic operator is represented by the plus sign (+):

var iResult = 1 + 2

Like the multiplicative operator, addition in ECMAScript has some special behaviors when dealing with special values:

  • Hvis en betragtelse er NaN, vil resultatet være NaN.
  • -Infinity plus -Infinity gives -Infinity.
  • Infinity plus -Infinity gives NaN.
  • +0 plus +0, resultatet er +0.
  • -0 plus +0, resultatet er +0.
  • -0 plus -0, resultatet er -0.

Men hvis en betragtelse er en streng, følger følgende regler:

  • Hvis begge betragtelser er strenge, tilkobles den anden streng til den første.
  • Hvis kun én betragtelse er en streng, konverteres den anden betragtelse til en streng, og resultatet er to strenge forbundet.

For eksempel:

var result = 5 + 5;	//To tal
alert(result);		//Output "10"
var result2 = 5 + "5";	//En tal og en streng
alert(result2);		//Output "55"

Dette kodeeksempel viser forskellen mellem de to mønstre for plusoperatoren. Normalt vil 5 + 5 være 10 (original værdi), som i de første to linjer af ovenstående kode. Hvis du ændrer en betragtelse til en streng "5", vil resultatet blive "55" (original strengværdi), fordi den anden betragtelse også konverteres til en streng.

Bemærk:For at undgå en almindelig fejl i JavaScript skal du altid omhyggeligt kontrollere datatypen af betragtelserne, når du bruger plusoperatoren.

Minusoperator

Minusoperatoren (-) er også en almindelig brugt operator:

var iResult = 2 - 1;

Ligesom med plusoperatorer har minusoperatoren også nogle specielle adfærdsmønstre, når der håndteres specielle værdier:

  • Hvis en betragtelse er NaN, vil resultatet være NaN.
  • Infinity minus Infinity, resultatet er NaN.
  • -Infinity minus -Infinity, resultatet er NaN.
  • Infinity minus -Infinity, resultatet er Infinity.
  • -Infinity minus Infinity, resultatet er -Infinity.
  • +0 minus +0, resultatet er +0.
  • -0 minus -0, resultatet er -0.
  • +0 minus -0, resultatet er +0.
  • Hvis en betragtelse ikke er et tal, vil resultatet være NaN.

Bemærk:Hvis alle betragtelser er tal, udføres en almindelig subtraktion og resultateret returneres.