| Numbers & Math Object in JavaScript | JavaScript-Conditionals | |
Type Conversion & Coercion in JavaScript |
Letβs carefully unpack Type Conversion and Type Coercion in JavaScript. These two concepts often confuse beginners, but once you see the difference with examples, it becomes crystal clear.
Type Conversion means manually converting a value from one type to another using built-in functions. Also called type casting.
// String to Number let str = "123"; let num = Number(str); console.log(num); // 123 console.log(typeof num); // number // Number to String let n = 42; let s = String(n); console.log(s); // "42" console.log(typeof s); // string // Boolean to Number console.log(Number(true)); // 1 console.log(Number(false)); // 0 // Boolean to String console.log(String(true)); // "true"
Type Coercion means JavaScript automatically converts one type to another during operations. This is implicit and sometimes leads to unexpected results.
// String + Number β String
console.log("5" + 2); // "52"
// String - Number β Number
console.log("5" - 2); // 3
// Boolean + Number β Number
console.log(true + 1); // 2
// Loose equality (==) does coercion
console.log(5 == "5"); // true
// Strict equality (===) avoids coercion
console.log(5 === "5"); // false
console.log(Number("")); // 0
console.log(Number("abc")); // NaN
console.log(Number(null)); // 0
console.log(Number(undefined)); // NaN
if ("") console.log("truthy"); else console.log("falsy");
// Output: falsy ("" coerces to false)
== allows coercion, === avoids it (always prefer ===).Number(), String(), Boolean().These values convert to false in Boolean context:
| Value | Boolean() | Notes |
|---|---|---|
false |
false | Boolean false itself |
0 |
false | Zero |
-0 |
false | Negative zero |
0n |
false | BigInt zero |
"" |
false | Empty string |
null |
false | Null value |
undefined |
false | Undefined value |
NaN |
false | Not-a-Number |
Everything else is considered true in Boolean context:
42, -7)"hello", "0", "false"){}, [])
console.log(Boolean("")); // false
console.log(Boolean("hello")); // true
console.log(Boolean(0)); // false
console.log(Boolean(123)); // true
console.log(Boolean(null)); // false
console.log(Boolean({})); // true
console.log(Boolean([])); // true
false, 0, -0, 0n, "", null, undefined, NaN.if conditions and logical operations.This mini project demonstrates a simple calculator using JavaScript in the browser console.
// Prompt user for input
let num1 = Number(prompt("Enter the first number:"));
let operator = prompt("Enter an operator (+, -, *, /):");
let num2 = Number(prompt("Enter the second number:"));
let result;
// Perform calculation based on operator
if(operator === "+") {
result = num1 + num2;
} else if(operator === "-") {
result = num1 - num2;
} else if(operator === "*") {
result = num1 * num2;
} else if(operator === "/") {
if(num2 !== 0) {
result = num1 / num2;
} else {
result = "Error: Division by zero";
}
} else {
result = "Invalid operator";
}
console.log(`Result: ${result}`);
Try saving this code in a script.js file or directly in the browser console and test it with different numbers and operators.
| Numbers & Math Object in JavaScript | JavaScript-Conditionals | |