JavaScript-এর অদ্ভুত ও মজার কিছু ধাঁধা সমাধান করার জন্য প্রস্তুত? এই ব্লগে কিছু চমৎকার "Guess the Output" প্রশ্ন রয়েছে, যা নতুন ও অভিজ্ঞ ডেভেলপারদের জন্য সমানভাবে চ্যালেঞ্জিং হবে! 🔥

চলুন দেখি আপনি কতটা সঠিক উত্তর দিতে পারেন! 🧠

1️⃣ Array Destructuring

const [, , , a] = [10, 20, 30, 40, 50];
console.log(a);

Output:

40

Explanation: এখানে প্রথম তিনটি এলিমেন্ট স্কিপ করা হয়েছে, চতুর্থ এলিমেন্ট a তে অ্যাসাইন হয়েছে। তাই আউটপুট 40।

2️⃣ Object Destructuring

const { name } = { age: 25, name: "John" };
console.log(name);

Output:

"John"

Explanation: এখানে name প্রপার্টিটি অবজেক্ট থেকে ডিসট্রাকচার করা হয়েছে এবং এর মান "John"।

3️⃣ Spread Operator with Arrays

const arr = [1, 2, 3];
const newArr = [...arr, 4, 5];
console.log(newArr);

Output:

[1, 2, 3, 4, 5]

Explanation: স্প্রেড অপারেটর ...arr পুরানো অ্যারেটি কপি করে নতুন অ্যারেতে যোগ করে।

4️⃣ Spread Operator with Objects

const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 };
console.log(obj2);

Output:

{ a: 1, b: 2, c: 3 }

Explanation: এখানে obj1-এর কপি obj2 তে তৈরি করা হয়েছে এবং নতুন c: 3 প্রপার্টি যোগ হয়েছে।

7️⃣ Hoisting

console.log(a);
var a = 5;

Output:

undefined

Explanation: var-এর hoisting হয়, কিন্তু এর মান অ্যাসাইনমেন্টের আগে undefined থাকে।

8️⃣ Let vs Var Scope

if (true) {
  let x = 10;
}
console.log(x);

Output:

ReferenceError: x is not defined

Explanation: let ব্লক-স্কোপড হওয়ায় এটি বাইরে এক্সেসযোগ্য নয়।

9️⃣ setTimeout Inside Loop

for (var i = 0; i < 3; i++) {
  setTimeout(() => console.log(i), 1000);
}

Output:

3
3
3

Explanation: var ফাংশন-স্কোপড, তাই লুপ শেষে i এর মান 3 হয়ে যায় এবং প্রতিটি setTimeout সেই মান এক্সেস করে।

🔟 Undefined vs Null

let a;
console.log(a, typeof a);
console.log(null, typeof null);

Output:

undefined "undefined"
null "object"

Explanation: undefined হল ভ্যারিয়েবলের ডিফল্ট মান, যেখানে null একটি ইন্টেনশনাল নাথিংনেস। জাভাস্ক্রিপ্টে এটি object টাইপ হিসেবে চিহ্নিত হয়।


শেষ কথা 🎯

এই "Guess the Output" প্রশ্নগুলো JavaScript-এর মজার ও চমকপ্রদ দিকগুলোকে ভালোভাবে বুঝতে সাহায্য করবে। আপনি কটি সঠিকভাবে অনুমান করতে পেরেছেন? কমেন্টে জানাতে ভুলবেন না! 🚀

JavaScript শিখতে থাকুন, কোড লিখতে থাকুন! 💙