জাভাস্ক্রিপ্ট
1. কলব্যাক ফাংশন (Callback Function):
কলব্যাক ফাংশন হল এমন একটি ফাংশন যা অন্য একটি ফাংশন কার্যকর হওয়ার পর কার্যকর হয়। এটিকে “কল আফটার ফাংশন” ও বলা হয়, কারণ এটি অন্য একটি ফাংশনের আর্গুমেন্ট হিসেবে পাঠানো হয় এবং পরে কার্যকর করা হয়।
2. জাভাস্ক্রিপ্টের ক্লোজার (Closure in JavaScript):
ক্লোজার হল একটি ফাংশন। এটি জাভাস্ক্রিপ্টের একটি বৈশিষ্ট্য। যখন একটি ফাংশন তৈরি হয়, তখন তার সাথে একটি ক্লোজারও তৈরি হয়। এটি ইননার ফাংশন থেকে আউটার ফাংশনের স্কোপে অ্যাক্সেস পাওয়ার সুযোগ দেয়। এটি জাভাস্ক্রিপ্টে ভেরিয়েবল স্কোপ পরিচালনা করার একটি পদ্ধতি। ক্লোজার ব্যবহারের জন্য, একটি ফাংশনের ভেতরে আরেকটি ফাংশন সংজ্ঞায়িত করতে হয় এবং এটি এক্সপোজ করতে হয়।
3. “this” কীওয়ার্ড:
“this” কীওয়ার্ড জাভাস্ক্রিপ্টে একটি মেথড নির্দেশ করে। এটি একটি অবজেক্টের মেথডের মধ্যে থেকে সেই অবজেক্টের প্রোপার্টিতে অ্যাক্সেস পাওয়ার জন্য ব্যবহৃত হয়। এটি সাধারণত সেই অবজেক্টকে বোঝায় যার মধ্যে এটি ডাকা হয়েছে। তবে, একটি সাধারণ ফাংশনের ভেতরে এটি গ্লোবাল অবজেক্টকে নির্দেশ করে। সংক্ষেপে, “this” কীওয়ার্ড সেই অবজেক্টের প্রতি নির্দেশ করে, যেখান থেকে এটি কল করা হয়েছে।
4. জাভাস্ক্রিপ্টে স্কোপ (Scope in JavaScript):
স্কোপ হল জাভাস্ক্রিপ্টে ভেরিয়েবল, ফাংশন এবং অবজেক্টগুলোর অ্যাক্সেসযোগ্যতার পরিধি। জাভাস্ক্রিপ্টে তিন ধরনের স্কোপ রয়েছে:
1. গ্লোবাল স্কোপ (Global Scope)
** 2. ফাংশন স্কোপ (Function Scope)**
** 3. ব্লক স্কোপ (Block Scope)**
গ্লোবাল স্কোপ: গ্লোবাল স্কোপ হল সম্পূর্ণ জাভাস্ক্রিপ্ট এনভায়রনমেন্ট। যখন একটি ভেরিয়েবল ফাংশনের বাইরে ডিক্লেয়ার করা হয়, তখন সেটি গ্লোবাল স্কোপের মধ্যে পড়ে এবং যেকোনো স্থান থেকে অ্যাক্সেস করা যায়।
ফাংশন স্কোপ: যখন একটি ফাংশন তৈরি হয়, তখন তার সাথে একটি নতুন স্কোপও তৈরি হয়। ফাংশনের ভিতরে ডিফাইন করা ভেরিয়েবল শুধুমাত্র সেই ফাংশনের মধ্যেই অ্যাক্সেস করা যায়।
function newFunction() {
var/let/const friendName = “Sumaiya”;
}
// friendName এখানে অ্যাক্সেসযোগ্য নয়।
ব্লক স্কোপ: ES6 আসার আগে জাভাস্ক্রিপ্টে শুধুমাত্র গ্লোবাল স্কোপ ও ফাংশন স্কোপ ছিল। ES6-এ নতুনভাবে “let” ও “const” কীওয়ার্ড যুক্ত হওয়ার ফলে ব্লক স্কোপ চালু হয়। যখন ভেরিয়েবল একটি ব্লকের ({}) ভিতরে ডিক্লেয়ার করা হয়, তখন সেটি শুধু সেই ব্লকের ভিতরেই অ্যাক্সেসযোগ্য থাকে।
{
let x = 5;
// x এখানে ব্যবহার করা যাবে।
}
// x এখানে ব্যবহার করা যাবে না।
5. প্রোটোটাইপিক্যাল ইনহেরিটেন্স (Prototypical Inheritance):
প্রোটোটাইপিক্যাল ইনহেরিটেন্স হল জাভাস্ক্রিপ্টের একটি বৈশিষ্ট্য। এটি অবজেক্টগুলোর মধ্যে মেথড ও প্রোপার্টি শেয়ার করার সুবিধা প্রদান করে। এটি একটি অবজেক্ট থেকে আরেকটি অবজেক্টের প্রোপার্টি বা মেথড ব্যবহারের অনুমতি দেয়।
আমরা বলতে পারি, জাভাস্ক্রিপ্টে অবজেক্ট অন্য অবজেক্ট থেকে ইনহেরিট করে। প্রতিটি অবজেক্টের একটি “প্রোটোটাইপ” থাকে, যা অন্য অবজেক্টের সাথে সংযুক্ত থাকে। প্রোটোটাইপের মধ্যে সংরক্ষিত সমস্ত মেথড ও অ্যাট্রিবিউট অবজেক্ট দ্বারা ব্যবহার করা যায়। এটি প্রোটোটাইপিক্যাল ইনহেরিটেন্স নামে পরিচিত।
6. এনক্যাপসুলেশন (Encapsulation):
এনক্যাপসুলেশন হল অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের একটি ধারণা। এটি ডেটা ও ফাংশনকে একত্রিত করে একটিমাত্র কম্পোনেন্ট হিসেবে পরিচালনা করে। এর মানে হল, এটি ডেটা ও ফাংশনকে একত্রে বেঁধে রাখে এবং ডেটা ম্যানিপুলেট করতে সাহায্য করে।