# Javascript - Operator Add Operator

## Introduction

var result = 1 + 2;

If the two operands are numbers, they perform an arithmetic add and return the result according to the following rules:

Operand
Result
If either operand is NaN
the result is NaN.
If Infinity is added to Infinity
the result is Infinity.
If -Infinity is added to -Infinity
the result is -Infinity.
If Infinity is added to -Infinity
the result is NaN.
If +0 is added to +0
the result is +0.
If -0 is added to +0
the result is +0.
If -0 is added to -0
the result is -0.
If both operands are strings
the second string is concatenated to the first.
If only one operand is a string
the other operand is converted to a string and the result is the concatenation of the two strings.
If either operand is an object, number, or Boolean

its toString() method is called to get a string
value and then the previous rules regarding strings are applied.
For undefined and null, the String() function is called to retrieve the values "undefined" and "null", respectively.
var result1 = 5 + 5;     //two numbers
console.log(result1);           //10
var result2 = 5 + "5";   //a number and a string
console.log(result2);           //"55"

Pay more attention to the following code

var num1 = 5;
var num2 = 10;
var message = "The sum of 5 and 10 is " + num1 + num2;
console.log(message);    //"The sum of 5 and 10 is 510"

Because each addition is done separately. The first combines a string with a number (5), which results in a string.

The second takes that result string and adds a number (10), which also results in a string.

To perform the arithmetic calculation and then append that to the string, add some parentheses like this:

var num1 = 5;
var num2 = 10;
var message = "The sum of 5 and 10 is " + (num1 + num2);
console.log(message);    //"The sum of 5 and 10 is 15"