ECMAScript additiva 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:

  • Om en operand är NaN, blir resultatet NaN.
  • -Infinity plus -Infinity, the result is -Infinity.
  • Infinity plus -Infinity, the result is NaN.
  • +0 plus +0, resultatet blir +0.
  • -0 plus +0, resultatet blir +0.
  • -0 plus -0, resultatet blir -0.

Men om en operand är en sträng, använd följande regler:

  • Om båda operanderna är strängar, läggs den andra strängen till den första.
  • Om endast en operand är en sträng, konverteras den andra operanden till en sträng och resultatet blir två strängar som är sammansatta.

Exempel:

var result = 5 + 5;	//Två tal
alert(result);		//Utskrift "10"
var result2 = 5 + "5";	//En tal och en sträng
alert(result2);		//Utskrift "55"

Detta kodexempel visar skillnaden mellan de två mönstren för additionsoperatorn. Som standard blir 5+5 lika med 10 (ursprungligt värde), som visas i de två första raderna av ovanstående kod. Men om du ändrar en operand till en sträng "5", blir resultatet "55" (ursprunglig strängvärde), eftersom den andra operanden också konverteras till en sträng.

Observera:För att undvika ett vanligt fel i JavaScript, måste du alltid noggrant kontrollera datatypen för operanderna när du använder additionsoperatorn.

Subtraktionsoperator

Subtraktionsoperatorn (-) är också en vanligt använd operator:

var iResult = 2 - 1;

Liksom med additionsoperatorn har subtraktionsoperatorn också några speciella beteenden när det gäller att hantera specialvärden:

  • Om en operand är NaN, blir resultatet NaN.
  • Infinity minus Infinity, resultatet blir NaN.
  • -Infinity minus -Infinity, resultatet blir NaN.
  • Infinity minus -Infinity, resultatet blir Infinity.
  • -Infinity minus Infinity, resultatet blir -Infinity.
  • +0 minus +0, resultatet blir +0.
  • -0 minus -0, resultatet blir -0.
  • +0 minus -0, resultatet blir +0.
  • Om en operator inte är numerisk, blir resultatet NaN.

Kommentar:Om båda operanderna är numeriska, utför vanlig subtraktion och returnera resultatet.