জাভাস্ক্রিপ্টে ফাংশনের বাম দিকের এক্সপ্রেশন
নিম্নলিখিত কোডটি বিবেচনা করা যাক:
+function func() {
console.log('!');
}
আপনি ইতিমধ্যেই জানেন, এই ফাংশনটি একটি ফাংশনাল এক্সপ্রেশন, যদিও এর একটি নাম নির্ধারণ করা হয়েছে (আমরা ইতিমধ্যেই জেনেছি যে নামের উপস্থিতি কোনো মানদণ্ডই নয়)। এই প্লাসটি সরিয়ে দিন - এবং আমরা পাই ফাংশন ডিক্লারেশন:
function func() {
console.log('!');
}
আসুন ফাংশনের আগের লাইনে + রাখি -
এটি আবার ফাংশন এক্সপ্রেশন হয়ে যাবে:
+
function func() {
console.log('!');
}
এবং এখন প্লাসের পরে 1 নম্বর রাখি
এবং একটি সেমিকোলন - আমাদের ফাংশনটি ফাংশন
ডিক্লারেশন হয়ে যাবে:
+1;
function func() {
console.log('!');
}
কেন এমন হয়: কারণ প্রথম লাইনে একটি সম্পূর্ণ কমান্ড লেখা আছে, সেমিকোলন দিয়ে বন্ধ। সেইজন্য এই কমান্ডটি আমাদের ফাংশনকে কোনোভাবেই প্রভাবিত করে না।
আসলে সেমিকোলন সরানো যেতে পারে, কারণ জাভাস্ক্রিপ্টে এটি বাধ্যতামূলক নয় - ফাংশনটি যাইহোক ফাংশন ডিক্লারেশনই থাকবে:
+1
function func() {
console.log('!');
}
কিন্তু 1 এর পরে আরও একটি
প্লাস যোগ করলে, ফাংশনটি ফাংশন এক্সপ্রেশন হয়ে যাবে:
+1+
function func() {
console.log('!');
}
কেন এমন হয়: কারণ প্রথম লাইনে একটি অসম্পূর্ণ এক্সপ্রেশন রয়েছে - একটি প্লাস আছে এবং তার পরে কিছুই নেই। তাই জাভাস্ক্রিপ্ট ইন্টারপ্রিটার ধরে নেয় যে এই প্লাসটি নিচের লাইনের সাথে সম্পর্কিত, অর্থাৎ আমাদের ফাংশনের সাথে।
যদি প্রথম লাইনে একটি সম্পূর্ণ এক্সপ্রেশন থাকে, তাহলে জাভাস্ক্রিপ্ট স্বয়ংক্রিয়ভাবে এটির জন্য একটি সেমিকোলন বসিয়ে দেয় এবং এই এক্সপ্রেশনটি আমাদের ফাংশনকে কোনোভাবেই প্রভাবিত করে না।
নির্ধারণ করুন, উপস্থাপিত ফাংশনটি ফাংশন ডিক্লারেশন নাকি ফাংশন এক্সপ্রেশন:
-
function func() {
console.log('!');
}
নির্ধারণ করুন, উপস্থাপিত ফাংশনটি ফাংশন ডিক্লারেশন নাকি ফাংশন এক্সপ্রেশন:
-1;
function func() {
console.log('!');
}
নির্ধারণ করুন, উপস্থাপিত ফাংশনটি ফাংশন ডিক্লারেশন নাকি ফাংশন এক্সপ্রেশন:
-1
function func() {
console.log('!');
}
নির্ধারণ করুন, উপস্থাপিত ফাংশনটি ফাংশন ডিক্লারেশন নাকি ফাংশন এক্সপ্রেশন:
1
function func() {
console.log('!');
}
নির্ধারণ করুন, উপস্থাপিত ফাংশনটি ফাংশন ডিক্লারেশন নাকি ফাংশন এক্সপ্রেশন:
-1-
function func() {
console.log('!');
}