جاوا اسکریپت به زبان ساده: جلسه هفتم - متغیرهای شرطی (بولین)
سومین نوع دادهها، بولینها هستند. بولینها متغیرهایی هستند که دو حالت بیشتر ندارند؛ یا درست (true) هستند یا غلط (false). از بولینها برای چک کردن شرایط و تغییراتی که دو حالت بیشتر ندارند استفاده میشود.
بولینها بسیار کاربردی هستند؛ مثلا فرض کنید میخواهید بگویید اگر فلانی مشتری ویژه بود این تخفیف را اضافه کن و اگر نبود این کار را نکن. این یک شرایط دومتغیره است که یا فلانی مشتری ویژه است یا نیست؛ یعنی متغیر مشتری ویژه برای وی یا true است یا false. یا برای چک کردن هوای بارانی، وقتی باران نیاید فرض میکنیم false و اگر باران ببارد فرض میکنیم true.
خوبی بولین این است که میتوانید مقدار آنها را به دلخواه تغییر دهید. یعنی یک مقدار پیشفرض مثلا false برای آنها تعریف کنید و بعد مثلا با یک دکمه مقدار آن را به true تغییر دهید.
var specialCustomer = true;
var haveOffer = false;
بولینها همانند دیگر متغیرهای جاوا اسکریپت قابلیت تغییر دارند. مثلا فرض کنید یک متغیر بولین داریم که در ابتدای کد، مساوی false قرار دادهایم. بعدا در صورت نیاز باید مقدار آن را true کنیم. بدین ترتیب از آنجای کد به بعد، متغیر ما مقدار true خواهد داشت.
مثال:
ابتدای کد//
var booleanVariable = false;
// بعد از چند خط
var booleanVariable = true;
خواهد بود booleanVariable برابر با true از اینجا به بعد مقدار متغیر
یکی از کاربردیترین امکانی که بولینها در اختیار ما قرار میدهند آن است که وضعیت ما را در حالتهای تکراری مشخص میکنند. یک مثال ابتدایی از این موضوع را با هم مرور میکنیم. مثلا فرض کنید ما میخواهیم وقتی برای بار اولی که روی یک متغیر کلیک شد، یک اتفاق بیفتد و در دفعات بعدی اتفاق دیگری رخ دهد. یعنی میخواهیم کلیک اول را از کلیکهای دیگر مجزا کنیم. این موضوع را بهراحتی میتوانیم به کمک بولینها چک کنیم. چگونه؟
ابتدا یک متغیر به نام clicked میسازیم.
var clicked = false;
حالا به کمک دستورات جاوا اسکریپت، ایونت کلیک روی المان دکمه را چک میکنیم. (چون ما هنوز با ایونت کلیک و نحوه قرار دادن ایونت روی المانها آشنا نیستیم، با کمک اتریبیوت HTML مخصوص این کار یعنی onclick این کار را میکنیم.)
برای مثال روی یک دکمه به شکل زیر اتریبیوت آن کلیک تعریف میکنیم:
کلیک کنید
در این اتریبیوت ما باید یک فانکشن به عنوان مقدار به اتریبیوت اضافه کنیم که در اینجا ما فانکشن clickHandler را بدان وصل کردهایم. فانکشنها یک جلسه کاملا اختصاصی دارند ولی برای آشنایی فعلی شما آن را مختصرا توضیح میدهیم. فانکشن یک سری تکه کد است که در صورت نیاز و خواسته ما در کد تکرار میشود. فانکشنها عملکرد مخصوص خودشان را دارند و معمولا دارای نام مشخص هستند(مثلا نام فانکشن ما در اینجا clickHandler است). البته فانکشنهای بدون نام هم وجود دارند که در بخش مخصوص به خودشان آنها را به شما آموزش خواهیم داد.
برای تعریف فانکشنها نیز در کد جاوا اسکریپت، کلمه کلیدی فانکشن و سپس نام فانکشن را به همراه پرانتز در جلوی آن مینویسیم:
در همین مثال ما یک فانکشن به اسم کلیک هندلر داریم. کار این فانکشن این است که چک کند ما کلیک اول هستیم یا خیر.
فایل HTML :
کلیک کنید
فایل JS
// در ابتدای فایل یک متغیر تعریف می کنیم که وضعیت اینکه یوزر اولین کلیک را کرده است یا خیر را مشخص کند. مشخصا در شروع برنامه یوزر هنوز بر روی دکمه کلیک نکرده پس مقدار این متغیر را false در نظر میگیریم.
var firstClick = false;
function clickHandler() {
// بعد از کلیک کاربر بر روی دکمه متوجه می شویم که اولین کلیک صورت گرفته است پس مقدار آن را این بار برابر true قرار میدهیم. همچنین از این به بعد با چک کردن این متغیر میتوانیم متوجه شویم که یوزر چندمین بار است که کلیک کرده است و اعمال متفاوتی را برای وی در نظر بگیریم.
firstClick = true;
alert("user first click happend")
}
مثالهای بسیار دیگری از کاربرد بولینها در جاوا اسکریپت وجود دارند. مثلا شما میتوانید یک متغیر در ابتدای کد تعریف کنید به عنوان userStayLongTime و مقدار آن را مساوی false قرار دهید. سپس با گذشت زمان مشخصی این متغیر را true کنید و بدین ترتیب متوجه شوید که یوزر زمان زیادی را در صفحه شما گذرانده است. سپس هر جا که خواستید میتوانید با چک کردن این متغیر متوجه شوید که آیا یوزر مورد نظر شما زمان کافی در سایت گذرانده یا خیر و بر این اساس عملکرد متفاوتی نمایش دهید! استفادههای خلاقانهتر و جالبتری نیز از این موضوع وجود دارند ولی نیازمند یادگیری بخشهای بیشتری از جاوا اسکریپت هستند! در جلسات آینده و به مرور با تکمیل شدن دانش شما روشهای خلاقانهتری برای استفاده از بولینها خواهیم آموخت.
دیگر انواع متغیرها:
در کنار اینها، دو نوع داده دیگر نیز داریم که احتمالا در حین کد زدن خیلی با آنها مواجه خواهید شد: null و undefined که در واقع هر کدام یک مقدار مشخص دارند. نال به معنای خالی است و وقتی که مقدار متغیر شما خالی باشد، استفاده میشود. undefined به معنای تعریفنشده است و وقتی متغیری مقدار نامشخصی داشته یا تعریف نشده باشد، به ما نمایش داده خواهد شد. مثلا وقتی یک متغیر هنوز تعریف نشده باشد و شما آن را در قالب پنجره alert صدا بزنید با ارور مقدار undefined مواجه خواهید شد. این موضوع را حتما بهعنوان یک تمرین ساده امتحان کنید.
هفتمین جلسه از آموزش جاوا اسکریپت نیز با آموزش متغیرهای بولین به پایان رسید. همانطور که گفتیم، این متغیرها کاربرد بسیار زیادی در دنیای برنامه نویسی دارند؛ ولی برای استفاده کامل از آنها هنوز خیلی چیزها باید یاد بگیرید. پس برای یادگیری عمیق عجله نکنید! هنوز زمان زیادی تا پایان آموزشها باقی است!
نظرات