در قلمرو وسیع برنامهنویسی جاوا اسکریپت، درک تفاوتهای ظریف بین مکانیزمهای مختلف کنترل - جریان برای نوشتن کد کارآمد و مؤثر بسیار مهم است. دو مفهوم اساسی از این دست عبارتند ازسوئیچدستور و عملگر شرطی (همچنین به عنوان عملگر سه تایی شناخته می شود). بهعنوان تامینکننده سوئیچها در حوزه سختافزار، شاهد این بودهام که چگونه مفهوم سوئیچینگ، چه در کد و چه در سختافزار، نقشی محوری در سیستمهای متنوع بازی میکند. در این پست وبلاگ، من به تفاوت های بین aسوئیچو یک عملگر شرطی در جاوا اسکریپت، که ویژگیهای منحصربهفرد، موارد استفاده و زمان انتخاب یکی را بر دیگری برجسته میکند.
درک اصول
بیانیه سوئیچ
اینسوئیچدستور در جاوا اسکریپت یک ساختار انشعاب چند طرفه است. این به شما امکان می دهد یک عبارت را ارزیابی کنید و سپس بلوک های مختلف کد را بر اساس مقدار آن عبارت اجرا کنید. در اینجا یک مثال اساسی است:
let fruit = 'سیب'; switch (fruit) { case 'apple': console.log('This is a apple.'); شکستن case 'banana': console.log('این یک موز است.'); شکستن پیش فرض: console.log('میوه ناشناخته.'); }
در این مثال،سوئیچبیانیه را ارزیابی می کندمیوهمتغیر اگر ارزش آن باشد"سیب"، بلوک کد مربوطه اجرا می شود. اینشکستنکلمه کلیدی برای خروج استفاده می شودسوئیچبیانیه؛ در غیر این صورت، اعدام به پرونده بعدی "می افتد". اینپیش فرضcase اختیاری است و زمانی اجرا می شود که هیچ یک از موارد دیگر مطابقت نداشته باشد.
اپراتور مشروط
عملگر شرطی روشی مختصر برای نوشتن ساده استاگر - دیگربیانیه ها دارای نحو زیر است:وضعیت؟ بیان 1: بیان2. اگروضعیتاستدرست است،بیان 1ارزیابی می شود؛ در غیر این صورت،بیان 2ارزیابی می شود. در اینجا یک مثال است:
اجازه دهید سن = 20; اجازه پیام = سن >= 18؟ شما یک بزرگسال هستید. : 'شما خردسال هستید.'; console.log(پیام);
در این کد شرطسن >= 18بررسی می شود. از آنجایی کهسناست20، اولین عبارتشما یک بزرگسال هستید.اختصاص داده شده استپیاممتغیر
نحو و خوانایی
یکی از آشکارترین تفاوت ها بینسوئیچدستور و عملگر شرطی در نحو و خوانایی آنها نهفته است.
اینسوئیچدستور برای موقعیت هایی که چندین مقدار ممکن برای یک متغیر دارید مناسب تر است. این یک ساختار واضح برای رسیدگی به پرونده های مختلف ارائه می دهد، به خصوص زمانی که موارد زیادی برای بررسی وجود دارد. اسکن کد آسان است و هدف آن ساده است: انجام اقدامات مختلف بر اساس مقدار یک متغیر خاص.
از طرف دیگر، عملگر شرطی بسیار مختصر است. برای ساده ایده آل استاگر - دیگرسناریوهایی که در آنها باید یک مقدار را بر اساس یک شرط اختصاص دهید. با این حال، با افزایش پیچیدگی شرایط و عبارات، عملگر شرطی ممکن است به سختی خوانده شود. به عنوان مثال:
اجازه دهید نتیجه = (عدد > 10 && عدد < 20)؟ (عدد % 2 === 0؟ 'زوج و در محدوده' : 'فرد و در محدوده') : 'خارج از محدوده';
این کد به آسانی قابل درک نیستسوئیچبیانیه در وضعیت مشابهی خواهد بود.
ملاحظات عملکرد
از نظر عملکرد،سوئیچبیانیه می تواند کارآمدتر از یک سری ازاگر - دیگراظهارات زمانی که موارد زیادی وجود دارد. موتورهای جاوا اسکریپت می توانند بهینه سازی کنندسوئیچبیانیه، به خصوص زمانی که موارد بر اساس مقادیر صحیح هستند. موتور می تواند از تکنیک هایی مانند جدول های پرش برای یافتن سریع کیس مناسب برای اجرا استفاده کند.
عملگر شرطی، که یک عبارت ساده است، به طور کلی سریع است. با این حال، هنگامی که در سناریوهای تودرتو پیچیده استفاده می شود، عملکرد ممکن است به دلیل نیاز به ارزیابی شرایط و عبارات متعدد، اندکی کاهش یابد.
استفاده - موارد
زمان استفاده از بیانیه سوئیچ
- مقادیر گسسته چندگانه: همانطور که قبلا ذکر شد،
سوئیچبیانیه زمانی عالی است که متغیری با چندین مقدار ممکن داشته باشید. به عنوان مثال، در یک بازی، ممکن است از a استفاده کنیدسوئیچبیانیه برای رسیدگی به اقدامات مختلف بر اساس ورودی کاربر:
let userInput = 'پرش'; switch (userInput) { case 'run': console.log('نویسه شروع به اجرا می کند.'); شکستن case 'jump': console.log('شخصیت میپرد.'); شکستن case 'shoot': console.log('شخصیت تیراندازی می کند.'); شکستن پیش فرض: console.log('ورودی نامعتبر.'); }
- پاییز - از طریق منطق:
سوئیچبیانیه اجازه می دهد تا منطق سقوط - از طریق، که در آن شما می توانید چندین مورد یک بلوک کد را اجرا کنند. این می تواند در برخی سناریوها مفید باشد، مانند زمانی که می خواهید مقادیر مشابه را با هم گروه بندی کنید.
اجازه دهید ماه = 2; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: console.log('This month has 31 day.'); شکستن case 4: case 6: case 9: case 11: console.log('این ماه 30 روز است.'); شکستن case 2: console.log('این ماه 28 یا 29 روز دارد.'); شکستن پیش فرض: console.log('ماه نامعتبر.'); }
زمان استفاده از اپراتور شرطی
- تخصیص ارزش: عملگر شرطی معمولاً برای تخصیص مقدار بر اساس یک شرط استفاده می شود. به عنوان مثال، در تابعی که تخفیف را محاسبه می کند:
تابع محاسبه تخفیف (قیمت، isMember) { بازگشت isMember؟ قیمت * 0.9 : قیمت; }
- عبارات درون خطی: می توان از آن در عبارات درون خطی مانند JSX برای برنامه های React استفاده کرد. به عنوان مثال:
import React from'react'; function App() { let isLoggedIn = true; return ( <div> {isLoggedIn? <p>خوش آمدید!</p> : <p>لطفا وارد شوید.</p>} </div> ); } صادرات پیش فرض برنامه;
برنامه های واقعی - جهانی در سخت افزار
به عنوان یک تامین کننده سوئیچ، من دیده ام که چگونه این مفاهیم برنامه نویسی می توانند با سوئیچ های سخت افزاری مرتبط شوند. درست به عنوان یکسوئیچعبارت در جاوا اسکریپت اجازه می دهد تا اقدامات مختلفی بر اساس یک مقدار، سوئیچ های سخت افزاری مانندکلید برق عمومی خودرو،دو - پدال سوئیچ خودکار، وسوئیچ روکر مینیاتوری، جریان برق را بر اساس حالت آنها کنترل می کنند.
در یک سیستم خودرو، یک کلید برق می تواند در موقعیت های مختلف (روشن، خاموش و غیره) باشد، درست مانند یک متغیر در یکسوئیچبیانیه می تواند مقادیر متفاوتی داشته باشد. هر موقعیت سوئیچ مربوط به یک مدار الکتریکی متفاوت است که فعال می شود، مشابه نحوه هر مورد در aسوئیچدستور یک بلوک متفاوت از کد را اجرا می کند.


عملگر شرطی را می توان به عنوان یک کلید روشن و خاموش ساده در سخت افزار در نظر گرفت. این یک تصمیم باینری می گیرد، درست مانند یک سوئیچ اساسی که جریان برق را بر اساس یک شرایط خاص یا اجازه می دهد یا مسدود می کند.
نتیجه گیری
به طور خلاصه،سوئیچدستور و عملگر شرطی در جاوا اسکریپت اهداف مختلفی را دنبال می کنند. اینسوئیچبیانیه برای رسیدگی به چندین مورد بر اساس یک متغیر بهتر است، ساختاری واضح و عملکرد بالقوه بهتر را در برخی سناریوها ارائه می دهد. عملگر شرطی، از سوی دیگر، مختصر و ایده آل برای ساده استاگر - دیگرسناریوها، به ویژه برای تخصیص ارزش و عبارات درون خطی.
چه یک توسعهدهنده نرمافزار باشید و چه در صنعت سختافزار، درک این تفاوتها برای انتخاب درست در پروژههایتان ضروری است. اگر برای برنامه های سخت افزاری خود به سوئیچ های با کیفیت بالا نیاز دارید، ما اینجا هستیم تا به شما کمک کنیم. ما طیف گسترده ای از سوئیچ ها، از جملهکلید برق عمومی خودرو،دو - پدال سوئیچ خودکار، وسوئیچ روکر مینیاتوری. با ما تماس بگیرید تا در مورد نیازهای خاص خود صحبت کنید و یک مذاکره خرید را شروع کنید.
مراجع
- فلانگان، دیوید. جاوا اسکریپت: راهنمای قطعی. رسانه اوریلی، 2020.
- کراکفورد، داگلاس. جاوا اسکریپت: قسمت های خوب رسانه اوریلی، 2008.