شاید در نگاه نخست، عناوین، در زبان های برنامه نویسی کمی ترسناک و گیج کننده به نظر برسند، اما همانطور که قبلا گفتیم، در مجموع، شیوه های نگارش هر زبان برنامه نویسی، چیزی نیستند جزء قوانینی برای القای تفکر انسان به سیستم، یعنی آنچه را که ما به آن می اندیشیم و هدفمان از کدنویسی است، با آن قوانین و در بستر مفسر آن زبان، به سیستم می گوییم که چه وظیفه ای دارد و چه خروجی باید بدهد؛ فرض کنید کاربری سنش 12 سال است و ما در سایت خود صفحاتی داریم که نمی خواهیم افراد پائین تر از سن خاصی آن را مشاهده کنند، در حالت کلی، با داشتن اطلاعات کاربران، برنامه ای خواهیم نوشت که به زبان ساده به سیستم بگوید اگر کاربر از 12 سال سنش پائین تر بود، آن صفحه را بارگذاری نکند و در عوض صفحه مخصوص کودکان را نشان دهد؛ همانطور که می دانید سیستم به زبان ما سخن نمی گوید! بلکه ما باید کدهایی در بستری استاندارد تعریف کنیم، در جاوا اسکریپت نیز این بستر همان مرورگر کاربران است، کدهای جاوا اسکریپت توسط مفسری که در مرورگرها وجود دارد تبدیل به خروجی مورد نظر ما می شوند.
عملگرهای مقایسه در جاوا اسکریپت (JavaScript Comparisons):
عملگرهای مقایسه ای، شرایطی را مهیا می کنند که به کمک آنها دو طرف یک رابطه را باهم مقایسه می کنیم، به فرض ما متغیری داریم به نام age که مقدار آن 12 است، حال می خواهیم مقایسه کنیم:
آیا متغیر age مساوی 12 است؟، برای مقایسه برابری دو طرف از علامت == استفاده می کنیم:
age == 12
آیا متغیر age مساوی 13 نیست؟، برای مقایسه برابر نبودن دو طرف از علامت =! استفاده می کنیم:
age != 13
گاهی نیاز داریم که دقیقا مساوی بودن یا نبودن دو طرف رابطه را بررسی کنیم (از هر لحاظ)، بدین منظور از === استفاده می کنیم:
age === 12
بر اساس مقایسه === عبارت بالا درست خواهد بود ولی مقایسه به صورت زیر، نتیجه ی غلط خواهد داشت، چرا که ما 12 را به صورت عددی تعریف کردیم نه به صورت داده رشته ای (متنی):
age === "12"
و به همین ترتیب برای بررسی کوچکتر بودن از علامت >:
age < 12
معنی رابطه بالا: متغیر age کوچکتر از 12
برای بررسی بزرگتر بودن از علامت <:
age > 12
برای مقایسه کوچکتر یا مساوی بودن از علامت =>:
age <= 12
برای مقایسه بزرگتر یا مساوی بودن از علامت =<:
age >= 12
همچنین برای مقایسه چندگانه از علامت های && (و)، || (یا) و ! (نباشد) استفاده می کنیم:
age > 12 && age < 20
عبارت بالا یعنی اگر متغیر age بزرگتر از 12 و در عین حال کوچکتر از 20 باشد.
شرط if و else در جاوا اسکریپت (JavaScript If,Else Statements):
تا اینجا با علائم مقایسه آشنا شدیم، اما این علائم معمولا به خودی خود کار خاصی انجام نمی دهند و به نوعی تنها جمله خبری هستند (سن مساوی 12 است، سن کوچکتر از 13 است و...)، برای اینکه بتوانیم مقایسه کامل تر و همراه با دستور یا فرمان را انجام دهیم، باید از if (اگر) و else (در غیر اینصورت) استفاده کنیم، مثلا بگوییم اگر سن برابر 12 بود، آنوقت فلان کار را انجام بده و اگر نبود، کاری دیگر را انجام بده؛ به مثال های زیر توجه کنید تا با نحوه عملکرد آنها بیشتر آشنا شوید:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>وبگو | دستورات شرطی و مقایسه ای در جاوا اسکریپت</title>
<!-- http://webgoo.ir -->
<style type="text/css">
body{
direction:rtl;
font-family:Tahoma, Geneva, sans-serif;
font-size:12px;
}
</style>
<script type="text/javascript">
//<![CDATA[
var name = گرامی;
var age = 15;
var domain = webgoo.ir;
var otherdomain = yourdomain.com;
if (age > 12 && age < 20){
document.write("کاربر گرامی سن شما بالاتر از 12 سال است!");
}
else {
document.write("کاربر گرامی سن شما پائین تر از 12 سال است!");
}
document.write("<br />");
document.write("<br />");
if (name != ناشناس || domain == webgoo.ir){
document.write(کاربر + name + به سایت + domain + خوش آمدید!);
}
else{
document.write(کاربر + name + به سایت + otherdomain + خوش آمدید!);
}
//]]>
</script>
</head>
<body>
<hr />
متغیرها و مقادیر به کار رفته در این مثال فرضی هستند.
</body>
</html>
پیش نمایشتوضیح:
- در مثال ساده بالا، چند متغیر فرضی تعریف کرده ایم و محاسباتی جهت نمونه انجام داده ایم.
- در بخش دوم کد، ما از تکنیکی ترکیبی برای خروجی گرفتن همزمان متن و متغیر در یک دستور document.write استفاده کرده ایم.
- برای پی بردن به نحوه عملکرد شرط و مقایسه در جاوا اسکریپت، کد بالا را در سیستم خود و در یک صفحه با فرمت html ذخیره و به دلخواه تغییر دهید تا نتیجه تغییرات را ببینید.
قبل از خاتمه بحث، یک نکته ناگفته مانده و آن ترکیب دیگری از if و else به نام else if است، گفتیم که if شرطی به معنی اگر و else جانشین آن و به معنی در غیر اینصورت است، مابین این دو، دستور else if را می توان گنجاند، پس به صورت ساده می شود: اگر رابطه 1 نشد (if)، در غیر اینصورت اگر رابطه 2 نشد (else if)، اگر هیچ کدام از موارد قبلی نشد بخش سوم (else) اجرا شود؛ مثال زیر گویا است:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>وبگو | دستور شرطی و مقایسه ای else if در جاوا اسکریپت</title>
<!-- http://webgoo.ir -->
<style type="text/css">
body{
direction:rtl;
font-family:Tahoma, Geneva, sans-serif;
font-size:12px;
}
</style>
<script type="text/javascript">
//<![CDATA[
var age = 25;
if (age == 12 || age == 20){
document.write("کاربر گرامی سن شما 12 یا 20 سال است!");
}
else if(age != 12 && age != 20) {
document.write("کاربر گرامی سن شما 12 یا 20 سال نیست!");
}
else{
document.write(کاربر گرامی سن شما + age + سال است!);
}
//]]>
</script>
</head>
<body>
<hr />
متغیرها و مقادیر آنها در این مثال، از قبل تعریف شده اند.
</body>
</html>