J

JavaScript Handbook

Clean • Professional

Type Conversion in JavaScript

2 minute

Type Conversion in JavaScript

Type conversion in JavaScript means converting a value from one data type to another.

It can happen automatically (implicit) or manually (explicit).

Implicit Type Conversion (Type Coercion)

JavaScript automatically converts types in certain operations like arithmetic, comparison, or string concatenation.

Examples:

// String + Number → String (concatenation)
console.log("5" + 3); // "53"

// Number - String → Number (if string is numeric)
console.log("5" - 3); // 2

// Boolean in arithmetic
console.log(true + 1);   // 2  (true → 1)
console.log(false * 5);  // 0  (false → 0)

// Loose equality (==) triggers type coercion
console.log(5 == "5");   // true ("5" → 5)
console.log(true == 1);  // true (true → 1)

Explicit Type Conversion

You can manually convert types using built-in functions or operators.

a. Converting to String

Using String()

console.log(String(123));   // "123"
console.log(String(true));  // "true"
console.log(String(null));  // "null"

Using .toString()

let num = 123;
console.log(num.toString());       // "123"
console.log([1, 2, 3].toString()); // "1,2,3"

Using concatenation with an empty string

console.log("" + 123); // "123"

Converting to Number

Using Number()

console.log(Number("123"));   // 123
console.log(Number("12.34")); // 12.34
console.log(Number("abc"));   // NaN
console.log(Number(true));    // 1
console.log(Number(null));    // 0

Using the unary + operator

console.log(+"123"); // 123
console.log(+"abc"); // NaN

Using parseInt() and parseFloat()

console.log(parseInt("123px"));   // 123
console.log(parseFloat("12.34px")); // 12.34

c. Converting to Boolean

Using Boolean()

console.log(Boolean(1));      // true
console.log(Boolean(0));      // false
console.log(Boolean(""));     // false
console.log(Boolean("hello"));// true
console.log(Boolean(null));   // false

Using double negation !!

console.log(!!1);   // true
console.log(!!0);   // false
console.log(!!"");  // false

Truthy and Falsy Values

JavaScript considers certain values as "falsy" (convert to false in a boolean context):

  • false, 0, -0, 0n, "", null, undefined, NaN All other values are "truthy" (convert to true).
false, 0, -0, 0n, "", null, undefined, NaN

All other values are truthy.

console.log(!!"0"); // true  (string "0" is truthy)
console.log(!![]);  // true  (arrays are truthy)

Common Use Cases

Form input handling: Convert string inputs to numbers for calculations.

let input = "42";
let result = Number(input) * 2; // 84

Conditional checks: Convert values to booleans for logic.

let value = "hello";
if (Boolean(value)) {
  console.log("Truthy value"); // Prints
}

String formatting: Convert numbers or booleans to strings for display.

let score = 100;
console.log("Score: " + String(score)); // "Score: 100"

Caveats

NaN and Invalid Conversions: Converting non-numeric strings to numbers results in NaN.

console.log(Number("abc")); // NaN

Precision Issues: Be cautious with floating-point numbers

console.log(0.1 + 0.2); // 0.30000000000000004

Type coercion pitfalls

  • Avoid relying on implicit coercion in critical logic.
  • Use explicit conversion for clarity.

Checking Types Before Conversion

Use typeof to verify types before converting:

let value = "123";
if (typeof value === "string") {
  let num = Number(value);
  console.log(num + 10); // 133
}

 

Article 0 of 0