Variables — let, const, var
let modern variable declaration hai — value reassign ho sakti hai, block-scoped (sirf us {} ke andar valid jaha declare hui). const bhi block-scoped hai, lekin reassign NAHI ho sakta — ek baar assign karne ke baad fixed. var purana (ES5) tarika hai — function-scoped (block-scoped nahi), aur "hoisting" ki wajah se confusing behavior deta hai.
Modern JavaScript (2015+) mein var almost kabhi use nahi hota — const DEFAULT choice hai (agar value change nahi hogi), let tabhi jab reassignment genuinely zaroori ho.
const name = "Aarav"; // reassign nahi ho sakta
// name = "Riya"; // ERROR!
let age = 20; // reassign ho sakta hai
age = 21; // valid
var oldStyle = "avoid this"; // purana, avoid karo modern code mein
if (true) {
let blockScoped = "sirf yaha valid";
var functionScoped = "poore function mein valid";
}
// console.log(blockScoped); // ERROR — block ke bahar accessible nahi
// console.log(functionScoped); // Valid — var block-scope follow nahi karta- const = default choice, reassign nahi ho sakta
- let = jab reassignment zaroori ho, block-scoped
- var = purana, avoid karo (function-scoped, hoisting confusion)
let/const bhi technically "hoisted" hote hain (var jaisa), lekin ek "Temporal Dead Zone" mein rehte hain — declare hone se PEHLE access karne ki koshish karne par error milta hai (var ke silent undefined ke bajaye). Ye actually safer hai — bugs jaldi pakde jaate hain.
console.log(x); // undefined (var ka silent, confusing behavior)
var x = 5;
console.log(y); // ReferenceError! (let ka safer, explicit behavior)
let y = 5;JavaScript convention hai TRUE "constants" (jinki value kabhi nahi badhegi, jaise configuration values) ko UPPER_SNAKE_CASE mein likhna — normal const variables (jo sirf reassign nahi honge, lekin conceptually "constant" nahi hain) regular camelCase rehte hain.
const MAX_USERS = 100; // true constant — UPPER_SNAKE_CASE
const API_URL = "https://api.example.com";
const userName = "Aarav"; // regular const, camelCase (normal variable)
const isLoggedIn = true;