# JavaScript Operators

Values used in JavaScript multiplication are converted to numbers with the `Number()` casting function before they are used in the operation. Empty strings will become 0 and Boolean `true` will become 1.

Addition on strings concatenates the two strings. If one of the operators is a string and the other is not, the non-string is converted to a string and the two are concatenated.

```var x = 10 + 10;   //numbers - 20
var y = 10 + "10"; //strings = "1010"
var x = 5;
var y = 20;
var z = "5 + 20 = " + x + y;    // converts to a string since operators work in order  "5 + 20 = 520"
var z = "5 + 20 = " + (x + y);  // converts the (x + y) first  "5 + 20 = 25"
```

Logical operators work as expected in Math until you start comparing strings. The numerical character values are compared, so uppercase letters come BEFORE lowercase letters. Numbers don’t compare as expected if they are strings either.

```var x = "A" < "a";    // true
var x = "A".toLowerCase() < "a".toLowerCase();  //false
var x = "44" < "5";  // true    both strings, not converted, character values are used
var x = "44" < 5;    // false   converted to numbers
var x = "blue" < 5;  // false   blue is converted to NaN
```
Scroll to Top