تکه کد Switch در جاوا اسکریپت

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


عبارت​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";
}

منابع آموزشی