JavaScriptIntermediate
Modern JavaScript (ES6+)
let/const, arrow, template literal, destructuring, spread/rest, default param, classes, modules, optional chaining — এক জায়গায়।
25টি অংশবাংলা ভাষায়
ES6 (ECMAScript 2015) থেকে আধুনিক JavaScript-এ বহু সুবিধা এসেছে — কোড ছোট, পরিষ্কার ও নিরাপদ হয়েছে। এই অধ্যায়ে সবগুলোকে একসাথে দেখি, যেন এক glance-এ recollection হয়।
let / const
let age = 28;
age = 29; // let বদলায়
const pi = 3.14;
// pi = 3; // const বদলায় না
const user = { name: "রহিম" };
user.age = 30; // object-এর property বদলায় — ঠিক আছে
// user = {}; // reference বদলায় নাArrow function
const add = (a, b) => a + b;
const double = (x) => x * 2;
console.log(add(2, 3)); // 5
console.log(double(4)); // 8Template literal
const name = "রহিম";
const age = 28;
const sentence = `আমার নাম ${name}, বয়স ${age}।`;
console.log(sentence); // আমার নাম রহিম, বয়স 28।Destructuring
// Array
const [first, second] = [10, 20, 30];
console.log(first, second); // 10 20
// Object
const user = { name: "রহিম", age: 28 };
const { name, age } = user;
console.log(name, age); // রহিম 28
// Default
const { city = "ঢাকা" } = user;
console.log(city); // ঢাকাSpread ও Rest
// Spread — ফেলা
const nums = [3, 4];
const combined = [1, 2, ...nums, 5];
console.log(combined); // [1, 2, 3, 4, 5]
const base = { a: 1, b: 2 };
const copy = { ...base, c: 3 };
console.log(copy); // { a: 1, b: 2, c: 3 }
// Rest — জমানো
function sum(...args) {
return args.reduce((t, n) => t + n, 0);
}
console.log(sum(1, 2, 3, 4)); // 10Default parameter
function greet(name = "অতিথি") {
return `নমস্কার, ${name}!`;
}
console.log(greet()); // নমস্কার, অতিথি!
console.log(greet("রহিম")); // নমস্কার, রহিম!Optional Chaining ও Nullish
const user = { address: { city: "ঢাকা" } };
console.log(user.address?.city); // ঢাকা
console.log(user.phone?.number); // undefined (crash নয়)
const count = null ?? 10;
const zero = 0 ?? 99;
console.log(count, zero); // 10 0Classes
class Animal {
constructor(name) {
this.name = name;
}
speak() {
return `${this.name} শব্দ করছে`;
}
}
class Dog extends Animal {
speak() {
return super.speak() + " — ঘেউ";
}
}
const dog = new Dog("টমি");
console.log(dog.speak()); // টমি শব্দ করছে — ঘেউModules
import/export দিয়ে কোড ভাগ করা যায় — বিস্তারিত modules অধ্যায়ে। সংক্ষেপে:
// math.js
export function add(a, b) {
return a + b;
}
export default function multiply(a, b) {
return a * b;
}
// app.js
import multiply, { add } from "./math.js";
console.log(add(2, 3)); // 5
console.log(multiply(2, 3)); // 6Promises ও async/await
async function load() {
const res = await fetch("/api/users");
const data = await res.json();
console.log(data);
}
// call
load().catch(console.error);| ফিচার | বদলে কী |
|---|---|
let/const | var |
| arrow | function expression |
| template literal | string জোড়া (+) |
| destructuring | manual এর থেকে unpack |
| spread/rest | concat/apply |
| default param | ` |
| optional chaining | long chain check |
| class | constructor/prototype |
spread vs rest বিভ্রান্তি
একই সিনট্যাক্স ... — ব্যবহার অনুযায়ী নাম: array/object ফেলার সময় spread, function parameter-এ জমার সময় rest।
Interview
"ES6 এ কী কী এসেছে?" — এই তালিকাটা বলতে পারলে interviewer-কে চমকে দেওয়া যায়।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।