Type Conversion

JavaScript can convert values between types — either explicitly (conversion) or automatically (coercion).

Explicit Conversion

// To String
String(42)       // '42'
String(true)     // 'true'
String(null)     // 'null'
(42).toString()  // '42'

// To Number
Number('42')     // 42
Number(true)     // 1
Number(false)    // 0
Number(null)     // 0
Number('')       // 0
Number('abc')    // NaN

// To Boolean
Boolean(1)       // true
Boolean(0)       // false
Boolean('')      // false
Boolean('hello') // true
Boolean(null)    // false

Implicit Coercion

'5' + 3         // '53' (+ prefers string concatenation)
'5' - 3         // 2   (- forces numbers)
'5' * '3'       // 15  (* forces numbers)
true + 1        // 2
false + 1       // 1
null + 1        // 1
⚠️ Avoid implicit coercion

Implicit coercion makes code unpredictable. Always convert types explicitly when needed.