JavaScript cheat sheet that covers basic to advanced topics, from beginner to advanced.
-
জাভাস্ক্রিপ্ট হল একটি ওয়েব প্রোগ্রামিং ভাষা যা ক্লায়েন্ট-সাইড স্ক্রিপ্টিং সম্পর্কিত। এটি একটি হাই লেভেল, একটি জেনেরিক প্রোগ্রামিং ভাষা এবং এটি ওয়েব ডিজাইন এবং ওয়েব ডেভেলপমেন্ট এর জন্য ব্যবহৃত হয়।
-
জাভাস্ক্রিপ্ট ওয়েব ব্রাউজারে চলে এবং এটি ক্লায়েন্ট সাইড স্ক্রিপ্টিং সম্পর্কিত, তার মানে হল এটি ওয়েব ব্রাউজারের মধ্যেই রান হয়। জাভাস্ক্রিপ্ট দ্বারা ওয়েব পৃষ্ঠাগুলির কাজ করানো হয়, যা ইউজার ইন্টারফেস বা ওয়েব অ্যাপ্লিকেশনের সাথে ইন্টারেকশন প্রদান করে। জাভাস্ক্রিপ্ট দ্বারা একটি ওয়েব পৃষ্ঠায় ডাইনামিক ফিচার যুক্ত করা যায়, যেমন ফরম ভেরিফিকেশন, ডাইনামিক কন্টেন্ট লোডিং এবং অ্যানিমেশন ইত্যাদি।
-
জাভাস্ক্রিপ্ট বর্তমানে ওয়েব ডেভেলপমেন্টের জন্য একটি গুরুত্বপূর্ণ প্রোগ্রামিং ভাষা হিসাবে মনে করা হয়। এটি ওয়েব ডেভেলপারদের জন্য আনতে সহজ এবং গভীর কন্ট্রোল প্রদান করে এবং এটি ওয়েব ব্রাউজারের মাধ্যমে ডাইনামিক ওয়েব পেজস তৈরি করার সুবিধা প্রদান করে।
-
জাভাস্ক্রিপ্টের বিভিন্ন ফ্রেমওয়ার্ক ও লাইব্রেরি আছে যা ওয়েব ডেভেলপমেন্টে ব্যবহৃত হয়। ফ্রেমওয়ার্কগুলি ওয়েব ডেভেলপমেন্ট প্রস্তুতি করতে সাহায্য করে এবং লাইব্রেরিগুলি উন্নয়নকে সহজ করে। প্রস্তুতিতে ব্যবহৃত ফ্রেমওয়ার্কের মধ্যে জাভাস্ক্রিপ্ট এবং একটি কিছু লাইব্রেরির উপর নির্ভরশীলতা রয়েছে।
-
জাভাস্ক্রিপ্টের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হল এটি একটি স্ক্রিপ্টিং ভাষা হিসাবে পরিচিত। এর মাধ্যমে প্রোগ্রামাররা ওয়েব পেজে এক্সট্রা ফিচার যুক্ত করতে পারে যা স্ট্যাটিক ওয়েব পেজের জন্য সম্ভব না ছিল।
-
জাভাস্ক্রিপ্ট ব্যবহার করে ওয়েব পেজে ক্লায়েন্ট-সাইড স্ক্রিপ্টিং করা হয়। ক্লায়েন্ট-সাইড স্ক্রিপ্টিং মানে হল যে সমস্ত প্রসেসিং ওয়েব ব্রাউজারে একত্রিত করা হয়। এর মাধ্যমে ওয়েব পেজ ইন্টারঅ্যাকটিভ হয় এবং প্রসেসিং করা হয় প্রত্যেকটি ইভেন্টের উপর ভিত্তি করে।
-
জাভাস্ক্রিপ্টের একটি আরও গুরুত্বপূর্ণ বৈশিষ্ট্য হল এর পারফরমেন্স। এর মাধ্যমে ব্যবহারকারীরা হাই এন্ড ওয়েব অ্যাপ্লিকেশন এবং এন্টারপ্রাইজ সফটওয়্যার তৈরি করতে পারে।
-
জাভাস্ক্রিপ্টের নতুন সংস্করণ প্রতিষ্ঠানের জন্য একটি জরুরী প্রয়োজন। এই সংস্করণে নতুন ফিচার ও পারফরমেন্স ইমপ্রুভমেন্ট যোগ করা হয়েছে।
-
জাভাস্ক্রিপ্টের নতুন সংস্করণে অ্যাসিঙ্ক/অ্যাওয়েট ফাংশনালিটি সংযোজিত হয়েছে। এর মাধ্যমে ব্যবহারকারীরা অ্যাসিঙ্কলি কোড লিখতে পারেন যা দৈনন্দিন জীবনে দীর্ঘ কাজের প্রয়োজন হয়। এর ফলে প্রোগ্রামিং এর পারফরমেন্স এবং একটি সহজ ও ব্যবহারযোগ্য স্ক্রিপ্ট লেখার সুযোগ বাড়ানো হয়েছে।
-
জাভাস্ক্রিপ্টের নতুন সংস্করণে প্রমিস ও জেনেরেটর পাওয়া যায়। এই ফিচারগুলি প্রোগ্রামারদের কাজকর্তব্যগুলি একত্রিত করতে সাহায্য করে। প্রমিস একটি সহজ উপায় যা ব্যবহারকারীকে আসঙ্গত ইভেন্ট হ্যান্ডলিং থেকে মুক্ত রাখতে দেয়। এটি ব্যবহারকারীকে একটি নির্দিষ্ট সময় পর্যন্ত অপেক্ষা করতে বলে দেয়। জেনেরেটর একটি সহজ উপায় যা প্রোগ্রামারদের সমস্যাগুলি সমাধান করতে সাহায্য করে।
-
জাভাস্ক্রিপ্টের নতুন সংস্করণে ক্লাস ও ইম্পোর্ট-এক্সপোর্ট ফিচারগুলি সম্পন্ন করা হয়েছে। এটি প্রোগ্রামারদের জন্য সহজ ও সুবিধাজনক করে।
-
জাভাস্ক্রিপ্টের নতুন সংস্করণে মডিউল সিস্টেম একটি নতুন ফিচার। এটি প্রোগ্রামারদের কাজকর্তব্যগুলি আলাদা করতে সাহায্য করে এবং বিভিন্ন স্ক্রিপ্ট ফাইলে সংগ্রহযোগ্য করে তোলে।
-
জাভাস্ক্রিপ্টের নতুন সংস্করণে আরও কিছু নতুন ফিচার এবং পারফরমেন্স ইমপ্রুভমেন্ট সংযোজিত করা হয়েছে। প্রোগ্রামারদের এই সংস্করণটি ব্যবহার করে অনেক সমস্যার সমাধান করা সম্ভব, ওয়েবপ্যাক, গ্রান্ট, রিয়্যাক্ট এবং অন্যান্য ফ্রেমওয়ার্কে সহজে ব্যবহার করা যায়।
-
জাভাস্ক্রিপ্ট একটি সম্পূর্ণ অবজেক্ট-অরিএন্টেড প্রোগ্রামিং ভাষা। এর অর্থ হল এটি সকল উপাদান অবজেক্ট হিসাবে ব্যবহার করে। জাভাস্ক্রিপ্টে ফাংশনস হল প্রাথমিক উপাদান এবং ক্লাস হল অন্যতম প্রাথমিক উপাদান। এছাড়া অনেক অজানা উপাদান জাভাস্ক্রিপ্টে রয়েছে যা ব্যবহারকারীর সুবিধার্থে সাধারণত নির্দিষ্ট হয়না।
-
জাভাস্ক্রিপ্ট বিশেষত ওয়েব উন্নয়নের জন্য তৈরি করা হয়েছে। এর প্রথম জনক ব্রেন্ডন আইক সম্প্রতি একটি লেখা প্রকাশ করেন যেখানে তিনি বলেন, “জাভাস্ক্রিপ্ট নির্দিষ্টভাবে ওয়েব জন্য তৈরি করা হয়েছে।” জাভাস্ক্রিপ্ট দ্বারা বিভিন্ন ওয়েব কাজের সুবিধাবস্তুগুলি যেমন আসিনক, প্রমিস, আসিনক/অওয়েট এবং অন্যান্য ফাংশন এবং উপাদানের সাথে জুড়ে কাজ করা যায়।
-
জাভাস্ক্রিপ্ট একটি ক্রসপ্ল্যাটফর্ম ল্যাঙ্গুয়েজ যা এখন ওয়েব এবং সার্ভার উন্নয়নের জন্য ব্যবহার করা হচ্ছে। জাভাস্ক্রিপ্টের স্বচ্ছতা এবং সহজবোধ্যতা কারণে, এটি একটি পপুলার প্রোগ্রামিং ভাষা হিসাবে মুক্তিপ্রাপ্ত হয়েছে।
-
জাভাস্ক্রিপ্টের নতুন সংস্করণ প্রোগ্রামারদের কাজকর্তব্য সহজ করে এবং জেনেরেটর এবং প্রমিস এবং অন্যান্য ফিচার ব্যবহারকারীদের সুবিধা দেয়। এছাড়াও, এটি ডাটা বিশ্লেষণ এবং নতুন সাইন্টিফিক অ্যাপ্লিকেশন এবং এআই এর উন্নয়নে একটি প্রয়োজনীয় ভাষা।
-
জাভাস্ক্রিপ্টে আরও একটি গুরুত্বপূর্ণ ফিচার হল "হোস্টিং"। এটি একটি অজানা ব্যবহারকারী কার্যক্রম যা জাভাস্ক্রিপ্ট ইন্টারপ্রেটার দ্বারা স্বয়ংক্রিয়ভাবে ব্যবহৃত হয়। হোস্টিং এর ফলে জাভাস্ক্রিপ্ট প্রোগ্রামিং ভাষা খুব সহজে লেখা যায়।
-
জাভাস্ক্রিপ্টের আরও একটি বিশেষত্ব হল "ক্লজার"। ক্লজার হল একটি ফাংশন যা একটি নিজস্ব স্কোপ বিশিষ্ট করে। ক্লজার দ্বারা একটি ফাংশনের লেকেজিং প্রবলেম সমাধান করা যায়।
জাভাস্ক্রিপ্টে অপারেটর হল এমন একটি ক্লাস যা কোন অপারেশন চালানোর জন্য ব্যবহৃত হয়। একটি অপারেটর দুটি অপারেন্ড নিতে পারে এবং অপারেশন চালানোর সময় অপারেটরটি এদের মধ্যে কোন কাজ করে।
জাভাস্ক্রিপ্টে একটি অপারেটর একটি বা একাধিক অপারেন্ড নিতে পারে। এছাড়াও জাভাস্ক্রিপ্টে অপারেটর বিভিন্ন ক্যাটাগরিতে বিভক্ত হয়, যেমন অ্যারিথমেটিক, লজিকাল, বিটউইজ, রিলেশনাল, কন্ট্রোল এবং অনেক অন্যান্য ক্যাটাগরি রয়েছে।
- অ্যারিথমেটিক অপারেটর: +, -, \*, /, %
- লজিকাল অপারেটর: &&, ||, !
- রিলেশনাল অপারেটর: ==, ===, !=, !==, >, <, >=, <=
- কন্ট্রোল অপারেটর: if, switch, for, while, do-while, break, continue
- এক্সেস অপারেটর (., [])
অপারেটরগুলি ব্যবহার করে কন্ডিশন চেক করা, মান এবং মানের সমন্বয় করা, অ্যারে ও অবজেক্ট এর সম্পর্কিত কাজ করা, লুপ কন্ট্রোল করা এবং অন্যান্য কাজ করা যায়।
জাভাস্ক্রিপ্টে স্প্রেড অপারেটর হল একটি উপায় যা ব্যবহার করে একটি অ্যারে বা অবজেক্টের উপাদানগুলি আরও সহজে অ্যাক্সেস করা যায়। স্প্রেড অপারেটর দ্বারা আমরা অ্যারে বা অবজেক্টের উপাদানগুলি একটি নতুন অ্যারে বা অবজেক্টের ভিতরে রেখে দিতে পারি। স্প্রেড অপারেটর ব্যবহার করে একটি অ্যারের সবগুলি উপাদানও অন্য অ্যারের ভিতরে রেখে দিতে পারি।
স্প্রেড অপারেটর একটি উন্নয়নশীল জাভাস্ক্রিপ্ট ফিচার এবং এটি জাভাস্ক্রিপ্টে একাধিক জায়গায় ব্যবহৃত হয়ে থাকে।
কিছু স্প্রেড অপারেটর এর উদাহরণ হলঃ
অ্যারের এলিমেন্ট কপি করা:
const arr1 = [1, 2, 3];
const arr2 = [...arr1]; // এখানে স্প্রেড অপারেটর ব্যবহৃত হয়েছে
console.log(arr2); // [1, 2, 3]
অ্যারে মার্জ করা:
const arr1 = [1, 2];
const arr2 = [3, 4];
const arr3 = [...arr1, ...arr2]; // এখানে স্প্রেড অপারেটর ব্যবহৃত হয়েছে
console.log(arr3); // [1, 2, 3, 4]
অবজেক্ট কপি করা:
const obj1 = { x: 1, y: 2 };
const obj2 = { ...obj1 }; // এখানে স্প্রেড অপারেটর ব্যবহৃত হয়েছে
console.log(obj2); // { x: 1, y: 2 }
Rest Operator জাভাস্ক্রিপ্টে (...)
চিহ্ন দ্বারা প্রকাশিত হয়। এটি বিভিন্ন ধরণের ডাটার সংগ্রহ করতে ব্যবহৃত হয়। এটি একটি অপারেটর যা পুর্বে যা ডাটা ছিল সেগুলোকে একটি নির্দিষ্ট ভেরিয়েবলে সংগ্রহ করে তোলে। একটি ফাংশনের প্যারামিটার হিসাবে ব্যবহৃত হলে সে ফাংশনের কাজ করার জন্য প্যারামিটার গুলো একটি অ্যারে আকারে সংগ্রহ করতে সক্ষম হয়।
উদাহরণ হিসাবে, ধরা যাক আমাদের কাছে একটি ফাংশন আছে যা দুটি সংখ্যার যোগফল প্রদর্শন করে। এই ফাংশনে যখন দুটি সংখ্যা পাস করা হবে তখন Rest Operator ব্যবহার করে আমরা এই দুটি সংখ্যা কে একটি অ্যারেতে সংগ্রহ করতে পারি।
function sum(...numbers) {
let total = 0;
for (let number of numbers) {
total += number;
}
return total;
}
console.log(sum(1, 2, 3)); // 6
console.log(sum(4, 5, 6, 7)); // 22
- ফাংশন এক্সপ্রেশন হল জাভাস্ক্রিপ্টে একটি ফাংশন সম্পর্কিত ডিফিনেশন নির্ধারণের একটি পদ্ধতি যা একটি ভেরিয়েবল হিসাবে ফাংশন তৈরি করে এবং তারপর তা অ্যাসাইন করা হয়। ফাংশন এক্সপ্রেশন এর সিনট্যাক্স হল:
const functionName = function (parameters) {
// function body
};
-
এখানে, functionName হল ভেরিয়েবল নাম যার মাধ্যমে ফাংশনটি অ্যাসাইন করা হয়, parameters হল ফাংশনের ইনপুট (যা ফাঁকা হতে পারে), এবং function body হল সেট অফ স্টেটমেন্টস যা ফাংশনটি কল করা হলে অভিষ্ট হবে।
-
ফাংশন এক্সপ্রেশন নামকরণযুক্ত বা বেপরবাহিত হতে পারে। নামকরণযুক্ত ফাংশন এক্সপ্রেশনে ফাংশনের নাম অ্যাসাইন করা হয় যা ডিবাগিং এবং ফাংশনটি রিকার্সিভভাবে কল করার জন্য উপযুক্ত হতে পারে। নামহীন ফাংশন এক্সপ্রেশন নাম নেই এবং সচরাচর কলব্যাক ফাংশন হিসাবে বা সামদামিকভাবে ব্যব
- রেস্ট প্যারামিটার হল জাভাস্ক্রিপ্টে একটি ফাংশনের প্যারামিটার লিস্টের শেষে আছে এমন একটি প্যারামিটার, যা এক বা একাধিক সংখ্যক অ্যার্গুমেন্টকে ক্যাচ করতে ব্যবহৃত হয়। রেস্ট প্যারামিটার এর সিনট্যাক্স হল:
function functionName(param1, param2, ...restParams) {
// function body
}
-
এখানে, param1 এবং param2 হল সাধারণ প্যারামিটারগুলি এবং restParams হল রেস্ট প্যারামিটার। এটি একটি অ্যারে হিসাবে প্রদর্শিত হবে এবং একটি ফাংশন থেকে আসলে সংখ্যা অসীম হতে পারে।
-
রেস্ট প্যারামিটার সাধারণত একটি ফাংশনে নির্দিষ্ট সংখ্যক প্যারামিটার প্রদান করতে ব্যবহৃত হয় না, বরং প্যারামিটারের সংখ্যা অজানা হতে পারে। এটি একটি জেনেরিক ফাংশন লিখার জন্য উপযুক্ত হতে পারে যেখানে অ্যার্গুমেন্টের সংখ্যা বা টাইপ আগে থেকেই জানা থাকবে না।
- ডিফল্ট প্যারামিটার হল জাভাস্ক্রিপ্ট ফাংশনের প্যারামিটার লিস্টে যে কোন প্যারামিটার মান প্রদান করা না হলে সেই ফাংশনের অপরিবর্তিত মূল মান।
উদাহরণঃ
function greet(name = "Kalu") {
console.log(`হ্যালো, ${name}! তুমি কেমন আছো?`);
}
greet(); // হ্যালো, Kalu! তুমি কেমন আছো?
greet("Boltu"); // হ্যালো, Boltu! তুমি কেমন আছো?
- উপরের উদাহরণে greet() ফাংশনে কোন প্যারামিটার দেওয়া না হলে name প্যারামিটারের মান "Kalu" হবে এবং সেই মান লেখা হবে কনসোলে। অন্য দিকে, greet("Boltu") ফাংশনে প্যারামিটার দেওয়া হলে সেই মান লেখা হবে কনসোলে।