Type coercion is the automatic data type conversion done by JavaScript.
Operators, Operands, Unary, and Binary
Operators
The following are some operators in JavaScript:
- Addition
+
; - Subtraction
-
; - Multiplication
*
; - Division
/
; - Remainder
%
; - Exponentiation
**
;
Check out other operators and their precedence on MDN.
Operand
Operands are arguments, variables, numbers, strings, boolean values before or after an operator.
const num1 = true;
const num2 = +num1;
console.log(num2); // 1
Unary
An operator is unary if it has a single operand. The unary operator above is +
where const num2 = +num1
.
A unary operator converts a number in quotation marks to a number.
Note: 7
is the same as +7
.
const toNum = +'23';
toNum; // 23
console.log(typeof toNum); // number
const str = "";
const toNumb = +str; // Number(str)
toNumb; // 0
console.log(typeof toNumb); // number
The unary operator does the same thing as Number(...)
but is shorter.
Binary
An operator is binary if there are two operands around it.
const num = 2 ** 3;
console.log(num); // 8 => 2 * 2 * 2
String conversion
Numbers are converted to string by JavaScript automatically whenever a binary operator, +
is used. Numbers in quotation marks add up (concatenate) to a number, which results in a string.
See the example below:
console.log('1' + 2); // "12"
console.log(2 + '1'); // "21"
Any operand number in quotation marks converts other numbers to a string.
See the example below:
console.log(2 + 2 + '1'); // "41"
JavaScript evaluates an expression from left to right.
If the first operand is a string, then other operands will be converted to strings.
See the example below:
console.log('1' + 2 + 2); // "122" => '1' + '2' + '2'
Number conversion
Numbers in quotation marks are converted to numbers when a unary like +
operator is used.
Let's add up one or more numbers in quotation marks to a number by converting them to numbers with the unary operator.
const garrot = "4";
const apple = "10";
const melon = "2";
const sum = +garrot + +apple + +melon;
console.log(sum); // 16
10 - "2"; // 8 => 10 - +"2"
10 / "2"; // 5 => 10 / +"2"
Comparison operators with Unary Operators
The comparison operators before ES6+ are listed below:
- Greater than
>
; - Greater than or equal to
>=
; - Less than
<
; - Less than or equal to
<=
; - Double equals
==
;
const a = 5;
const b = 7;
b > a; // true
When comparing a number with a value of a different type (string or boolean), JavaScript converts the values to numbers.
const num = 5;
const str = '7';
str > num; // true => +str > num
const isTrue = true;
const numb = 4;
isTrue > numb // false => +isTrue > numb; +isTrue = 1
The weird conversion occurs because JavaScript prepends a +
unary operator to it.
Strict equality comparison operators without Unary Operators
Strict equality was introduced in ES6 as shown below:
- Triple equals
===
; - Not double equals
!==
; - Not triple equals
!===
;
Strict equality comparison operators remove any unary operator in an expression. That is checks and compares both the type and value if they are the same.
Without strict operator
7 == '7'; // true => +7 == +'7'
1 == true; // true +1 == +true
0 == false; // true +0 == +false
With strict operator
7 === '7' // false => 7 == '7'
1 === true // false => 1 == true
0 === false // false => 0 == false
Comparison with null and undefined
null
and undefined
are equal to each other (no strict equality).
null == undefined // true
null == 0 // false
With a strict equality operator, it's false.
null === undefined // false
The values null
and 0
equals when either >=
or <=
is used for comparison.
null >= 0 // true
null <= 0 // true
The operators,
!=
and!==
reverse the value fromtrue
tofalse
or fromfalse
totrue
.
Conclusion
Use strict comparison operators more often in an expression.
Happy Coding!!!
TechStack Media | Bluehost
- Get a website with a free domain name for 1st year and a free SSL certificate.
- 1-click WordPress install and 24/7 support.
- Starting at $3.95/month.
- 30-Day Money-Back Guarantee.
Top comments (0)