📚 বাংলাস্ক্রিপ্ট শেখার সম্পূর্ণ গাইড
BanglaScript Zero to Hero Learning Path
Version: 4.0
Author: BanglaScript Team
Last Updated: December 2025
📖 সূচিপত্র (Table of Contents)
পরিচিতি (Introduction)
ইন্সটলেশন (Installation)
Level 1: শুরুর পাঠ (Beginner)
Level 2: মধ্যবর্তী পাঠ (Intermediate)
Level 3: উন্নত পাঠ (Advanced)
Level 4: মাস্টার লেভেল (Master)
প্রজেক্ট গাইড (Project Guide)
কীওয়ার্ড রেফারেন্স (Keyword Reference)
বাংলাস্ক্রিপ্ট হলো একটি প্রোগ্রামিং ভাষা যা বাংলায় JavaScript লেখার সুযোগ দেয়। এটি বাংলা কীওয়ার্ড ব্যবহার করে JavaScript-এ ট্রান্সপাইল হয়।
🇧🇩 মাতৃভাষায় কোডিং - বাংলায় প্রোগ্রামিং শিখুন
📚 শেখা সহজ - ইংরেজি না জানলেও শিখতে পারবেন
🔄 JavaScript Compatible - সব JavaScript ফিচার সাপোর্ট করে
🌐 Web Development - ওয়েব অ্যাপ তৈরি করুন বাংলায়
Node.js (version 16 বা তার বেশি)
npm (Node Package Manager)
# গ্লোবাল ইন্সটল (সব জায়গা থেকে ব্যবহার করতে পারবেন)
npm install -g banglascript
# ভার্সন চেক করুন
bjs --version
# নতুন প্রজেক্ট তৈরি করুন
bjs init my-first-app
# প্রজেক্টে যান
cd my-first-app
# বিল্ড করুন
npm run build
# রান করুন
npm start
Level 1: শুরুর পাঠ (Beginner)
📝 পাঠ ১.১: হ্যালো ওয়ার্ল্ড
// এটি একটি কমেন্ট - কম্পিউটার এটি পড়বে না
লিখো("হ্যালো বিশ্ব!");
লিখো("আমি বাংলাস্ক্রিপ্ট শিখছি!");
ব্যাখ্যা:
লিখো() = console.log() - স্ক্রিনে কিছু দেখায়
// দিয়ে কমেন্ট লেখা হয়
প্রতিটি লাইনের শেষে ; দিতে পারেন (ঐচ্ছিক)
# ফাইল সেভ করুন hello.bjs নামে, তারপর
bjs run hello.bjs
📝 পাঠ ১.২: ভেরিয়েবল (Variables)
ভেরিয়েবল হলো ডাটা রাখার বাক্স।
// 1. ধ্রুবক (const) - মান পরিবর্তন হবে না
ধ্রুবক দেশ = "বাংলাদেশ";
// 2. চলক/সংখ্যা (let) - মান পরিবর্তন করা যায়
চলক বয়স = ২৫;
সংখ্যা নম্বর = ১০০;
// 3. পরিবর্তনশীল (var) - পুরাতন পদ্ধতি
পরিবর্তনশীল পুরাতন = "old";
ধ্রুবক নাম = "রহিম";
চলক বয়স = ২০;
সংখ্যা উচ্চতা = ১৭০;
লিখো("নাম: " + নাম);
লিখো("বয়স: " + বয়স);
লিখো("উচ্চতা: " + উচ্চতা + " সেমি");
// মান পরিবর্তন (শুধু চলক/সংখ্যায়)
বয়স = ২১;
লিখো("নতুন বয়স: " + বয়স);
// বাংলা সংখ্যা ব্যবহার করতে পারেন!
সংখ্যা ক = ১;
সংখ্যা খ = ২;
সংখ্যা গ = ৩;
সংখ্যা বড় = ১০০০;
লিখো(ক + খ); // আউটপুট: 3
লিখো(বড়); // আউটপুট: 1000
সংখ্যা রূপান্তর:
বাংলা
ইংরেজি
০
0
১
1
২
2
৩
3
৪
4
৫
5
৬
6
৭
7
৮
8
৯
9
📝 পাঠ ১.৩: ডাটা টাইপ (Data Types)
// স্ট্রিং (টেক্সট)
ধ্রুবক শহর = "ঢাকা";
ধ্রুবক বার্তা = 'হ্যালো!';
// সংখ্যা (নম্বর)
সংখ্যা তাপমাত্রা = ৩২;
সংখ্যা দাম = ৯৯.৯৯;
// বুলিয়ান (সত্য/মিথ্যা)
ধ্রুবক বৃষ্টি_হচ্ছে = সত্য;
ধ্রুবক রোদ = মিথ্যা;
// শূন্য মান
ধ্রুবক কিছুই_নেই = শূন্য;
ধ্রুবক অনির্ধারিত_মান = অনির্ধারিত;
// টাইপ চেক করা
লিখো(ধরন শহর); // string
লিখো(ধরন তাপমাত্রা); // number
লিখো(ধরন বৃষ্টি_হচ্ছে); // boolean
📝 পাঠ ১.৪: শর্ত (Conditions)
সংখ্যা নম্বর = ৭৫;
যদি (নম্বর >= ৮০) {
লিখো("গ্রেড: A+");
} নাহলে যদি (নম্বর >= ৭০) {
লিখো("গ্রেড: A");
} নাহলে যদি (নম্বর >= ৬০) {
লিখো("গ্রেড: B");
} নাহলে যদি (নম্বর >= ৫০) {
লিখো("গ্রেড: C");
} নাহলে যদি (নম্বর >= ৪০) {
লিখো("গ্রেড: D");
} নাহলে {
লিখো("ফেল!");
}
সংখ্যা ক = ১০;
সংখ্যা খ = ২০;
// সমান কিনা
যদি (ক === খ) {
লিখো("সমান");
}
// বড় কিনা
যদি (খ > ক) {
লিখো("খ বড়");
}
// ছোট বা সমান কিনা
যদি (ক <= খ) {
লিখো("ক, খ এর সমান বা ছোট");
}
তুলনা চিহ্ন:
চিহ্ন
অর্থ
=== বা সমান
সমান
!== বা অসমান
অসমান
> বা বড়
বড়
< বা ছোট
ছোট
>= বা বড়_বা_সমান
বড় বা সমান
<= বা ছোট_বা_সমান
ছোট বা সমান
// ১ থেকে ৫ পর্যন্ত গণনা
জন্য (সংখ্যা i = ১; i <= ৫; i++) {
লিখো("সংখ্যা: " + i);
}
// আউটপুট:
// সংখ্যা: 1
// সংখ্যা: 2
// সংখ্যা: 3
// সংখ্যা: 4
// সংখ্যা: 5
চলক গণনা = ১;
যখন (গণনা <= ৩) {
লিখো("গণনা: " + গণনা);
গণনা = গণনা + ১;
}
থামাও ও চালিয়ে যাও (break & continue)
জন্য (সংখ্যা i = ১; i <= ১০; i++) {
// ৫ হলে থামো
যদি (i === ৫) {
থামাও;
}
লিখো(i);
}
জন্য (সংখ্যা j = ১; j <= ৫; j++) {
// জোড় সংখ্যা স্কিপ করো
যদি (j % ২ === ০) {
চালিয়ে_যাও;
}
লিখো("বিজোড়: " + j);
}
📝 পাঠ ১.৬: অনুষ্ঠান/ফাংশন (Functions)
// সরল ফাংশন
অনুষ্ঠান শুভেচ্ছা() {
লিখো("স্বাগতম!");
}
শুভেচ্ছা(); // ফাংশন কল করা
// প্যারামিটার সহ ফাংশন
অনুষ্ঠান নাম_বলো(নাম) {
লিখো("হ্যালো, " + নাম + "!");
}
নাম_বলো("রহিম"); // হ্যালো, রহিম!
নাম_বলো("করিম"); // হ্যালো, করিম!
// রিটার্ন সহ ফাংশন
অনুষ্ঠান যোগ(ক, খ) {
প্রেরণ ক + খ;
}
ধ্রুবক ফলাফল = যোগ(৫, ৩);
লিখো("যোগফল: " + ফলাফল); // যোগফল: 8
অ্যারো ফাংশন (Arrow Function)
// অ্যারো ফাংশন
ধ্রুবক গুণ = (ক, খ) => ক * খ;
লিখো(গুণ(৪, ৫)); // 20
// একাধিক লাইন অ্যারো ফাংশন
ধ্রুবক বিস্তারিত_যোগ = (ক, খ) => {
ধ্রুবক যোগফল = ক + খ;
লিখো("দুটি সংখ্যার যোগ হলো: " + যোগফল);
প্রেরণ যোগফল;
};
বিস্তারিত_যোগ(১০, ২০);
// আপনার পরিচয় কার্ড তৈরি করুন
ব্যাক্তি নাম = "আপনার নাম";
পরিবর্তনশীল বয়স = ২০;
বাক্য পেশা = "শিক্ষার্থী";
বাক্য শহর = "ঢাকা";
অনুষ্ঠান পরিচয়_দেখাও() {
লিখো("===================");
লিখো(" পরিচয় কার্ড ");
লিখো("===================");
লিখো("নাম: " + নাম);
লিখো("বয়স: " + বয়স);
লিখো("পেশা: " + পেশা);
লিখো("শহর: " + শহর);
লিখো("===================");
}
পরিচয়_দেখাও();
অনুশীলন ২: সংখ্যা পরীক্ষক
অনুষ্ঠান সংখ্যা_পরীক্ষা(সংখ্যা) {
যদি (সংখ্যা > ০) {
লিখো(সংখ্যা + " একটি ধনাত্মক সংখ্যা");
} নাহলে যদি (সংখ্যা < ০) {
লিখো(সংখ্যা + " একটি ঋণাত্মক সংখ্যা");
} নাহলে {
লিখো("সংখ্যাটি শূন্য");
}
যদি (সংখ্যা % ২ === ০) {
লিখো("এটি জোড় সংখ্যা");
} নাহলে {
লিখো("এটি বিজোড় সংখ্যা");
}
}
সংখ্যা_পরীক্ষা(৭);
সংখ্যা_পরীক্ষা(-৪);
সংখ্যা_পরীক্ষা(০);
Level 2: মধ্যবর্তী পাঠ (Intermediate)
📝 পাঠ ২.১: অ্যারে (Arrays)
// অ্যারে তৈরি
ধ্রুবক ফলসমূহ = ["আম", "জাম", "কাঁঠাল", "লিচু"];
ধ্রুবক সংখ্যাসমূহ = [১, ২, ৩, ৪, ৫];
// অ্যাক্সেস করা (০ থেকে শুরু)
লিখো(ফলসমূহ[০]); // আম
লিখো(ফলসমূহ[২]); // কাঁঠাল
// দৈর্ঘ্য জানা
লিখো("মোট ফল: " + ফলসমূহ.দৈর্ঘ্য); // 4
// নতুন আইটেম যোগ করা
ফলসমূহ.ঠেলো("কলা");
লিখো(ফলসমূহ); // ["আম", "জাম", "কাঁঠাল", "লিচু", "কলা"]
// শেষ আইটেম বের করা
ধ্রুবক শেষ_ফল = ফলসমূহ.তোলা();
লিখো(শেষ_ফল); // কলা
ধ্রুবক শহরসমূহ = ["ঢাকা", "চট্টগ্রাম", "সিলেট", "রাজশাহী"];
// for লুপ
জন্য (সংখ্যা i = ০; i < শহরসমূহ.দৈর্ঘ্য; i++) {
লিখো((i + ১) + ". " + শহরসমূহ[i]);
}
// প্রতিটিতে (forEach)
লিখো("=== forEach দিয়ে ===");
শহরসমূহ.প্রতিটিতে(অনুষ্ঠান (শহর, সূচক) {
লিখো((সূচক + ১) + ". " + শহর);
});
ধ্রুবক নম্বরসমূহ = [১০, ২০, ৩০, ৪০, ৫০];
// ম্যাপ - প্রতিটি আইটেম পরিবর্তন
ধ্রুবক দ্বিগুণ = নম্বরসমূহ.ম্যাপ(অনুষ্ঠান (n) {
প্রেরণ n * ২;
});
লিখো(দ্বিগুণ); // [20, 40, 60, 80, 100]
// ফিল্টার - শর্ত অনুযায়ী বাছাই
ধ্রুবক বড়_সংখ্যা = নম্বরসমূহ.ফিল্টার(অনুষ্ঠান (n) {
প্রেরণ n > ২৫;
});
লিখো(বড়_সংখ্যা); // [30, 40, 50]
// খুঁজে - প্রথম ম্যাচ
ধ্রুবক পাওয়া = নম্বরসমূহ.খুঁজে(অনুষ্ঠান (n) {
প্রেরণ n > ২৫;
});
লিখো(পাওয়া); // 30
// অন্তর্ভুক্ত - আছে কিনা
লিখো(নম্বরসমূহ.অন্তর্ভুক্ত(৩০)); // true
লিখো(নম্বরসমূহ.অন্তর্ভুক্ত(১০০)); // false
📝 পাঠ ২.২: অবজেক্ট (Objects)
// অবজেক্ট তৈরি
ধ্রুবক ছাত্র = {
নাম: "রহিম",
বয়স: ২০,
শ্রেণী: "দশম",
রোল: ৫,
বিষয়সমূহ: ["বাংলা", "ইংরেজি", "গণিত"]
};
// অ্যাক্সেস করা
লিখো(ছাত্র.নাম); // রহিম
লিখো(ছাত্র["বয়স"]); // 20
লিখো(ছাত্র.বিষয়সমূহ[০]); // বাংলা
// মান পরিবর্তন
ছাত্র.বয়স = ২১;
// নতুন প্রপার্টি যোগ
ছাত্র.ফোন = "01712345678";
ধ্রুবক ক্যালকুলেটর = {
নাম: "সিম্পল ক্যালকুলেটর",
যোগ: অনুষ্ঠান (ক, খ) {
প্রেরণ ক + খ;
},
বিয়োগ: অনুষ্ঠান (ক, খ) {
প্রেরণ ক - খ;
},
গুণ: অনুষ্ঠান (ক, খ) {
প্রেরণ ক * খ;
},
ভাগ: অনুষ্ঠান (ক, খ) {
যদি (খ === ০) {
প্রেরণ "শূন্য দিয়ে ভাগ করা যায় না";
}
প্রেরণ ক / খ;
}
};
লিখো(ক্যালকুলেটর.যোগ(১০, ৫)); // 15
লিখো(ক্যালকুলেটর.গুণ(৪, ৩)); // 12
লিখো(ক্যালকুলেটর.ভাগ(২০, ৫)); // 4
📝 পাঠ ২.৩: ক্লাস (Classes)
ক্লাস মানুষ {
// কনস্ট্রাক্টর
নির্মাতা(নাম, বয়স) {
এই.নাম = নাম;
এই.বয়স = বয়স;
}
// মেথড
পরিচয়() {
লিখো("আমার নাম " + এই.নাম + ", বয়স " + এই.বয়স);
}
বৃদ্ধি() {
এই.বয়স = এই.বয়স + ১;
লিখো("জন্মদিনের শুভেচ্ছা! এখন বয়স: " + এই.বয়স);
}
}
// অবজেক্ট তৈরি
ধ্রুবক ব্যক্তি১ = নতুন মানুষ("রহিম", ২৫);
ধ্রুবক ব্যক্তি২ = নতুন মানুষ("করিম", ৩০);
ব্যক্তি১.পরিচয়(); // আমার নাম রহিম, বয়স 25
ব্যক্তি২.পরিচয়(); // আমার নাম করিম, বয়স 30
ব্যক্তি১.বৃদ্ধি(); // জন্মদিনের শুভেচ্ছা! এখন বয়স: 26
ইনহেরিটেন্স (Inheritance)
ক্লাস প্রাণী {
নির্মাতা(নাম) {
এই.নাম = নাম;
}
কথা_বলো() {
লিখো(এই.নাম + " শব্দ করছে");
}
}
ক্লাস কুকুর বিস্তৃত প্রাণী {
নির্মাতা(নাম, জাত) {
সুপার(নাম);
এই.জাত = জাত;
}
কথা_বলো() {
লিখো(এই.নাম + " বলছে: ঘেউ ঘেউ!");
}
তথ্য() {
লিখো("নাম: " + এই.নাম + ", জাত: " + এই.জাত);
}
}
ধ্রুবক টমি = নতুন কুকুর("টমি", "জার্মান শেফার্ড");
টমি.কথা_বলো(); // টমি বলছে: ঘেউ ঘেউ!
টমি.তথ্য(); // নাম: টমি, জাত: জার্মান শেফার্ড
📝 পাঠ ২.৪: এরর হ্যান্ডলিং (Error Handling)
অনুষ্ঠান ভাগ_করো(ক, খ) {
চেষ্টা {
যদি (খ === ০) {
ছুড়ে_দাও নতুন Error("শূন্য দিয়ে ভাগ করা যায় না!");
}
ধ্রুবক ফলাফল = ক / খ;
লিখো("ফলাফল: " + ফলাফল);
প্রেরণ ফলাফল;
} ধরো (ত্রুটি) {
ত্রুটি_লিখো("সমস্যা হয়েছে: " + ত্রুটি.message);
} অবশেষে {
লিখো("অপারেশন শেষ");
}
}
ভাগ_করো(২০, ৪); // ফলাফল: 5
ভাগ_করো(১০, ০); // সমস্যা হয়েছে: শূন্য দিয়ে ভাগ করা যায় না!
অনুষ্ঠান দিনের_নাম(দিন) {
সুইচ (দিন) {
কেস ১:
লিখো("রবিবার");
থামাও;
কেস ২:
লিখো("সোমবার");
থামাও;
কেস ৩:
লিখো("মঙ্গলবার");
থামাও;
কেস ৪:
লিখো("বুধবার");
থামাও;
কেস ৫:
লিখো("বৃহস্পতিবার");
থামাও;
কেস ৬:
লিখো("শুক্রবার");
থামাও;
কেস ৭:
লিখো("শনিবার");
থামাও;
সাধারণ:
লিখো("অবৈধ দিন");
}
}
দিনের_নাম(৫); // বৃহস্পতিবার
দিনের_নাম(১); // রবিবার
🎯 Level 2 প্রজেক্ট: শিক্ষার্থী ম্যানেজমেন্ট
ক্লাস শিক্ষার্থী {
নির্মাতা(নাম, রোল, শ্রেণী) {
এই.নাম = নাম;
এই.রোল = রোল;
এই.শ্রেণী = শ্রেণী;
এই.নম্বরসমূহ = [];
}
নম্বর_যোগ(বিষয়, নম্বর) {
এই.নম্বরসমূহ.ঠেলো({ বিষয়: বিষয়, নম্বর: নম্বর });
}
গড়_নম্বর() {
যদি (এই.নম্বরসমূহ.দৈর্ঘ্য === ০) প্রেরণ ০;
চলক মোট = ০;
এই.নম্বরসমূহ.প্রতিটিতে(অনুষ্ঠান (item) {
মোট = মোট + item.নম্বর;
});
প্রেরণ মোট / এই.নম্বরসমূহ.দৈর্ঘ্য;
}
গ্রেড() {
ধ্রুবক গড় = এই.গড়_নম্বর();
যদি (গড় >= ৮০) প্রেরণ "A+";
নাহলে যদি (গড় >= ৭০) প্রেরণ "A";
নাহলে যদি (গড় >= ৬০) প্রেরণ "B";
নাহলে যদি (গড় >= ৫০) প্রেরণ "C";
নাহলে যদি (গড় >= ৪০) প্রেরণ "D";
নাহলে প্রেরণ "F";
}
রিপোর্ট() {
লিখো("===== রেজাল্ট কার্ড =====");
লিখো("নাম: " + এই.নাম);
লিখো("রোল: " + এই.রোল);
লিখো("শ্রেণী: " + এই.শ্রেণী);
লিখো("----- বিষয়ভিত্তিক নম্বর -----");
এই.নম্বরসমূহ.প্রতিটিতে(অনুষ্ঠান (item) {
লিখো(item.বিষয় + ": " + item.নম্বর);
});
লিখো("-------------------------");
লিখো("গড় নম্বর: " + এই.গড়_নম্বর().toFixed(২));
লিখো("গ্রেড: " + এই.গ্রেড());
লিখো("=========================");
}
}
// ব্যবহার
ধ্রুবক ছাত্র১ = নতুন শিক্ষার্থী("রহিম উদ্দিন", ৫, "দশম");
ছাত্র১.নম্বর_যোগ("বাংলা", ৮৫);
ছাত্র১.নম্বর_যোগ("ইংরেজি", ৭৮);
ছাত্র১.নম্বর_যোগ("গণিত", ৯২);
ছাত্র১.নম্বর_যোগ("বিজ্ঞান", ৮৮);
ছাত্র১.নম্বর_যোগ("সমাজ", ৭৫);
ছাত্র১.রিপোর্ট();
Level 3: উন্নত পাঠ (Advanced)
📝 পাঠ ৩.১: অ্যাসিঙ্ক প্রোগ্রামিং
অনুষ্ঠান ডাটা_আনো() {
প্রেরণ নতুন Promise(অনুষ্ঠান (resolve, reject) {
setTimeout(অনুষ্ঠান () {
ধ্রুবক ডাটা = { নাম: "রহিম", বয়স: ২৫ };
resolve(ডাটা);
}, ২০০০);
});
}
// Promise ব্যবহার
ডাটা_আনো()
.then(অনুষ্ঠান (ডাটা) {
লিখো("ডাটা পাওয়া গেছে:", ডাটা);
})
.catch(অনুষ্ঠান (ত্রুটি) {
ত্রুটি_লিখো("সমস্যা:", ত্রুটি);
});
অ্যাসিঙ্ক অনুষ্ঠান মূল_কাজ() {
লিখো("ডাটা লোড হচ্ছে...");
চেষ্টা {
ধ্রুবক ডাটা = অপেক্ষা ডাটা_আনো();
লিখো("পাওয়া গেছে:", ডাটা);
} ধরো (ত্রুটি) {
ত্রুটি_লিখো("সমস্যা:", ত্রুটি);
}
লিখো("কাজ শেষ!");
}
মূল_কাজ();
অ্যাসিঙ্ক অনুষ্ঠান জেসন_আনো(url) {
ধ্রুবক response = অপেক্ষা fetch(url);
যদি (!response.ok) {
ছুড়ে_দাও নতুন Error("নেটওয়ার্ক সমস্যা");
}
প্রেরণ অপেক্ষা response.json();
}
অ্যাসিঙ্ক অনুষ্ঠান ব্যবহারকারী_দেখাও() {
চেষ্টা {
ধ্রুবক ডাটা = অপেক্ষা জেসন_আনো("https://api.github.com/users/octocat");
লিখো("নাম:", ডাটা.name);
লিখো("লোকেশন:", ডাটা.location);
} ধরো (ত্রুটি) {
ত্রুটি_লিখো("API Error:", ত্রুটি);
}
}
ব্যবহারকারী_দেখাও();
📝 পাঠ ৩.২: DOM ম্যানিপুলেশন
// ID দিয়ে সিলেক্ট
ধ্রুবক heading = দস্তাবেজ.আইডি_দ্বারা_পাও("শিরোনাম");
// CSS সিলেক্টর দিয়ে
ধ্রুবক বোতাম = দস্তাবেজ.সিলেক্টর_দ্বারা_পাও("#submit-btn");
ধ্রুবক সব_আইটেম = দস্তাবেজ.সব_সিলেক্টর_দ্বারা_পাও(".item");
// ক্লাস দিয়ে
ধ্রুবক কার্ডসমূহ = দস্তাবেজ.শ্রেণী_দ্বারা_পাও("card");
// ট্যাগ দিয়ে
ধ্রুবক প্যারাগ্রাফসমূহ = দস্তাবেজ.ট্যাগ_দ্বারা_পাও("p");
ধ্রুবক div = দস্তাবেজ.সিলেক্টর_দ্বারা_পাও("#result");
// টেক্সট পরিবর্তন
div.টেক্সট_পরিবর্তন_করো = "নতুন টেক্সট";
// HTML পরিবর্তন
div.বিষয়বস্তু_পরিবর্তন_করো = "<b>বোল্ড টেক্সট</b>";
// স্টাইল পরিবর্তন
div.শৈলী.রঙ = "blue";
div.শৈলী.background = "#f0f0f0";
div.শৈলী.padding = "20px";
ধ্রুবক বোতাম = দস্তাবেজ.সিলেক্টর_দ্বারা_পাও("#btn");
বোতাম.ইভেন্ট_যোগ_করো("click", অনুষ্ঠান () {
লিখো("বোতামে ক্লিক করা হয়েছে!");
সতর্কবার্তা("হ্যালো!");
});
// DOMContentLoaded ইভেন্ট
দস্তাবেজ.ইভেন্ট_যোগ_করো("DOMContentLoaded", অনুষ্ঠান () {
লিখো("পেজ লোড হয়েছে!");
// এখানে আপনার কোড
});
📝 পাঠ ৩.৩: সম্পূর্ণ ওয়েব অ্যাপ
// ওয়েব অ্যাপ - টুডু লিস্ট
দস্তাবেজ.ইভেন্ট_যোগ_করো("DOMContentLoaded", অনুষ্ঠান () {
ধ্রুবক ইনপুট = দস্তাবেজ.সিলেক্টর_দ্বারা_পাও("#todo-input");
ধ্রুবক বোতাম = দস্তাবেজ.সিলেক্টর_দ্বারা_পাও("#add-btn");
ধ্রুবক তালিকা = দস্তাবেজ.সিলেক্টর_দ্বারা_পাও("#todo-list");
চলক কাজসমূহ = [];
অনুষ্ঠান তালিকা_রেন্ডার() {
তালিকা.বিষয়বস্তু_পরিবর্তন_করো = "";
কাজসমূহ.প্রতিটিতে(অনুষ্ঠান (কাজ, সূচক) {
ধ্রুবক li = দস্তাবেজ.তৈরি_করো("li");
li.টেক্সট_পরিবর্তন_করো = কাজ;
// ডিলিট বোতাম
ধ্রুবক delBtn = দস্তাবেজ.তৈরি_করো("button");
delBtn.টেক্সট_পরিবর্তন_করো = "❌";
delBtn.ইভেন্ট_যোগ_করো("click", অনুষ্ঠান () {
কাজসমূহ.কেটে_দাও(সূচক, ১);
তালিকা_রেন্ডার();
});
li.যোগ_করো(delBtn);
তালিকা.যোগ_করো(li);
});
}
অনুষ্ঠান কাজ_যোগ() {
ধ্রুবক কাজ = ইনপুট.value.trim();
যদি (কাজ) {
কাজসমূহ.ঠেলো(কাজ);
ইনপুট.value = "";
তালিকা_রেন্ডার();
}
}
বোতাম.ইভেন্ট_যোগ_করো("click", কাজ_যোগ);
// Enter কী দিয়েও যোগ করা যাবে
ইনপুট.ইভেন্ট_যোগ_করো("keypress", অনুষ্ঠান (e) {
যদি (e.key === "Enter") {
কাজ_যোগ();
}
});
লিখো("টুডু অ্যাপ প্রস্তুত!");
});
Level 4: মাস্টার লেভেল (Master)
ফাইল এক্সপোর্ট (utils.bjs)
// utils.bjs
অনুষ্ঠান যোগ(ক, খ) {
প্রেরণ ক + খ;
}
অনুষ্ঠান বিয়োগ(ক, খ) {
প্রেরণ ক - খ;
}
ধ্রুবক PI = ৩.১৪১৫৯;
module.exports = { যোগ, বিয়োগ, PI };
// main.bjs
ধ্রুবক utils = require("./utils");
লিখো(utils.যোগ(৫, ৩)); // 8
লিখো(utils.বিয়োগ(১০, ৪)); // 6
লিখো(utils.PI); // 3.14159
📝 পাঠ ৪.২: API সার্ভার তৈরি
// server.bjs
ধ্রুবক http = require("http");
ধ্রুবক PORT = ৩০০০;
// ডাটাবেস (মেমোরি)
চলক ব্যবহারকারীরা = [
{ id: ১, নাম: "রহিম" },
{ id: ২, নাম: "করিম" }
];
ধ্রুবক server = http.createServer(অনুষ্ঠান (req, res) {
res.setHeader("Content-Type", "application/json; charset=utf-8");
যদি (req.url === "/" && req.method === "GET") {
res.writeHead(২০০);
res.end(JSON.stringify({
বার্তা: "বাংলাস্ক্রিপ্ট API সার্ভার",
সংস্করণ: "1.0"
}));
} নাহলে যদি (req.url === "/users" && req.method === "GET") {
res.writeHead(২০০);
res.end(JSON.stringify(ব্যবহারকারীরা));
} নাহলে {
res.writeHead(৪০৪);
res.end(JSON.stringify({ ত্রুটি: "পাওয়া যায়নি" }));
}
});
server.listen(PORT, অনুষ্ঠান () {
লিখো("সার্ভার চালু: http://localhost:" + PORT);
});
📝 পাঠ ৪.৩: Math ফাংশন ব্যবহার
// র্যান্ডম সংখ্যা
ধ্রুবক রান্ডম = এলোমেলো_সংখ্যা(); // 0-1 এর মধ্যে
লিখো(রান্ডম);
// নির্দিষ্ট রেঞ্জে র্যান্ডম
অনুষ্ঠান র্যান্ডম_রেঞ্জ(মিন, ম্যাক্স) {
প্রেরণ গণিত.ফ্লোর(এলোমেলো_সংখ্যা() * (ম্যাক্স - মিন + ১)) + মিন;
}
লিখো(র্যান্ডম_রেঞ্জ(১, ১০)); // 1-10 এর মধ্যে
// অন্যান্য Math ফাংশন
লিখো(গণিত.বর্গমূল(১৬)); // 4
লিখো(গণিত.শক্তি(২, ৩)); // 8
লিখো(গণিত.পরম(-৫)); // 5
লিখো(গণিত.সর্বোচ্চ(১, ৫, ৩)); // 5
লিখো(গণিত.সর্বনিম্ন(১, ৫, ৩)); // 1
লিখো(গণিত.রাউন্ড(৪.৬)); // 5
লিখো(গণিত.সিলিং(৪.১)); // 5
লিখো(গণিত.ফ্লোর(৪.৯)); // 4
ক্যালকুলেটর - যোগ, বিয়োগ, গুণ, ভাগ
গ্রেড ক্যালকুলেটর - নম্বর থেকে গ্রেড
সংখ্যা অনুমান খেলা - র্যান্ডম সংখ্যা অনুমান
টুডু অ্যাপ - কাজের তালিকা
কুইজ অ্যাপ - প্রশ্নোত্তর
খরচ ট্র্যাকার - আয়-ব্যয় হিসাব
ব্লগ অ্যাপ - পোস্ট তৈরি ও দেখা
চ্যাট অ্যাপ - রিয়েল-টাইম মেসেজ
ই-কমার্স - পণ্য ও কার্ট
বাংলা
JavaScript
ধ্রুবক
const
চলক/সংখ্যা
let
পরিবর্তনশীল
var
ব্যাক্তি
const
বাক্য/শব্দ
let
বাংলা
JavaScript
সত্য
true
মিথ্যা
false
শূন্য
null
অনির্ধারিত
undefined
বাংলা
JavaScript
অনুষ্ঠান
function
প্রেরণ/ফেরত
return
অ্যাসিঙ্ক
async
অপেক্ষা
await
বাংলা
JavaScript
যদি
if
নাহলে
else
নাহলে যদি
else if
জন্য
for
যখন
while
থামাও
break
চালিয়ে_যাও
continue
সুইচ
switch
কেস
case
সাধারণ
default
বাংলা
JavaScript
ক্লাস
class
নির্মাতা
constructor
এই
this
নতুন
new
বিস্তৃত
extends
সুপার
super
বাংলা
JavaScript
লিখো
console.log
ত্রুটি_লিখো
console.error
লিখো_সতর্কতা
console.warn
পরিষ্কার_করো
console.clear
বাংলা
JavaScript
দস্তাবেজ
document
সিলেক্টর_দ্বারা_পাও
querySelector
আইডি_দ্বারা_পাও
getElementById
ইভেন্ট_যোগ_করো
addEventListener
টেক্সট_পরিবর্তন_করো
innerText
বিষয়বস্তু_পরিবর্তন_করো
innerHTML
শৈলী
style
বাংলা
JavaScript
চেষ্টা
try
ধরো
catch
অবশেষে
finally
ছুড়ে_দাও
throw
বাংলা
JavaScript
ঠেলো
push
তোলা
pop
প্রতিটিতে
forEach
ম্যাপ
map
ফিল্টার
filter
খুঁজে
find
দৈর্ঘ্য
length
জোড়া
join
সাজাও
sort
প্রতিদিন অনুশীলন করুন - ছোট ছোট প্রোগ্রাম লিখুন
ভুল করতে ভয় পাবেন না - ভুল থেকেই শেখা হয়
ডকুমেন্টেশন পড়ুন - নতুন কিছু জানতে
প্রজেক্ট করুন - বাস্তব সমস্যা সমাধান করুন
কমিউনিটিতে যুক্ত হন - অন্যদের সাথে শেয়ার করুন
শুভ কোডিং! 🇧🇩 বাংলায় কোড লিখুন!