JavaScript কী?
JavaScript একটি programming language। HTML structure তৈরি করে, CSS design করে, আর JavaScript page-কে কাজ করায়।
JavaScript Zero থেকে Hero। ব্যাখ্যা, code, live demo, practice, project, quiz এবং offline learning—সব একটি file-এ।
JavaScript দিয়ে ওয়েব পেজে logic, interaction, calculation, form validation এবং dynamic content তৈরি করা হয়।
JavaScript একটি programming language। HTML structure তৈরি করে, CSS design করে, আর JavaScript page-কে কাজ করায়।
Button click, menu, calculator, form validation, API data, game, dashboard এবং web app তৈরি করতে।
<!DOCTYPE html>
<html lang="bn">
<head>
<meta charset="UTF-8">
<title>প্রথম JavaScript</title>
</head>
<body>
<h1 id="title">Hello</h1>
<script>
document.getElementById("title").textContent = "JavaScript কাজ করছে!";
</script>
</body>
</html>Inline, Internal ও External JavaScript কোথায় ব্যবহার করবেন।
HTML attribute-এর ভিতরে JavaScript। শেখার শুরুতে ছোট demo ছাড়া এড়িয়ে চলুন।
HTML file-এর নিচে <script> tag-এর ভিতরে code।
আলাদা script.js file। Professional project-এর জন্য সেরা।
<!-- Inline -->
<button onclick="alert('Hello')">Click</button>
<!-- Internal -->
<script>
console.log("Internal JavaScript");
</script>
<!-- External -->
<script src="script.js" defer></script>
/* script.js */
console.log("External JavaScript");defer দিন।Console কীভাবে খুলবেন, message দেখবেন এবং error বুঝবেন।
// Single-line comment
/*
Multi-line
comment
*/
console.log("Normal message");
console.warn("Warning message");
console.error("Error message");
const user = {
name: "Rahim",
age: 20
};
console.table(user);F12 → Console tab।Data সংরক্ষণ, পরিবর্তন এবং naming rules।
const name = "Nayme";
let age = 20;
age = 21;
console.log(name);
console.log(age);
// পুরোনো code ছাড়া var এড়িয়ে চলুন
var oldStyle = "Not recommended";const, পরিবর্তন হলে let ব্যবহার করুন।String, Number, Boolean, Null, Undefined, Object, Array ও Type checking।
const name = "Karim"; // String
const age = 25; // Number
const isStudent = true; // Boolean
const emptyValue = null; // Null
let notAssigned; // Undefined
const user = { // Object
name: "Karim",
age: 25
};
const fruits = ["Mango", "Apple"]; // Array
console.log(typeof name);
console.log(typeof age);
console.log(Array.isArray(fruits));Array.isArray() ব্যবহার করুন।Arithmetic, comparison, logical, assignment এবং ternary operator।
| ধরন | Operator |
|---|---|
| Arithmetic | + - * / % ** |
| Comparison | === !== > < >= <= |
| Logical | && || ! |
| Assignment | = += -= *= /= |
const a = 10;
const b = 3;
console.log(a + b);
console.log(a % b);
console.log(a ** b);
const isAdult = 20 >= 18;
const message = isAdult ? "Adult" : "Not adult";
console.log(message);Text তৈরি, template literal, useful method এবং conversion।
const firstName = "Nayme";
const lastName = "Hasan";
const fullName = `${firstName} ${lastName}`;
console.log(fullName.length);
console.log(fullName.toUpperCase());
console.log(fullName.toLowerCase());
console.log(fullName.includes("Nayme"));
console.log(fullName.slice(0, 5));
console.log(" hello ".trim());
const age = 20;
console.log(`আমার বয়স ${age} বছর`);` ব্যবহার করলে variable সহজে string-এর ভিতরে বসানো যায়।Number conversion, rounding, random number এবং calculation।
const priceText = "250";
const price = Number(priceText);
console.log(price + 50);
console.log(Number.isNaN(price));
console.log(Math.round(4.6));
console.log(Math.floor(4.9));
console.log(Math.ceil(4.1));
console.log(Math.max(5, 20, 8));
console.log(Math.min(5, 20, 8));
const randomNumber = Math.floor(Math.random() * 10) + 1;
console.log(randomNumber);Decision নেওয়া এবং ভিন্ন condition অনুযায়ী code চালানো।
const marks = 78;
if (marks >= 80) {
console.log("A+");
} else if (marks >= 70) {
console.log("A");
} else if (marks >= 60) {
console.log("A-");
} else {
console.log("আরও অনুশীলন করুন");
}
const day = "Friday";
switch (day) {
case "Friday":
console.log("ছুটির দিন");
break;
case "Saturday":
console.log("কাজের দিন");
break;
default:
console.log("সাধারণ দিন");
}for, while, for...of এবং loop control।
for (let i = 1; i <= 5; i++) {
console.log(i);
}
let count = 1;
while (count <= 3) {
console.log(count);
count++;
}
const fruits = ["Mango", "Apple", "Banana"];
for (const fruit of fruits) {
console.log(fruit);
}Reusable code, parameter, return, arrow function ও default value।
function add(a, b) {
return a + b;
}
const result = add(10, 5);
console.log(result);
function greet(name = "Guest") {
return `Hello, ${name}`;
}
const multiply = (a, b) => a * b;
console.log(greet("Nayme"));
console.log(multiply(4, 3));Global, function, block scope এবং variable কোথা থেকে access করা যায়।
const globalName = "Global";
function testScope() {
const functionName = "Function";
if (true) {
const blockName = "Block";
console.log(globalName);
console.log(functionName);
console.log(blockName);
}
// console.log(blockName); // Error
}
testScope();Array তৈরি, add/remove, search, map, filter, find ও reduce।
const numbers = [10, 20, 30, 40];
numbers.push(50);
numbers.pop();
numbers.unshift(5);
numbers.shift();
const doubled = numbers.map(number => number * 2);
const filtered = numbers.filter(number => number >= 20);
const found = numbers.find(number => number === 30);
const total = numbers.reduce((sum, number) => sum + number, 0);
console.log(doubled);
console.log(filtered);
console.log(found);
console.log(total);map, filter, find ও reduce নিয়মিত অনুশীলন করুন।Key-value data, method, nested object, destructuring এবং spread operator।
const user = {
name: "Rahim",
age: 25,
address: {
city: "Dhaka"
},
greet() {
return `Hello ${this.name}`;
}
};
console.log(user.name);
console.log(user.address.city);
console.log(user.greet());
const { name, age } = user;
const updatedUser = {
...user,
age: 26
};
console.log(name, age);
console.log(updatedUser);HTML element select, text, style, class এবং attribute পরিবর্তন।
<h1 id="title">পুরোনো লেখা</h1>
<p class="message">একটি message</p>
<script>
const title = document.getElementById("title");
const message = document.querySelector(".message");
title.textContent = "নতুন লেখা";
message.classList.add("active");
message.style.color = "blue";
message.setAttribute("title", "Hover text");
</script>Click, input, submit, keydown এবং event object।
Button চাপুন
const button = document.querySelector("#myButton");
button.addEventListener("click", function (event) {
console.log(event.target);
alert("Button clicked");
});
const input = document.querySelector("#name");
input.addEventListener("input", function (event) {
console.log(event.target.value);
});onclick-এর বদলে addEventListener ব্যবহার করুন।Input value নেওয়া, empty check, email check এবং error message দেখানো।
<form id="signupForm">
<input id="email" type="email" placeholder="Email">
<p id="error"></p>
<button>Submit</button>
</form>
<script>
const form = document.querySelector("#signupForm");
const email = document.querySelector("#email");
const error = document.querySelector("#error");
form.addEventListener("submit", function (event) {
event.preventDefault();
if (email.value.trim() === "") {
error.textContent = "Email লিখুন";
return;
}
error.textContent = "";
alert("Form submitted");
});
</script>JavaScript দিয়ে নতুন HTML element তৈরি এবং list update।
const list = document.querySelector("#todoList");
const item = document.createElement("li");
item.textContent = "JavaScript অনুশীলন";
list.append(item);
// Remove
item.remove();textContent ব্যবহার করুন, অপ্রয়োজনে innerHTML নয়।Date object, setTimeout, setInterval এবং clearInterval।
const now = new Date();
console.log(now);
console.log(now.getFullYear());
console.log(now.toLocaleDateString("bn-BD"));
setTimeout(() => {
console.log("২ সেকেন্ড পরে");
}, 2000);
let count = 0;
const timerId = setInterval(() => {
count++;
console.log(count);
if (count === 5) {
clearInterval(timerId);
}
}, 1000);Data convert, browser-এ save, read এবং delete।
const user = {
name: "Nayme",
theme: "dark"
};
const jsonText = JSON.stringify(user);
localStorage.setItem("user", jsonText);
const savedText = localStorage.getItem("user");
const savedUser = JSON.parse(savedText);
console.log(savedUser.name);
localStorage.removeItem("user");try, catch, finally, throw এবং user-friendly error handling।
function divide(a, b) {
if (b === 0) {
throw new Error("Zero দিয়ে ভাগ করা যাবে না");
}
return a / b;
}
try {
const result = divide(10, 0);
console.log(result);
} catch (error) {
console.error(error.message);
} finally {
console.log("Operation finished");
}Promise, async/await, fetch এবং loading/error state।
async function loadUsers() {
try {
const response = await fetch(
"https://jsonplaceholder.typicode.com/users"
);
if (!response.ok) {
throw new Error("Data load failed");
}
const users = await response.json();
console.log(users);
} catch (error) {
console.error(error.message);
}
}
loadUsers();Destructuring, spread, rest, optional chaining, nullish coalescing এবং module।
const user = {
name: "Rahim",
address: {
city: "Dhaka"
}
};
const { name } = user;
const city = user.address?.city;
const country = user.country ?? "Bangladesh";
const numbers = [1, 2, 3];
const moreNumbers = [...numbers, 4, 5];
function total(...values) {
return values.reduce((sum, value) => sum + value, 0);
}
console.log(name, city, country);
console.log(moreNumbers);
console.log(total(1, 2, 3));Object blueprint, constructor, method এবং inheritance-এর ভিত্তি।
class User {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
return `Hello, ${this.name}`;
}
}
const user1 = new User("Karim", 25);
console.log(user1.greet());Clean code, file structure, naming, security এবং maintainable JavaScript।
project/
├── index.html
├── css/
│ └── style.css
└── js/
├── app.js
├── api.js
└── utils.jsপরিষ্কার নাম, ছোট function, duplicate code কমানো, user input validate করা এবং secret key frontend-এ না রাখা।
বাস্তব project দিয়ে JavaScript শেখা সম্পূর্ণ করুন।
Increase, decrease ও reset button।
Input, operator, result ও error handling।
Add, complete, delete এবং LocalStorage।
Question, option, score ও next button।
API fetch, loading, error ও dynamic content।
Form, filter, search, LocalStorage, chart data এবং responsive UI।
সবচেয়ে প্রয়োজনীয় syntax-এর দ্রুত তালিকা।
| কাজ | Syntax |
|---|---|
| Variable | const name = "Rahim"; |
| Condition | if (age >= 18) { ... } |
| Loop | for (let i = 0; i < 5; i++) |
| Function | function add(a, b) { return a + b; } |
| Array map | items.map(item => item.name) |
| DOM select | document.querySelector(".class") |
| Event | button.addEventListener("click", fn) |
| LocalStorage | localStorage.setItem("key", "value") |
| Async | const data = await response.json() |
নিজে উত্তর দিয়ে JavaScript জ্ঞান যাচাই করুন।