Data Types
Primitive types: string ("text"), number (integers AND decimals, ek hi type — Java jaisa int/float alag nahi), boolean (true/false), undefined (variable declare hua, value assign nahi hui), null (jaan-boojh kar "koi value nahi"), symbol (rare, unique identifiers ke liye).
typeof operator kisi bhi value ka type check karta hai. JavaScript "dynamically typed" hai — koi type declare nahi karna padta, aur variable apni lifetime mein type badal sakta hai.
let name = "Aarav"; // string
let age = 25; // number (int ya float, farq nahi)
let price = 19.99; // number bhi
let isStudent = true; // boolean
let nothing = null; // jaan-boojh kar "kuch nahi"
let notSet; // undefined (value assign hi nahi hui)
console.log(typeof name); // "string"
console.log(typeof age); // "number"
console.log(typeof isStudent); // "boolean"- string/number/boolean = primitives, number mein int/float alag nahi
- undefined = value set nahi hui, null = jaan-boojh kar khaali
- typeof operator = kisi bhi value ka type check karo
NaN ek special value hai jo invalid math operations se aati hai (jaise "text" / 2) — confusingly, typeof NaN "number" hai! aur NaN === NaN bhi FALSE hai (ek unique JavaScript quirk). isNaN() ya Number.isNaN() se check karo.
console.log("hello" / 2); // NaN
console.log(typeof NaN); // "number" — confusing!
console.log(NaN === NaN); // false — NaN kabhi khud ke barabar nahi
console.log(isNaN("hello")); // true
console.log(Number.isNaN(NaN)); // true — zyada reliable checkJavaScript automatically types convert karta hai kuch operations mein ("type coercion") — jaise "5" + 3 string concatenation karta hai ("53"), lekin "5" - 3 number subtraction karta hai (2). Ye unpredictable lag sakta hai agar samjha na jaaye.
console.log("5" + 3); // "53" — + string concatenation karta hai
console.log("5" - 3); // 2 — - hamesha numeric hai
console.log("5" * 2); // 10 — * bhi numeric hai
console.log(1 + true); // 2 — true "1" mein convert hota hai