জাভাস্ক্রিপ্ট স্কোপ
স্কোপ হলো আপনি এক্সেস করতে পারেন এমন ভ্যারিয়েবলের সেট।
জাভাস্ক্রিপ্ট স্কোপ
জাভাস্ক্রিপ্টে অবজেক্ট এবং ফাংশনও ভ্যারিয়েবল।
আপনি এক্সেস করতে পারেন এমন ভ্যারিয়েবল, অবজেক্ট এবং ফাংশনের সেটকে জাভাস্ক্রিপ্টে স্কোপ বলা হয়।
জাভাস্ক্রিপ্টের ফাংশন স্কোপ রয়েছেঃ ফাংশনের মধ্যে স্কোপ পরিবর্তিত হয়।
জাভাস্ক্রিপ্ট লোকাল ভ্যারিয়েবল
জাভাস্ক্রিপ্ট ফাংশনের মধ্যে যে ভ্যারিয়েবল বা চলক ডিক্লেয়ার করা হয় তাকে লোকাল ভ্যারিয়েবল বলে।
লোকাল ভ্যারিয়েবলের লোকাল স্কোপ থাকেঃ যা শুধুমাত্র ফাংশনের মধ্যেই এক্সেস করা সম্ভব।
উদাহরণ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
<h4>লোকাল ভেরিয়েবল animal ফাংশনের বাইরে এক্সেস করা যাবে না। </h4>
<p id="test"></p>
<script>
function myFunc() {
var animal = "Tiger";
}
myFunc();
document.getElementById("test").innerHTML = "প্রানীটি হছে " + animal;
</script>
</body>
</html>
ফলাফল
যেহেতু লোকাল ভ্যারিয়েবল শুধুমাত্র একটি ফাংশনের ভিতরে এক্সেস করা যায়, তাই একই নামের ভ্যারিয়েবল বিভিন্ন ফাংশনের ভিতরে ব্যবহার করা যেতে পারে।
যখন ফাংশনকে কল করা হয় তখন লোকাল ভ্যারিয়েবল তৈরি হয় এবং ফাংশনের কাজ সম্পন্ন হলে লোকাল ভ্যারিয়েবলগুলো ডিলেট হয়ে যায়।
জাভাস্ক্রিপ্ট গ্লোবাল ভ্যারিয়েবল
জাভাস্ক্রিপ্ট ফাংশনের বাইরে যে ভ্যারিয়েবলকে ডিক্লেয়ার করা হয় তাকে গ্লোবাল ভ্যারিয়েবল বলে।
গ্লোবাল ভ্যারিয়েবলের গ্লোবাল স্কোপ থাকেঃ ওয়েব পেজের সকল স্ক্রিপ্ট এবং ফাংশন একে এক্সেস করতে পারে।
উদাহরণ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
<h4> গ্লোবাল ভেরিয়েবল যে কোন স্ক্রিপ্ট বা ফাংশনেে এক্সেস করা যাবে।</h4>
<p id="test"></p>
<script>
var animal = "Tiger";
function myFunc() {
document.getElementById("test").innerHTML = "প্রানীটি হছে " + animal;
}
myFunc();
</script>
</body>
</html>
ফলাফল
স্বয়ংক্রিয়ভাবে গ্লোবাল
যদি আপনি কোন ভ্যারিয়েবলকে ডিক্লেয়ার না করে ভ্যালু এসাইন করেন তাহলে ভ্যারিয়েবলটি সয়ংক্রিয়ভাবে একটি গ্লোবাল ভ্যারিয়েবলে পরিণত হবে।
উদাহরণ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
<h4>ডিক্লেয়ার করা ছাড়াই যদি আপনি ভেরিয়েবলে একটি ভ্যালু এসাইন করেন,এটা স্বয়ংক্রিয়ভাবে GLOBAL-এ হয়ে যাবেঃ </h4>
<p id="test"></p>
<script>
function myFunc() {
animal = "Tiger";
}
myFunc();
document.getElementById("test").innerHTML = "প্রানীটি হছে " + animal;
</script>
</body>
</html>
ফলাফল
প্রয়োজন ছাড়া গ্লোবাল ভ্যারিয়েবল তৈরি না করাই উত্তম।
"Strict Mode" এ স্বয়ংক্রিয়ভাবে গ্লোবাল ভ্যারিয়েবলকে এড়িয়ে চলা হয়।
এইচটিএমএলে গ্লোবাল ভ্যারিয়েবল
জাভাস্ক্রিপ্টে গ্লোবাল স্কোপ সম্পূর্ণ জাভাস্ক্রিপ্টকে বুঝায়।
এইচটিএমএলে উইন্ডো অবজেক্ট হচ্ছে গ্লোবাল স্কোপ। সকল গ্লোবাল ভ্যারিয়েবল উইন্ডো অবজেক্টে অন্তর্গত থাকে।
উদাহরণ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
<h4>এইচটিএমএলে, সকল global ভেরিয়েবল window ভেরিয়েবলে পরিনত হবে।</h4>
<p id="test"></p>
<script>
var animal = "Tiger";
document.getElementById("test").innerHTML = "প্রানীটি হছে " + window.animal;
</script>
</body>
</html>
ফলাফল
আপনি জানেন কী?
গ্লোবাল ভ্যারিয়েবল(বা ফাংশন) উইন্ডো ভ্যারিয়েবলকে(বা ফাংশন) মুছে ফেলতে পারে।
উইন্ডো অবজেক্টসহ যেকোন ফাংশন, আপনার গ্লোবাল ভ্যারিয়েবল এবং ফাংশনকে মুছে ফেলতে পারে।
জাভাস্ক্রিপ্ট ভ্যারিয়েবলের জীবনকাল
জাভাস্ক্রিপ্ট ভ্যারিয়েবল ডিক্লেয়ার করা হলে এর জীবনকাল শুরু হয়।
ফাংশনের কার্য সম্পন্ন হলে লোকাল ভ্যারিয়েবল মুছে যায়।
ওয়েব পেজ বন্ধ করলে গ্লোবাল ভ্যারিয়েবল মুছে যায়।
ফাংশন আর্গুমেন্ট
ফাংশন আর্গুমেন্ট(প্যারামিটার) ফাংশনের ভিতরে লোকাল ভ্যারিয়েবল হিসেবে কাজ করে।