تفاوت میان نسخه‌های «JavaScript:تکه کد Switch در جاوا اسکریپت»

از ویکی کد
پرش به ناوبری پرش به جستجو
(صفحه‌ای تازه حاوی «<nowiki>https://www.w3schools.com/js/js_switch.asp</nowiki> = JavaScript Switch Statement = عبارت switch The <code>switch</code> sta...» ایجاد کرد)
 
(۵ نسخهٔ میانیِ همین کاربر نمایش داده نشده است)
سطر ۱: سطر ۱:
<nowiki>https://www.w3schools.com/js/js_switch.asp</nowiki>
+
{{منو عمودی جاوااسکریپت}}
  
= JavaScript Switch Statement =
+
عبارت{{Code|code=switch|lang=javascript}}برای انجام عملیات‌های متفاوت در شرایط‌های متفاوت استفاده می‌شود. <ref>[https://www.w3schools.com/js/js_switch.asp w3schools.com: JavaScript Switch Statement]</ref>
عبارت switch
 
  
The <code>switch</code> statement is used to perform different actions based on different conditions.
+
==عبارت Switch در جاوااسکریپت==
 
+
از عبارت{{Code|code=switch|lang=javascript}}برای انتخاب کردن بلاکی که می‌بایست از بین چندین بلاک کد اجرا شود استفاده کنید.
عبارت Switch برای انجام عملیات های متفاوت در شرایط های متفاوت استفاده می شود .
 
 
 
== The JavaScript Switch Statement ==
 
عبارت Switch در جاوا اسکریپت
 
 
 
Use the <code>switch</code> statement to select one of many code blocks to be executed.
 
 
 
از عبارت Switch برای انتخاب کردن بلاکی که می بایست از بین چندین بلاک کد اجرا شود استفاده کنید .
 
 
 
=== Syntax ===
 
شیوه نوشتار
 
 
 
switch(''expression'') {
 
 
 
 case ''x'':
 
 
 
''   // code block''
 
 
 
   break;
 
 
 
 case ''y'':
 
 
 
''   // code block''
 
 
 
   break;
 
 
 
 default:
 
 
 
   // ''code block''
 
  
 +
===شیوهٔ نوشتار===
 +
<syntaxhighlight lang="javascript">
 +
switch(expression) {
 +
  case x:
 +
    // code block
 +
    break;
 +
  case y:
 +
    // code block
 +
    break;
 +
  default:
 +
    // code block
 
}
 
}
 +
</syntaxhighlight>شیوه عمل این عبارت به صورت زیر است:
  
This is how it works:
+
*عبارت Switch یک بار ارزیابی می‌شود.
 
+
*مقدار عبارت با هر یک از Case ها مقایسه می‌شود.
شیوه عمل این عبارت به صورت زیر است :
+
*اگر با هر یکی از Case ها نتیجه برابر بود، بلاک کد مربوط به آن case اجرا می‌شود.
 
 
·  The switch expression is evaluated once.
 
 
 
عبارت Switch یک بار ارزیابی می شود .
 
 
 
·  The value of the expression is compared with the values of each case.
 
 
 
مقدار عبارت با هر یک از Case  ها مقایسه می شود .  
 
 
 
·  If there is a match, the associated block of code is executed.
 
 
 
اگر با هر یکی از Case  ها نتیجه برابر بود ، بلاک کد مربوط به آن case اجرا می شود .
 
 
 
=== Example ===
 
The <code>getDay()</code> method returns the weekday as a number between 0 and 6.
 
  
متد getDay() شماره روز را به صورت عددی بین 0 تا 6 برمیگرداند .  
+
===مثال===
 +
متد{{Code|code=getDay()|lang=javascript}}شماره روز را به صورت عددی بین ۰ تا ۶ برمی‌گرداند.
  
(Sunday=0, Monday=1, Tuesday=2 ..)
+
(یکشنبه = ۰، دوشنبه = ۱، سه شنبه =۲ ، ....)
 
 
(یکشنبه = 0 ، دوشنبه = 1 ، سه شنبه =2 ، ....)
 
 
 
This example uses the weekday number to calculate the weekday name:
 
 
 
مثال زیر از شماره روز برای به دست آوردن نام روز استفاده می کند :
 
  
 +
مثال زیر از شماره روز برای به دست آوردن نام روز استفاده می‌کند:<syntaxhighlight lang="javascript">
 
switch (new Date().getDay()) {
 
switch (new Date().getDay()) {
 
+
  case 0:
 case 0:
+
    day = "Sunday";
 
+
    break;
    day = "Sunday";
+
  case 1:
 
+
    day = "Monday";
   break;
+
    break;
 
+
  case 2:
 case 1:
+
    day = "Tuesday";
 
+
    break;
    day = "Monday";
+
  case 3:
 
+
    day = "Wednesday";
   break;
+
    break;
 
+
  case 4:
 case 2:
+
    day = "Thursday";
 
+
    break;
     day = "Tuesday";
+
  case 5:
 
+
    day = "Friday";
   break;
+
    break;
 
+
  case 6:
 case 3:
+
    day = "Saturday";
 
 
    day = "Wednesday";
 
 
 
   break;
 
 
 
 case 4:
 
 
 
    day = "Thursday";
 
 
 
   break;
 
 
 
 case 5:
 
 
 
    day = "Friday";
 
 
 
   break;
 
 
 
 case 6:
 
 
 
    day = "Saturday";
 
 
 
 
}
 
}
 +
</syntaxhighlight>نتیجه متغیر day برابر خواهد بود با:<syntaxhighlight lang="javascript">
 +
Tuesday
 +
</syntaxhighlight>
  
The result of day will be:
+
==کلمه کلیدی break==
 
+
زمانی که جاوااسکریپت به کلمه کلیدی{{Code|code=break|lang=javascript}} break می‌رسد، جاوااسکریپت از بلاک switch خارج می‌شود.
نتیجه متغیر day برابر خواهد بود با :
 
 
 
<code>Tuesday</code>
 
 
 
== The break Keyword ==
 
کلمه کلیدی break
 
 
 
When JavaScript reaches a <code>break</code> keyword, it breaks out of the switch block.
 
 
 
زمانی که جاوا اسکریپت به کلمه کلیدی break می رسد ، جاوا اسکریپت از بلاک switch خارج می شود.
 
 
 
This will stop the execution of inside the block.
 
 
 
این کلمه موجب متوقف شدن اجرای کد درون بلاک می شود .
 
 
 
It is not necessary to break the last case in a switch block. The block breaks (ends) there anyway.
 
 
 
استفاده از کلمه کلیدی break در آخرین case ضروری نیست .جاوا اسکریپت از  بلاک Switch در آخرین case تحت هر شرایطی بعد از اجرای کد آن خارج خواهد شد .
 
 
 
'''Note:''' If you omit the break statement, the next case will be executed even if the evaluation does not match the case.
 
 
 
توجه داشته باشید که اگر شما عبارت break را ننویسید ، Case بعدی حتی در صورت اینکه با شرط دستور Switch همخوانی نداشته باشد ، اجرا خواهد شد .
 
 
 
== The default Keyword ==
 
کلمه کلیدی Default
 
 
 
The <code>default</code> keyword specifies the code to run if there is no case match:
 
  
کلمه کلیدی Default بلاک کدی را می بایست در صورت برقرار نبودن هیچ یک از Case ها اجرا شود را مشخص می کند .
+
این کلمه موجب متوقف شدن اجرای کد درون بلاک می‌شود.
  
=== Example ===
+
استفاده از کلمه کلیدی break در آخرین case ضروری نیست. جاوااسکریپت از بلاک Switch در آخرین case تحت هر شرایطی بعد از اجرای کد آن خارج خواهد شد.
The <code>getDay()</code> method returns the weekday as a number between 0 and 6.
 
  
متد getDay() شماره روز را به صورت عددی بین 0 تا 6 برمیگرداند .  
+
{{نکته|type=delete|text='''توجه داشته باشید:''' اگر شما عبارت break را ننویسید، Case بعدی حتی در صورت اینکه با شرط دستور Switch همخوانی نداشته باشد، اجرا خواهد شد.
 +
}}
  
If today is neither Saturday (6) nor Sunday (0), write a default message:
+
==کلمه کلیدی default==
 +
کلمه کلیدی{{Code|code=default|lang=javascript}}بلاک کدی را می‌بایست در صورت برقرار نبودن هیچ‌یک از Caseها اجرا شود را مشخص می‌کند.
  
اگر امروز چه شنبه (6) باشد یا چه یکشنبه  (0) ، یک پیام پیشفرض می نویسد :
+
===مثال===
 +
متد{{Code|code=default|lang=javascript}}شماره روز را به صورت عددی بین ۰ تا ۶ برمی‌گرداند.
  
 +
اگر امروز چه شنبه (۶) باشد یا چه یکشنبه (۰)، یک پیام پیشفرض می‌نویسد:<syntaxhighlight lang="javascript">
 
switch (new Date().getDay()) {
 
switch (new Date().getDay()) {
 
+
  case 6:
  case 6:
+
    text = "Today is Saturday";
 
+
    break;
    text = "Today is Saturday";
+
  case 0:
 
+
    text = "Today is Sunday";
   break;  
+
    break;
 
+
  default:
 case 0:
+
    text = "Looking forward to the Weekend";
 
 
   text = "Today is Sunday";
 
 
 
   break;  
 
 
 
  default:  
 
 
 
   text = "Looking forward to the Weekend";
 
 
 
 
}
 
}
 +
</syntaxhighlight>
 +
نتیجه متغیر text برابر خواهد بود با:
 +
<syntaxhighlight lang="javascript">
 +
Looking forward to the Weekend
 +
</syntaxhighlight>
 +
Case مربوط به کلمه کلیدی{{Code|code=default|lang=javascript}}لزوم نباید آخرین بلاک کد در دستور Switch باشد:
  
The result of text will be:
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
نتیجه متغیرtext برابر خواهد بود با :
 
 
 
Looking forward to the Weekend
 
 
 
The <code>default</code> case does not have to be the last case in a switch block:
 
 
 
Case مربوط به کلمه کلیدی Default لزوم نباید آخرین بلاک کد در دستور Switch باشد :
 
 
 
=== Example ===
 
 
switch (new Date().getDay()) {
 
switch (new Date().getDay()) {
 
+
  default:
 default:  
+
    text = "Looking forward to the Weekend";
 
+
    break;
   text = "Looking forward to the Weekend";
+
  case 6:
 
+
    text = "Today is Saturday";
   break;
+
    break;
 
+
  case 0:
 case 6:
+
    text = "Today is Sunday";
 
 
    text = "Today is Saturday";
 
 
 
   break;  
 
 
 
 case 0:
 
 
 
   text = "Today is Sunday";
 
 
 
 
}
 
}
 +
</syntaxhighlight>{{نکته|type=|image=[[Image:OOjs_UI_icon_lightbulb-yellow.svg|38px]]|text=اگر بلاک مربوط به کلمه{{Code|code=default|lang=javascript}}آخرین case در بلاک دستور switch نباشد، حتماً به یاد داشته باشید که پایان case عبارت Default از کلمه break استفاده کنید.
 +
}}
  
If <code>default</code> is not the last case in the switch block, remember to end the default case with a break.
+
==بلاک‌های کد مشترک==
 +
برخی اوقات شما می‌خواهید که Case های مختلفی در دستور Switch از کد مشترک استفاده کنند.
  
اگر بلاک مربوط به کلمه Default آخرین Case  در بلاک دستور Switch نباشد ، حتما به یاد داشته باشید که پایان Case  عبارت Default از کلمه break استفاده کنید .
+
در این مثال case شماره ۴ و ۵ دارای بلاک کد مشترک هستند و case صفر و شش نیز بلاک کد مشترک دیگری دارند:
  
== Common Code Blocks ==
+
===مثال===
بلاک های کد مشترک
+
<syntaxhighlight lang="javascript">
 
 
Sometimes you will want different switch cases to use the same code.
 
 
 
برخی اوقات شما می خواهید که Case  های مختلفی در دستور Switch از کد مشترک استفاده کنند.
 
 
 
In this example case 4 and 5 share the same code block, and 0 and 6 share another code block:
 
 
 
در این مثالcase  شماره 4 و 5 دارای بلاک کد مشترک هستند و Case صفر و شش نیز بلاک کد مشترک دیگری دارند :
 
 
 
=== Example ===
 
 
switch (new Date().getDay()) {
 
switch (new Date().getDay()) {
 
+
  case 4:
 case 4:
+
  case 5:
 
+
    text = "Soon it is Weekend";
 case 5:
+
    break;
 
+
  case 0:
   text = "Soon it is Weekend";
+
  case 6:
 
+
    text = "It is Weekend";
   break;  
+
    break;
 
+
  default:
 case 0:
+
    text = "Looking forward to the Weekend";
 
 
 case 6:
 
 
 
   text = "It is Weekend";
 
 
 
   break;
 
 
 
 default:  
 
 
 
   text = "Looking forward to the Weekend";
 
 
 
 
}
 
}
 +
</syntaxhighlight>
  
== Switching Details ==
+
==جزئیات عمل Switching==
جزئیات عمل Switching
+
اگر چندین Case با مقدار یک Case برابری کند، بلاک '''اولین''' Case انتخاب می‌شود.
 
 
If multiple cases matches a case value, the '''first''' case is selected.
 
 
 
اگر چندین Case با مقدار یک Case برابری کند ، بلاک اولین Case  انتخاب می شود .
 
  
If no matching cases are found, the program continues to the '''default''' label.
+
اگر هیچ‌یک از Case ها نیز برقرار نباشد، برنامه بلاک مربوط به کلمه '''default''' را اجرا می‌کند.
  
اگر هیچ یک از Case ها نیز برقرار نباشد ، برنامه بلاک مربوط به کلمه default را اجرا می کند .
+
اگر دستور default نوشته نشده باشد، برنامه سایر کدها '''بعد از دستور switch''' را اجرا خواهد کرد.
  
If no default label is found, the program continues to the statement(s) '''after the switch'''.
+
==مقایسهٔ سخت گیرانه==
 +
دستور Switch از مقایسهٔ '''سخت گیرانه''' (===) استفاده می‌کند.
  
اگر دستور Default نوشته نشده باشد ، برنامه سایر کد ها بعد از دستور Switch را اجرا خواهد کرد .
+
برای اینکه Case مورد نظر برقرار باشد، نوع و مقدار آن باید برابر باشد.
  
== Strict Comparison ==
+
مقایسه سخت گیرانه در صورتی تنها می‌تواند true یا برقرار باشد که عملگرها از یک نوع باشند.
مقایسه ی سخت گیرانه
 
  
Switch cases use '''strict''' comparison (===).
+
در مثال زیر، هیچ‌یک از Case ها برای متغیر x اجرا نخواهند شد:
  
دستور Switch از مقایسه ی  سخت گیرانه (===) استفاده می کند .
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
The values must be of the same type to match.
 
 
 
برای اینکه Case  مورد نظر برقرار باشد ، نوع و مقدار آن باید برابر باشد .
 
 
 
A strict comparison can only be true if the operands are of the same type.
 
 
 
مقایسه سخت گیرانه در صورتی تنها می تواند true یا برقرار باشد که عملگرها از یک نوع باشند .
 
 
 
In this example there will be no match for x:
 
 
 
در مثال زیر ، هیچ یک از Case  ها برای متغیر x اجرا نخواهند شد:
 
 
 
=== Example ===
 
 
var x = "0";
 
var x = "0";
 
 
switch (x) {
 
switch (x) {
 +
  case 0:
 +
    text = "Off";
 +
    break;
 +
  case 1:
 +
    text = "On";
 +
    break;
 +
  default:
 +
    text = "No value found";
 +
}
 +
</syntaxhighlight>
  
 case 0:
+
==منابع آموزشی==
 
+
{{پانویس|چپ‌چین=بله}}
   text = "Off";
+
{{منو افقی جاوااسکریپت}}
 
+
<references />
   break;
 
 
 
 case 1:
 
 
 
   text = "On";
 
 
 
   break;
 
 
 
  default:
 
 
 
   text = "No value found";
 
 
 
}
 

نسخهٔ ‏۱۷ آبان ۱۳۹۸، ساعت ۱۱:۱۲

دورهٔ آموزشی جاوااسکریپت
Javascript.jpg
جاوااسکریپت
موارد آموزشی
۱آموزش جاوااسکریپت
۲مقدمه‌ای بر جاوااسکریپت
۳JavaScript:قوانین و اصول اولیه زبان جاوااسکریپت
۴JavaScript:خروجی جاوااسکریپت
۵JavaScript:عبارت‌ها در جاوااسکریپت
۶JavaScript:شیوهٔ نوشتن (Syntax) عبارات یا دستورات در جاوااسکریپت
۷JavaScript:نظرات یا کامنت‌ها (Comments) در جاوااسکریپت
۸JavaScript:متغیرها در جاوااسکریپت
۹JavaScript:عملگرهای جاوااسکریپت
۱۰JavaScript:عملگرهای ریاضی در جاوااسکریپت
۱۱JavaScript:عملگرهای مقداردهی در جاوااسکریپت
۱۲JavaScript:انواع داده‌ها در جاوااسکریپت
۱۳JavaScript:توابع در جاوااسکریپت
۱۴JavaScript:اشیاء (object) در جاوااسکریپت
۱۵JavaScript:رویدادها در جاوااسکریپت
۱۶JavaScript:رشته‌های متنی (string) در جاوااسکریپت
۱۷JavaScript:متدهای نوع داده متنی یا رشته‌ای در جاوااسکریپت
۱۸JavaScript:اعداد در جاوااسکریپت
۱۹JavaScript:متدهای داده‌های عددی در جاوااسکریپت
۲۰JavaScript:آرایه‌ها در جاوااسکریپت
۲۱JavaScript:متدهای آرایه در جاوااسکریپت
۲۲JavaScript:مرتب‌سازی آرایه‌ها در جاوااسکریپت
۲۳JavaScript:متدهای پیمایش آرایه در جاوااسکریپت
۲۴JavaScript:اشیاء تاریخ و زمان در جاوااسکریپت
۲۵JavaScript:فرمت‌های تاریخ و زمان در جاوااسکریپت
۲۶JavaScript:متدهای دریافت تاریخ و زمان در جاوااسکریپت
۲۷JavaScript:متدهای تنظیم زمان و تاریخ در جاوااسکریپت
۲۸JavaScript:شی ریاضی (Math) در جاوااسکریپت
۲۹JavaScript:ایجاد عدد تصادفی در جاوااسکریپت
۳۰JavaScript:مقادیر بولین (Booleans) در جاوااسکریپت
۳۱JavaScript:عملگرهای منطقی و مقایسه‌ای در جاوااسکریپت
۳۲JavaScript:ساختار if else و else if در جاوااسکریپت
۳۳JavaScript:تکه کد Switch در جاوا اسکریپت
۳۴JavaScript:حلقه For در جاوااسکریپت
۳۵JavaScript:حلقه While در جاوااسکریپت
۳۶JavaScript:کلمات کلیدی Break و Continue در جاوااسکریپت
۳۷JavaScript:تبدیل نوع داده‌ها در جاوااسکریپت
۳۸JavaScript:عملیات‌های بیتی در جاوااسکریپت
۳۹JavaScript:عبارات با قاعده در جاوااسکریپت
۴۰JavaScript:خطاها در جاوااسکریپت - رخ دادن خطا و رفع آن
۴۱JavaScript:Scope در جاوااسکریپت
۴۲JavaScript:Hoisting یا جا به جایی کدها در جاوااسکریپت
۴۳JavaScript:استفاده از مد یا حالت سخت‌گیرانه (use strict) در جاوااسکریپت
۴۴JavaScript:کلمه کلیدی This در جاوااسکریپت
۴۵JavaScript:کلمه کلیدی Let در جاوااسکریپت
۴۶JavaScript:ثابت‌ها در جاوااسکریپت
۴۷JavaScript:تعریف توابع به صورت پیکان
۴۸JavaScript:کلاس‌ها در جاوااسکریپت
۴۹JavaScript:اشکال‌زدایی در جاوااسکریپت
۵۰JavaScript:راهنمای استایل و استانداردهای کدنویسی در جاوااسکریپت
۵۱JavaScript:بهترین تمرینات جاوااسکریپت
۵۲JavaScript:اشتباهات رایج در برنامه‌نویسی جاوااسکریپت
۵۳JavaScript:کارایی در جاوااسکریپت
۵۴JavaScript:کلمات رزرو شده در جاوااسکریپت
۵۵JavaScript:ورژن‌های جاوااسکریپت
۵۶JavaScript:ECMAScript 5 - JavaScript 5
۵۷JavaScript:ECMAScript 6 - ECMAScript 2015
۵۸JavaScript:جیسون (JSON) در جاوااسکریپت
فرم‌ها
۱JavaScript:فرم‌ها در جاوااسکریپت
۲JavaScript:API ارزشیابی در جاوااسکریپت
اشیاء (Object)
۱JavaScript:اشیاء در جاوااسکریپت
۲JavaScript:ویژگی‌های اشیاء در جاوااسکریپت
۳JavaScript:متدهای اشیاء در جاوااسکریپت
۴JavaScript:روش‌های دسترسی به شیء در جاوااسکریپت
۵JavaScript:سازنده‌های شیء در جاوااسکریپت
۶JavaScript:شکل اصلی شیء در جاوااسکریپت
۷JavaScript:متدهای شیء در ورژن ES5 جاوااسکریپت
تابع
۱JavaScript:تعریف تابع در جاوااسکریپت
۲JavaScript:پارامتر توابع در جاوااسکریپت
۳JavaScript:فراخوانی تابع در جاوااسکریپت
۴JavaScript:صدا کردن تابع در جاوااسکریپت
۵JavaScript:تابع Apply در جاوااسکریپت
۶JavaScript:بسته‌ها (به انگلیسی: Closures) در جاوااسکریپت
HTML DOM
۱JavaScript:HTML DOM در جاوااسکریپت
۲JavaScript:متدهای HTML DOM در جاوااسکریپت
۳JavaScript:HTML DOM Document در جاوااسکریپت
۴JavaScript:عناصر HTML DOM در جاوااسکریپت
۵JavaScript:HTML DOM در جاوااسکریپت - تغییر محتوای HTML
۶JavaScript:DOM در جاوااسکریپت - تغییر CSS
۷JavaScript:انیمیشن در HTML DOM جاوااسکریپت
۸JavaScript:رویدادها در HTML DOM جاوااسکریپت
۹JavaScript:شنونده رویداد در HTML DOM جاوااسکریپت
۱۰JavaScript:پیمایش در HTML DOM جاوااسکریپت
۱۱JavaScript:عناصر (گره‌ها) HTML DOM در جاوااسکریپت
۱۲JavaScript:مجموعه‌های HTML DOM جاوااسکریپت
۱۳JavaScript:لیست گره‌ها در HTML DOM جاوااسکریپت
Browser BOM
۱JavaScript:پنجره جاوااسکریپت - مدل شیء مرورگر
۲JavaScript:پنجره صفحه نمایش در جاوااسکریپت
۳JavaScript:موقعیت پنجره در جاوااسکریپت
۴JavaScript:تاریخچه پنجره در جاوااسکریپت
۵JavaScript:ناوبری پنجره در جاوااسکریپت
۶JavaScript:جعبه پیغام جاوااسکریپت
۷JavaScript:رویدادهای زمان‌بندی شده در جاوااسکریپت
۸JavaScript:کوکی‌های جاوااسکریپت
AJAX
۱JavaScript:مقدمه‌ای بر AJAX
۲JavaScript:AJAX - شیء XMLHttpRequest
۳JavaScript:AJAX - ارسال یک درخواست به سرور
۴AJAX - پاسخ سرور
۵JavaScript:مثال‌های XML در AJAX
۶JavaScript:مثال‌های PHP در AJAX
۷JavaScript:مثال‌های ASP در AJAX
۸JavaScript:مثال پایگاه داده در AJAX
۹JavaScript:نرم‌افزارهای XML
۱۰JavaScript:مثال‌های AJAX
JSON
۱JavaScript:مقدمه‌ای بر JSON
۲JavaScript:شیوهٔ نوشتار JSON
۳JavaScript:JSON در برابر XML
۴JavaScript:انواع داده‌های مجاز در JSON
۵متد JSON.parse()
۶متد JSON.stringify()
۷JavaScript:اشیاء JSON
۸JavaScript:آرایه‌ها در JSON
۹JavaScript:PHP در JSON
۱۰JavaScript:HTML در JSON
۱۱JavaScript:JSONP
jQuery
۱JavaScript:جاوااسکریپت / انتخابگرهای DOM جی‌کوئری
۲JavaScript:جاوااسکریپت / عناصر HTML جی‌کوئری
۳JavaScript:جاوااسکریپت / استایل‌های CSS در جی‌کوئری
۴JavaScript:جاوااسکریپت / HTML DOM در جی‌کوئری


عبارتswitchبرای انجام عملیات‌های متفاوت در شرایط‌های متفاوت استفاده می‌شود. [۱]

عبارت Switch در جاوااسکریپت

از عبارتswitchبرای انتخاب کردن بلاکی که می‌بایست از بین چندین بلاک کد اجرا شود استفاده کنید.

شیوهٔ نوشتار

switch(expression) {
  case x:
    // code block
    break;
  case y:
    // code block
    break;
  default:
    // code block
}

شیوه عمل این عبارت به صورت زیر است:

  • عبارت Switch یک بار ارزیابی می‌شود.
  • مقدار عبارت با هر یک از Case ها مقایسه می‌شود.
  • اگر با هر یکی از Case ها نتیجه برابر بود، بلاک کد مربوط به آن case اجرا می‌شود.

مثال

متدgetDay()شماره روز را به صورت عددی بین ۰ تا ۶ برمی‌گرداند.

(یکشنبه = ۰، دوشنبه = ۱، سه شنبه =۲ ، ....)

مثال زیر از شماره روز برای به دست آوردن نام روز استفاده می‌کند:

switch (new Date().getDay()) {
  case 0:
    day = "Sunday";
    break;
  case 1:
    day = "Monday";
    break;
  case 2:
     day = "Tuesday";
    break;
  case 3:
    day = "Wednesday";
    break;
  case 4:
    day = "Thursday";
    break;
  case 5:
    day = "Friday";
    break;
  case 6:
    day = "Saturday";
}

نتیجه متغیر day برابر خواهد بود با:

Tuesday

کلمه کلیدی break

زمانی که جاوااسکریپت به کلمه کلیدیbreak break می‌رسد، جاوااسکریپت از بلاک switch خارج می‌شود.

این کلمه موجب متوقف شدن اجرای کد درون بلاک می‌شود.

استفاده از کلمه کلیدی break در آخرین case ضروری نیست. جاوااسکریپت از بلاک Switch در آخرین case تحت هر شرایطی بعد از اجرای کد آن خارج خواهد شد.


کلمه کلیدی default

کلمه کلیدیdefaultبلاک کدی را می‌بایست در صورت برقرار نبودن هیچ‌یک از Caseها اجرا شود را مشخص می‌کند.

مثال

متدdefaultشماره روز را به صورت عددی بین ۰ تا ۶ برمی‌گرداند.

اگر امروز چه شنبه (۶) باشد یا چه یکشنبه (۰)، یک پیام پیشفرض می‌نویسد:

switch (new Date().getDay()) {
  case 6:
    text = "Today is Saturday";
    break;
  case 0:
    text = "Today is Sunday";
    break;
  default:
    text = "Looking forward to the Weekend";
}

نتیجه متغیر text برابر خواهد بود با:

Looking forward to the Weekend

Case مربوط به کلمه کلیدیdefaultلزوم نباید آخرین بلاک کد در دستور Switch باشد:

مثال

switch (new Date().getDay()) {
  default:
    text = "Looking forward to the Weekend";
    break;
  case 6:
    text = "Today is Saturday";
    break;
  case 0:
    text = "Today is Sunday";
}


بلاک‌های کد مشترک

برخی اوقات شما می‌خواهید که Case های مختلفی در دستور Switch از کد مشترک استفاده کنند.

در این مثال case شماره ۴ و ۵ دارای بلاک کد مشترک هستند و case صفر و شش نیز بلاک کد مشترک دیگری دارند:

مثال

switch (new Date().getDay()) {
  case 4:
  case 5:
    text = "Soon it is Weekend";
    break;
  case 0:
  case 6:
    text = "It is Weekend";
    break;
  default:
    text = "Looking forward to the Weekend";
}

جزئیات عمل Switching

اگر چندین Case با مقدار یک Case برابری کند، بلاک اولین Case انتخاب می‌شود.

اگر هیچ‌یک از Case ها نیز برقرار نباشد، برنامه بلاک مربوط به کلمه default را اجرا می‌کند.

اگر دستور default نوشته نشده باشد، برنامه سایر کدها بعد از دستور switch را اجرا خواهد کرد.

مقایسهٔ سخت گیرانه

دستور Switch از مقایسهٔ سخت گیرانه (===) استفاده می‌کند.

برای اینکه Case مورد نظر برقرار باشد، نوع و مقدار آن باید برابر باشد.

مقایسه سخت گیرانه در صورتی تنها می‌تواند true یا برقرار باشد که عملگرها از یک نوع باشند.

در مثال زیر، هیچ‌یک از Case ها برای متغیر x اجرا نخواهند شد:

مثال

var x = "0";
switch (x) {
  case 0:
    text = "Off";
    break;
  case 1:
    text = "On";
    break;
  default:
    text = "No value found";
}

منابع آموزشی