বর্তমান বিশ্বের প্রায় প্রতিটি আধুনিক ওয়েবসাইটে JavaScript ব্যবহৃত হয়। HTML ও CSS যেখানে একটি ওয়েবসাইটের কাঠামো ও নকশা তৈরি করে, সেখানে JavaScript সেই ওয়েবসাইটকে প্রাণবন্ত ও ইন্টারঅ্যাকটিভ করে তোলে।
কিন্তু JavaScript শেখার আগে সবচেয়ে গুরুত্বপূর্ণ বিষয় হলো এর গঠন (Structure) বোঝা। কারণ একটি প্রোগ্রাম কীভাবে লেখা হয়, কীভাবে নির্দেশনা (Instruction) সাজানো হয়, কীভাবে ভ্যারিয়েবল ঘোষণা করা হয় এবং কীভাবে বিভিন্ন উপাদান একসঙ্গে কাজ করে, তা বোঝা ছাড়া কার্যকর JavaScript প্রোগ্রাম লেখা সম্ভব নয়।
পোস্ট সূচিপত্র
জাভাস্ক্রিপ্টের গঠন কী?
JavaScript Program Structure
JavaScript Syntax কী?
JavaScript Case Sensitive
JavaScript Keywords
Identifiers কী?
Identifier লেখার নিয়ম
Variable কী?
Variable Naming Convention
Data Types
Non-Primitive Data Types
Operators (অপারেটর)
DOM (Document Object Model)
Interview/Viva প্রশ্ন
ES6 (ECMAScript 2015) কী?
JavaScript Engine কী?
Execution Context
Call Stack
Event Loop
Asynchronous JavaScript
JavaScript Best Practices
Performance Optimization
JavaScript-এর ব্যবহার
HSC ICT ও Viva-এর গুরুত্বপূর্ণ প্রশ্ন
FAQ
জাভাস্ক্রিপ্টের গঠন কী?
জাভাস্ক্রিপ্টের গঠন (Structure of JavaScript) বলতে বোঝায় একটি JavaScript প্রোগ্রাম কীভাবে সাজানো হয় এবং কোন কোন মৌলিক উপাদান নিয়ে গঠিত। একটি JavaScript প্রোগ্রামের প্রধান অংশগুলো হলোঃ
- Syntax (সিনট্যাক্স)
- Keywords (কীওয়ার্ড)
- Identifiers (আইডেন্টিফায়ার)
- Variables (ভ্যারিয়েবল)
- Data Types (ডেটা টাইপ)
- Operators (অপারেটর)
- Statements (স্টেটমেন্ট)
- Expressions (এক্সপ্রেশন)
- Functions (ফাংশন)
- Objects (অবজেক্ট)
- Events (ইভেন্ট)
এই উপাদানগুলো একসঙ্গে একটি সম্পূর্ণ JavaScript প্রোগ্রাম তৈরি করে।
JavaScript Program Structure
একটি সাধারণ JavaScript প্রোগ্রামের কাঠামোঃ
// Variable Declarationlet name = "Rahim";// Functionfunction greet() {console.log("Welcome " + name);}// Function Callgreet();
এখানে তিনটি গুরুত্বপূর্ণ অংশ রয়েছেঃ
- Variable Declaration
- Function Definition
- Function Call
এটাই JavaScript প্রোগ্রামের একটি মৌলিক গঠন।
JavaScript Syntax কী?
Syntax হলো কোনো প্রোগ্রামিং ভাষার ব্যাকরণ বা নিয়ম। যদি Syntax ভুল হয়, তাহলে JavaScript কোড সঠিকভাবে চলবে না। সঠিক উদাহরণঃ
let age = 20;console.log(age);
ভুল উদাহরণঃ
let age 20console.log(age)
এখানে = না থাকায় Syntax Error হবে।
JavaScript Case Sensitive
JavaScript একটি Case-Sensitive Language। অর্থাৎঃ
let Name = "Rahim";let name = "Karim";
এখানে Name এবং name দুটি ভিন্ন ভ্যারিয়েবল।
JavaScript Keywords
Keywords হলো সংরক্ষিত (Reserved) শব্দ, যেগুলোর নির্দিষ্ট অর্থ রয়েছে। উদাহরণঃ
letconstvarifelseforwhilereturnfunctionclassimportexportswitchbreakcontinue
এগুলোকে Variable Name হিসেবে ব্যবহার করা যায় না। ভুলঃ
let if = 10;
Identifiers কী?
Identifier হলো কোনো Variable, Function, Class বা Object-এর নাম।
সঠিক উদাহরণঃ
let studentName;let totalMarks;function calculateTotal(){}
ভুল উদাহরণঃ
let 123name;let my-name;
Identifier লেখার নিয়ম
- অক্ষর দিয়ে শুরু করতে হবে।
_বা$দিয়ে শুরু করা যায়।- সংখ্যা থাকতে পারে, কিন্তু শুরুতে নয়।
- Space ব্যবহার করা যাবে না।
- Keyword ব্যবহার করা যাবে না।
Variable কী?
Variable হলো এমন একটি নামযুক্ত মেমোরি স্থান, যেখানে তথ্য সংরক্ষণ করা হয়। JavaScript-এ Variable ঘোষণা করার তিনটি উপায়ঃ
-
var -
let -
const
var
var city = "Dhaka";
এটি পুরোনো পদ্ধতি।
let
let age = 22;
বর্তমানে সবচেয়ে বেশি ব্যবহৃত।
const
const country = "Bangladesh";
যে মান পরিবর্তন হবে না, সেখানে const ব্যবহার করা হয়।
Variable Naming Convention
ভালো উদাহরণঃ
let totalPrice;let studentName;let userEmail;
খারাপ উদাহরণঃ
let a;let x1;let abc;
অর্থবহ নাম ব্যবহার করলে কোড বোঝা সহজ হয়।
Data Types
JavaScript-এ প্রধান Data Type দুটি ভাগে বিভক্তঃ
Primitive Data Types
- String
- Number
- Boolean
- Null
- Undefined
- BigInt
- Symbol
String
let name = "Rahim";
Number
let age = 20;
Boolean
let isStudent = true;
Undefined
let salary;
Null
let address = null;
BigInt
let big = 12345678901234567890n;
Symbol
let id = Symbol("id");
Non-Primitive Data Types
- Object
- Array
- Function
Object
let student = {name:"Rahim",age:20};
Array
let fruits = ["Apple","Banana","Mango"];
Function
function hello(){console.log("Hello");}
Comments
Comment এমন লেখা, যা JavaScript চালায় না। এটি প্রোগ্রামারের জন্য ব্যাখ্যা হিসেবে থাকে।
Single Line Comment
// This is comment
Multi Line Comment
/*****Multiple Line Comment*****/
Statements
Statement হলো JavaScript-এর একটি সম্পূর্ণ নির্দেশনা।
উদাহরণঃ
let age = 20;
এটিই একটি Statement।
console.log(age);
এটিও একটি Statement।
Expressions
Expression হলো এমন কোড, যা একটি মান (Value) তৈরি করে।
উদাহরণঃ
10+20
ফলাফলঃ
30
আরও উদাহরণঃ
age+5
Semicolon ( ; )
JavaScript-এ অনেক ক্ষেত্রে Semicolon না দিলেও কোড চলতে পারে। তবে ভালো অভ্যাস হিসেবে ব্যবহার করা উচিত। উদাহরণঃ
let age = 20;console.log(age);
JavaScript Code Block
একাধিক Statement একত্রে রাখতে { } ব্যবহার করা হয়।
if(age>18){console.log("Adult");}
JavaScript White Space
JavaScript অতিরিক্ত Space উপেক্ষা করে।
let age=20;
এবং
let age = 20;
দুটিই একইভাবে কাজ করবে।
বাস্তব উদাহরণ
একটি সাধারণ JavaScript Program:
let studentName = "Rahim";let marks = 85;if(marks>=80){console.log(studentName+" Passed");}
এখানে রয়েছেঃ
- Variable
- String
- Number
- if Statement
- Operator
- Function Call
অর্থাৎ JavaScript-এর প্রায় সব মৌলিক উপাদান একসঙ্গে ব্যবহৃত হয়েছে।
সারসংক্ষেপ
এই পর্বে আমরা জাভাস্ক্রিপ্টের গঠনের ভিত্তি সম্পর্কে জেনেছিঃ
- JavaScript Structure
- Syntax
- Keywords
- Identifiers
- Variables
- Data Types
- Statements
- Expressions
- Comments
- Code Blocks
এসব বিষয় ভালোভাবে আয়ত্ত করলে JavaScript-এর উন্নত বিষয়গুলো শেখা অনেক সহজ হয়ে যাবে।
Operators (অপারেটর)
Operator হলো এমন বিশেষ চিহ্ন বা প্রতীক, যা এক বা একাধিক মান (Operand)-এর ওপর নির্দিষ্ট কাজ সম্পাদন করে। উদাহরণঃ
let a = 15;let b = 5;console.log(a + b);
এখানে + হলো Operator।
Arithmetic Operators
গাণিতিক হিসাব করার জন্য ব্যবহৃত হয়।
| Operator | কাজ |
|---|---|
| + | যোগ |
| - | বিয়োগ |
| * | গুণ |
| / | ভাগ |
| % | ভাগশেষ |
| ** | সূচক (Exponentiation) |
| ++ | Increment |
| -- | Decrement |
উদাহরণঃ
let x = 20;let y = 4;console.log(x + y);console.log(x - y);console.log(x * y);console.log(x / y);console.log(x % y);console.log(x ** y);
Assignment Operators
ভ্যারিয়েবলে মান সংরক্ষণ করতে ব্যবহৃত হয়।
let x = 10;x += 5;x -= 2;x *= 3;x /= 2;
Comparison Operators
দুটি মান তুলনা করার জন্য ব্যবহৃত হয়।
=====!=!==><>=<=
উদাহরণঃ
let age = 18;console.log(age >= 18);
Logical Operators
একাধিক শর্ত একসঙ্গে পরীক্ষা করতে ব্যবহৃত হয়।
&&||!
উদাহরণঃ
let age = 20;let citizen = true;if (age >= 18 && citizen) {console.log("Eligible");}
Conditional Statements
if Statement
let marks = 80;if (marks >= 80) {console.log("Excellent");}
if...else
if (marks >= 33) {console.log("Pass");} else {console.log("Fail");}
else if
if (marks >= 80) {console.log("A+");} else if (marks >= 70) {console.log("A");} else {console.log("B");}
switch Statement
let day = 3;switch(day){case 1:console.log("Saturday");break;case 2:console.log("Sunday");break;case 3:console.log("Monday");break;default:console.log("Unknown");}
Loop
Loop ব্যবহার করা হয় একই কাজ বারবার করার জন্য।
for Loop
for(let i=1;i<=5;i++){console.log(i);}
while Loop
let i=1;while(i<=5){console.log(i);i++;}
do...while Loop
let i=1;do{console.log(i);i++;}while(i<=5);
Function
Function হলো পুনঃব্যবহারযোগ্য (Reusable) কোডের একটি ব্লক।
function welcome(){console.log("Welcome");}welcome();
Parameter এবং Argument
function add(a,b){return a+b;}console.log(add(10,20));
এখানেঃ
-
aওbহলো Parameter -
10ও20হলো Argument
Return Statement
function square(x){return x*x;}
return Function এর ফলাফল ফেরত পাঠায়।
Arrow Function
ES6 সংস্করণে Arrow Function যোগ হয়েছে।
const greet = () => {console.log("Hello");}
আরও সংক্ষিপ্তভাবেঃ
const sum=(a,b)=>a+b;
Scope
Scope নির্ধারণ করে Variable কোথায় ব্যবহার করা যাবে।
Global Scope
let name="Rahim";
পুরো Program-এ ব্যবহার করা যায়।
Local Scope
function demo(){let age=20;}
Function-এর বাইরে age ব্যবহার করা যাবে না।
Hoisting
JavaScript Variable ও Function Declaration-কে উপরে নিয়ে যায়।
উদাহরণঃ
console.log(a);var a=10;
var এর ক্ষেত্রে এটি undefined দেখাতে পারে, কিন্তু let ও const-এর ক্ষেত্রে ReferenceError হয়।
Object
Object হলো Key-Value Pair এর সমষ্টি।
let student={name:"Rahim",age:20,city:"Dhaka"};
Property পড়াঃ
console.log(student.name);
Array
একাধিক মান সংরক্ষণ করতে ব্যবহৃত হয়।
let colors=["Red","Green","Blue"];
উপাদান পড়াঃ
console.log(colors[0]);
DOM (Document Object Model)
DOM হলো HTML Document-এর Object Representation। JavaScript DOM ব্যবহার করে HTML পরিবর্তন করতে পারে।
HTML
<h1 id="title">Welcome</h1>
JavaScript
document.getElementById("title").innerHTML="JavaScript Tutorial";
Event
Event হলো ব্যবহারকারীর কোনো কার্যকলাপ। যেমনঃ
- Click
- Double Click
- Mouse Over
- Key Press
- Scroll
- Submit
Click Event
HTML
<button onclick="showMessage()">Click</button>
JavaScript
function showMessage(){alert("Hello");}
Event Listener
document.getElementById("btn").addEventListener("click",function(){console.log("Clicked");});
Error Handling
JavaScript-এ Runtime Error নিয়ন্ত্রণের জন্য try...catch ব্যবহার করা হয়।
try{console.log(a);}catch(error){console.log(error);}
JavaScript Execution Flow
একটি সাধারণ JavaScript প্রোগ্রাম সাধারণত এই ধাপে কাজ করেঃ
Program Start│Variable Declaration│Function Declaration│Condition Checking│Loop Execution│DOM Manipulation│Event Handling│Output│Program End
বাস্তব উদাহরণ
let marks = 85;function result(score){if(score>=80){return "A+";}else{return "Pass";}}document.getElementById("output").innerHTML=result(marks);
এখানে ব্যবহৃত হয়েছেঃ
- Variable
- Function
- Parameter
- Return
- if...else
- DOM Manipulation
Interview/Viva প্রশ্ন
JavaScript Operator কী?
Operand-এর ওপর কাজ করার জন্য ব্যবহৃত প্রতীক।
Function কী?
Reusable Code Block।
Scope কী?
Variable কোথায় ব্যবহার করা যাবে তা নির্ধারণ করে।
DOM কী?
HTML Document-এর Object Model।
Event কী?
ব্যবহারকারীর কোনো Action।
Hoisting কী?
Declaration-কে কার্যকরভাবে কোডের শুরুতে প্রক্রিয়াকরণের আচরণ।
ES6 (ECMAScript 2015) কী?
ECMAScript 2015 বা ES6 হলো JavaScript-এর একটি গুরুত্বপূর্ণ সংস্করণ, যা ভাষাটিকে আরও শক্তিশালী, আধুনিক এবং সহজ করেছে। বর্তমানে অধিকাংশ আধুনিক ব্রাউজার ES6-এর বৈশিষ্ট্য সমর্থন করে।
ES6-এর গুরুত্বপূর্ণ বৈশিষ্ট্য
১. let ও const
let age = 22;const country = "Bangladesh";
-
letপরিবর্তনযোগ্য মানের জন্য। -
constঅপরিবর্তনীয় মানের জন্য।
২. Template Literals
let name = "Rahim";console.log(`Welcome ${name}`);
এর মাধ্যমে সহজে স্ট্রিংয়ের মধ্যে ভ্যারিয়েবল ব্যবহার করা যায়।
৩. Destructuring
const student = {name: "Rahim",age: 20};const { name, age } = student;
Object বা Array থেকে সহজে ডেটা বের করা যায়।
৪. Spread Operator
const a = [1,2,3];const b = [...a,4,5];
৫. Rest Operator
function total(...numbers){return numbers.length;}
৬. Module
export function add(a,b){return a+b;}
অন্য ফাইলে:
import { add } from "./math.js";
JavaScript Engine কী?
JavaScript Engine হলো এমন একটি সফটওয়্যার, যা JavaScript কোড পড়ে এবং কার্যকর করে। জনপ্রিয় Engine:
| Browser | Engine |
|---|---|
| Chrome | V8 |
| Edge | V8 |
| Firefox | SpiderMonkey |
| Safari | JavaScriptCore |
Execution Context
JavaScript কোড চালানোর সময় একটি Execution Context তৈরি হয়। এটি তিনটি অংশ নিয়ে কাজ করেঃ
- Variable Environment
- Scope Chain
-
thisKeyword
Call Stack
Call Stack একটি LIFO (Last In First Out) ডেটা স্ট্রাকচার। উদাহরণঃ
function one(){two();}function two(){console.log("Hello");}one();
এখানেঃ
-
one()Call Stack-এ যায়। -
এরপর
two()যোগ হয়। -
two()শেষ হলে Stack থেকে বের হয়। -
শেষে
one()শেষ হয়।
Event Loop
JavaScript একটি Single-Threaded Language। তাহলে একসঙ্গে অনেক কাজ কীভাবে করে?
এর উত্তর হলোঃ
- Call Stack
- Web APIs
- Callback Queue
- Event Loop
Event Loop নিশ্চিত করে যে Call Stack খালি হলে Queue থেকে পরবর্তী কাজ চালানো হবে।
Asynchronous JavaScript
সব কাজ একসঙ্গে শেষ হয় না। যেমনঃ
- API Request
- File Download
- Timer
- Database Response
এসব কাজ Asynchronous পদ্ধতিতে হয়।
Callback
setTimeout(function(){console.log("Hello");},2000);
Promise
const promise = new Promise((resolve,reject)=>{resolve("Success");});
Async/Await
async function loadData(){let response = await fetch("data.json");}
এটি Promise ব্যবহারের আধুনিক ও সহজ পদ্ধতি।
JavaScript Best Practices
অর্থবহ Variable Name ব্যবহার করুন
let totalPrice;let studentName;
ছোট Function লিখুন
একটি Function একটি নির্দিষ্ট কাজ করবে।
Code Reuse করুন
একই কোড বারবার না লিখে Function ব্যবহার করুন।
Comment লিখুন
// Calculate Total Marks
Error Handling করুন
try{// code}catch(error){console.log(error);}
const-কে অগ্রাধিকার দিন
যেখানে মান পরিবর্তন হবে না সেখানে const ব্যবহার করুন।
Performance Optimization
JavaScript দ্রুত চালানোর জন্যঃ
- Minify JavaScript
- Lazy Loading ব্যবহার
- Code Splitting
- Debounce ও Throttle
- Browser Cache
- CDN
- Image Optimization
- Unused Library অপসারণ
JavaScript-এর ব্যবহার
বর্তমানে JavaScript ব্যবহৃত হয়ঃ
- Web Development
- Mobile Apps (React Native)
- Desktop Apps (Electron)
- Game Development
- Progressive Web Apps (PWA)
- Single Page Applications (SPA)
- Backend (Node.js)
- API Development
HSC ICT ও Viva-এর গুরুত্বপূর্ণ প্রশ্ন
JavaScript কী?
একটি উচ্চস্তরের (High-Level), ইন্টারপ্রেটেড এবং বহুমুখী প্রোগ্রামিং ভাষা।
JavaScript Engine কী?
যে সফটওয়্যার JavaScript কোড চালায়।
ES6 কী?
JavaScript-এর আধুনিক সংস্করণ (ECMAScript 2015)।
Call Stack কী?
Function Call সংরক্ষণ করার Stack।
Event Loop কী?
Asynchronous Task পরিচালনার ব্যবস্থা।
Promise কী?
Asynchronous Operation-এর ফলাফল পরিচালনার একটি অবজেক্ট।
Async/Await কী?
Promise পরিচালনার সহজ ও আধুনিক সিনট্যাক্স।
Template Literal কী?
Backtick ( ) ব্যবহার করে স্ট্রিং লেখার পদ্ধতি।
Spread Operator কী?
Array বা Object-এর উপাদান প্রসারিত করতে ব্যবহৃত (...) অপারেটর।
Destructuring কী?
Object বা Array থেকে সহজে মান বের করার কৌশল।
FAQ
১. জাভাস্ক্রিপ্টের গঠন কী?
জাভাস্ক্রিপ্টের গঠন বলতে Syntax, Variables, Data Types, Operators, Statements, Functions, Objects, Events এবং Program Flow-এর সমন্বিত কাঠামোকে বোঝায়।
২. JavaScript কি Client-Side Language?
হ্যাঁ, JavaScript মূলত Client-Side Scripting Language, তবে Node.js-এর মাধ্যমে Server-Side-এও ব্যবহার করা যায়।
৩. ES6 কেন গুরুত্বপূর্ণ?
ES6 নতুন সিনট্যাক্স, let, const, Arrow Function, Module, Promise ইত্যাদি যোগ করে JavaScript-কে আরও আধুনিক করেছে।
৪. DOM কী?
DOM হলো HTML Document-এর Object Model, যা JavaScript-এর মাধ্যমে পরিবর্তন করা যায়।
৫. Event Loop কী?
এটি Asynchronous Task পরিচালনা করে এবং Call Stack খালি হলে Callback Queue থেকে কাজ চালায়।
৬. Promise কী?
Promise হলো এমন একটি অবজেক্ট, যা ভবিষ্যতে সফল বা ব্যর্থ হতে পারে এমন Asynchronous কাজের ফলাফল নির্দেশ করে।
৭. Async/Await কেন ব্যবহার করা হয়?
Promise-ভিত্তিক কোডকে আরও সহজ ও পড়তে সুবিধাজনক করার জন্য।
৮. let ও const-এর পার্থক্য কী?
let-এর মান পরিবর্তন করা যায়, const-এর মান পুনরায় নির্ধারণ করা যায় না।
৯. JavaScript Engine কী?
JavaScript কোড ব্যাখ্যা ও চালানোর সফটওয়্যার।
১০. JavaScript কোথায় ব্যবহৃত হয়?
ওয়েব, মোবাইল, ডেস্কটপ অ্যাপ, গেম, API এবং সার্ভার-সাইড ডেভেলপমেন্টে।