Coercion in JavaScript

Introduction Link to heading

Coercion is a fundamental process in JavaScript that is responsible for converting a value from one data type to another. There are two types of coercion:

Implicit coercion: Link to heading

  • It is the way that JavaScript automatically converts a value so that it can be used in an operation.
  • The type of resulting data depends on the operator used and the data types of the operands.

Examples: Link to heading

Concatenation: Link to heading
const a = 4 + "7"; // Converts to "47" (concatenation)

typeof a; // "string"
Multiplication: Link to heading
const a = 4 * "7"; // Converts to 28 (multiplication)

typeof a; // "number"

Explicit coercion: Link to heading

  • It is the way we force the conversion of a value to a specific data type.
  • The String() function is used to convert to a text string and Number() to convert to a number.

Examples: Link to heading

const a = 20;

const b = a + ""; // Convert to "20" (concatenation)

console.log(b); // "twenty"

typeof b; // "string"

const c = String(a); // Explicitly converted to "20"

console.log(c); // "twenty"

const d = Number(c);

typeof d; // "number"

Coercion table: Link to heading

Operator Operands Result
+ String + String Concatenation
+ String + Number Concatenation
+ Number + String Concatenation
+ Number + Number Sum
- Number - Number Subtraction
* Number*Number Multiplication
/ Number / Number Division
== Any type Comparison of values (not types)
=== Any type Comparison of values and types

Recommendations: Link to heading

  • It is important to understand how coercion works to avoid unexpected errors in the code.
  • It is recommended to use explicit coercion when necessary to avoid ambiguity.
  • The typeof tool can be used to check the data type of a variable.

Keep learning about coercion to write more accurate and reliable JavaScript code!

<< Hoisting in JavaScript Truthy and falsy values in JavaScript >>