عملگرهای منطقی در جاوا اسکریپت – از آشنایی تا نحوه کار + مثال و کد

۹۸۵ بازدید
آخرین به‌روزرسانی: ۲۵ اردیبهشت ۱۴۰۳
زمان مطالعه: ۱۵ دقیقه
دانلود PDF مقاله
عملگرهای منطقی در جاوا اسکریپت – از آشنایی تا نحوه کار + مثال و کدعملگرهای منطقی در جاوا اسکریپت – از آشنایی تا نحوه کار + مثال و کد

درک و یادگیری عملگرهای منطقی در جاوا اسکریپت از مفاهیم بنیادی این زبان به‌حساب می‌آید. این «عملگرها» (اپراتور | Operator) عملیات منطقی روی مقادیر بولی (دودویی) را تسهیل می‌کنند و به کاربران امکان می‌دهند مقادیر بولی را به‌دلخواه دست‌کاری کرده و تصمیمات هوشمندانه‌تری در امور کدنویسی خود بگیرند. یادگیری عملگرهای منطقی در زبان برنامه نویسی جاوا اسکریپت، به کاربران این امکان را می‌دهند که برنامه‌های سازماندهی شده خوبی ایجاد کنند.

997696

این آموزش از «مجله فرادرس» به عملگرهای منطقی جاوا اسکریپت می‌پردازد که شامل عملگر منطقی «NOT (!)‎»، عملگر منطقی «AND (&&)‎» و عملگر منطقی «OR (||)‎» می‌شود. همچنین در این مطلب انواع عملگر بیتی و تفاوت آن‌ها با عملگرهای منطقی نیز بحث خواهد شد. کاربران با استفاده از این آموزش، نحوه استفاده مؤثر از این عملگرها را یاد خواهند گرفت.

عملگر جاوا اسکریپت چیست؟

عملگرها اجزای اساسی در اکثر زبان‌های برنامه نویسی هستند. آن‌ها نمادهایی محسوب می‌شوند که به مفسر یا کامپایلر دستور می‌دهند تا اقدامات خاص ریاضی، رابطه‌ای یا منطقی را انجام دهد. جاوا اسکریپت، مانند بسیاری از زبان‌های دیگر، انواع مختلفی از عملگرها را در برمی‌گیرد. عملگرهای جاوا اسکریپت شامل عملگرهای ساده ریاضی مانند «+»، عملگرهایی برای مقایسه مقادیر، عملگرهای منطقی، عملگرهای بیتی و غیره می‌شوند.

هرکدام از عملگرهای جاوا اسکریپت کاربردهای خاص خودشان را دارند و در سناریوهای مختلفی مورد استفاده قرار می‌گیرند. در ادامه این بحث انواع عملگرهای بیتی و عملگرهای منطقی در جاوا اسکریپت مورد بررسی واقع خواهند شد.

عملگرهای منطقی در جاوا اسکریپت

عملگرهای منطقی نقش محوری را در جاوا اسکریپت ایفا می‌کنند و کاربر را قادر می‌سازند تا متغیرها را مقایسه کرده و بر اساس نتیجه مقایسه اقداماتی را انجام دهد. به عنوان مثال، اگر نتیجه مقایسه TRUEباشد به دنبال آن عمل خاصی انجام بگیرد و برعکس اگر نتیجه مقایسه falseبود، عملی دیگر انجام شود. عملگرهای منطقی کدنویسی جاوا اسکریپت را بسیار تسهیل کرده‌اند. در کل عملگرهای جاوا اسکریپت از نوع منطقی به صورت موارد زیر هستند:

  • عملگر منطقی «NOT (!)‎»
  •  عملگر منطقی AND (&&)»‎»
  •  عملگر منطقی «OR (||)‎»
آموزش عملگرهای منطقی در جاوا اسکریپت

در ادامه هرکدام یک از ٣ عملگر منطقی بالا به همراه مثال‌هایی ساده تشریح خواهند شد.

نکته: در این مطلب هر جا واژه «نادرست» استفاده شد به معنای Falseو 0است و هر جا که واژه «درست» به کار رفت به معنی true و 1خواهد بود.

عملگر منطقی NOT در جاوا اسکریپت

در جاوا اسکریپت، عملگر منطقی NOT با علامت تعجب (!) نشان داده می‌شود. برخلاف محدود بودن به مقادیر بولی، این عملگر منطقی را می‌توان برای مقداری واحد از هر نوع اعمال کرد. این عملگر منطقی هنگامی که با مقدار بولی استفاده شود، اگر مقدار Falseباشد، عملگر trueرا بازمی‌گرداند و بالعکس. مثال زیر برای نشان دادن این مفهوم است:

خروجی مثال بالا به صورت زیر است:

true
false

در مثال بالا، از آنجا که eligibleدرست است، !eligibleبه Falseارزیابی خواهد شد. به طور مشابه، !requiredنادرست است در نتیجه requiredبه trueارزیابی می‌شود.

عملگر منطقی NOT برای مقادیر غیر بولی

اعمال عملگر NOT به مقدار غیر بولی شامل دو مرحله است: ابتدا مقدار به نوع بولی تبدیل می‌شود و سپس نفی آن انجام خواهد شد که مثال زیر برای نشان دادن این مفهوم در جاوا اسکریپت ذکر شده است:

عملگر منطقی NOT به عنوان یکی از عملگرهای منطقی در جاوا اسکریپت در این شرایط بر اساس اصول زیر عمل می‌کند:

  • اگر aتعریف نشده باشد، نتیجه درست است.
  • اگر aصفر باشد، نتیجه درست است.
  • اگر aعددی غیر صفر باشد، نتیجه نادرست است.
  • اگر aبرابر NaNباشد، نتیجه درست است.
  • اگر aشی باشد، نتیجه نادرست است.
  • اگر aرشته خالی باشد، نتیجه درست است.
  • اگر aرشته غیر خالی باشد، نتیجه نادرست است.

مثال زیر تمام سناریوهایی را نشان می‌دهد که عملگر منطقی NOT به مقادیر غیر بولی اعمال شده است:

با استفاده از مثال بالا و توجه به جزئیات آن، درک جامعی از عملگر منطقی NOT و رفتار آن در سناریوهای مختلف به دست خواهیم آورد.

برنامه نویس در حال بررسی مانیتور - عملگر منطقی مضاعف NOT

عملگر منطقی مضاعف NOT

گاهی ممکن است کاربر با عملگر منطقی مضاعف NOT یا نفی مضاعف (!!) مواجه شود. این ساختار از عملگر منطقی NOT دو بار استفاده می‌کند تا مقدار بولی واقعی متغیری مشخص را آشکار کند. به طور مؤثر، این تکنیک به همان نتیجه‌ای می‌رسد که با استفاده از تابع Boolean()می‌توان به آن نتیجه دست یافت. مثال زیر نحوه استفاده از این عملگر منطقی را نشان می‌دهد:

در مثال فوق، اولین عملگر NOT، مقدار بولی متغیر counterرا نفی می‌کند. اگرcounterدر ابتدا trueباشد، پس اولین عملگر NOT آن را به falseتبدیل می‌کند و بالعکس. از طرفی دیگر عملگر بعدیNOT نتیجه نفی اولیه را نفی کرده و در نهایت مقدار بولی معتبر متغیر counterرا تولید می‌کند. با استفاده از این رویکرد، ماهیت بولی واقعی متغیر قابل تشخیص خواهد بود. این مفهوم در استفاده از عملگرهای منطقی در جاوا اسکریپت به کاربر این امکان را می‌دهد که به طور مؤثر مقدار بولی پشت متغیر یا مقادیر را مشخص کرده و درک خود را از رفتار عملگر منطقی NOT تقویت کند.

عملگر بیتی NOT در جاوا اسکریپت

عملگر بیتی جاوا اسکریپت «NOT (~)‎» عملگری واحد است که بر روی عدد صحیح منفردی عمل می‌کند و باعث وارونگی تمام بیت‌های مجزای آن می‌شود. در اصل این عملگر بیتی، هر بیت 0 را به 1و هر بیت 1را به 0تبدیل می‌کند. «سینتکس» (Syntax) عملگر NOT بیتی به صورت زیر است:

در سینتکس بالا، cعملوند موجود در عملیات است. کار عملگر بیتی NOT معکوس کردن تمام بیت‌های موجود در عملوند، از جمله بیت‌های علامت است. مثال زیر نحوه استفاده از این نوع عملگر بیتی را نشان می‌دهد:

در مثال ارائه شده، عملگر NOT نوعی وارونگی بیت را در تمام بیت‌ها اعمال می‌کند (به عنوان مثال، 0 → 1، 1 → 0، و غیره) که این کار برای بیت‌های علامت نیز اعمال می‌شود. با درک نقش عملگر NOT بیتی، کاربر توانایی دست‌کاری داده‌های باینری را با معکوس کردن تک‌تک بیت‌ها به دست می‌آورد.

عملگر منطقی AND در جاوا اسکریپت

یکی دیگر از عملگرهای منطقی در جاوا اسکریپت، عملگر منطقی AND است. عملگر منطقی AND با دو علامت &&نشان داده می‌شود. می‌توان عملگر&&را همان‌طور که در عبارت زیر نشان داده شده است به صورت زیر به کار برد:

وقتی aبتواند به trueتبدیل شود، عملگر &&مقدار bرا به دست می‌دهد. در غیر این صورت، مقدارaرا بازمی‌گرداند. این اصل به طور مداوم برای تمام مقادیر بولی اعمال می‌شود. جدول زیر نتایج عملگر &&را هنگامی که به دو مقدار بولی اعمال می‌شود نشان می‌دهد:

aba && b
درستدرستدرست
درستنادرستنادرست
نادرستدرستنادرست
نادرستنادرستنادرست

نتیجه عملگر &&زمانی درست است اگر هر دو مقدار درست باشند. در غیر این صورت، به نادرست ارزیابی می‌شود. مثال زیر برای نشان داده این مفهوم آورده شده است:

در مثال بالا، از آنجا که عبارت eligibleنادرست است، عبارت eligible && requiredبه نادرست منجر می‌شود. مثال زیر هم در رابطه با استفاده از این عملگر مهم است:

در مثال بالا، هر دو eligibleو e requiredدرست هستند، در نتیجه عبارت eligible && requiredبه درست ارزیابی می‌شود. توضیحات بالا درک جامعی از عملگر AND منطقی و رفتار آن هنگام ترکیب مقادیر بولی ارائه می‌دهد.

برنامه نویس در حال کار با لپ تاپ - عملگر AND در جاوا اسکریپت

ارزیابی اتصال کوتاه با اپراتور منطقی (&&)

اپراتور &&در جاوا اسکریپت به اصل «ارزیابی اتصال کوتاه» (Short-Circuit Evaluation) پایبند است. این بدان معناست که عملگر &&مقدار عملوند دوم را تنها در صورتی ارزیابی می‌کند که مقدار عملوند اول برای اطمینان از نتیجه نهایی عبارت کافی نباشد. توجه به مثال زیر در این رابطه بسیار مهم است:

خروجی مثال بالا به صورت زیر است:

Infinity

در مثال بالا، bدرست است و باعث می‌شود که عملگر &&برای استنباط نتیجه، ارزیابی (1/0)را نیز انجام بدهد. همان‌طور که نشان داده شد، خروجی به Infinityتبدیل می‌شود. حال به مثال زیر توجه کنید که قطعه کد آن به صورت زیر است:

خروجی کد بالا به صورت زیر است:

false

این بار در مثال بالا با نادرست بودن b، عملگر &&از ارزیابی عبارت دوم پرهیز می‌کند، زیرا می‌تواند به طور قطع نتیجه بگیرد که بر اساس مقدار عملوند اولیه. نتیجه نهایی نادرست است. کاربر با درک مفهوم ارزیابی اتصال کوتاه در استفاده از عملگرهای منطقی در جاوا اسکریپت، بینشی در مورد نحوه عملکرد کارآمد اپراتور AND منطقی به دست می‌آورد، به سرعت نتایج را در صورت امکان تعیین کرده و از ارزیابی‌های غیرضروری در صورت نیاز اجتناب می‌کند.

زنجیره سازی عملگر منطقی AND در جاوا اسکریپت

زنجیره‌سازی عملگر به این معنی است که دنباله‌ای از چند عملگر&&را می‌توان در عبارتی واحد استفاده کرد. مثال زیر این مفهوم را بیان می‌کند:

عملگر منطقی &&در سناریوی فوق بر اساس اصول زیر عمل می‌کند:

  1. مقادیر را در عبارت از چپ به راست ارزیابی می‌کند.
  2. به ازای هر مقداری که با آن مواجه می‌شود آن را به مقداری بولی تبدیل می‌کند. اگر نتیجه نادرست باشد، ارزیابی متوقف می‌شود و مقدار اصلی بازگردانده خواهد شد.
  3. اگر همه مقادیر درست باشند، عملگر مقدار نهایی را بازیابی می‌کند.

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

عملگر بیتی AND در جاوا اسکریپت

عملگر بیتی «AND (&)‎» در جاوا اسکریپت برای مقایسه بیت‌های متناظر دو عملوند باینری ( اعدادی که صرفاً از 0و 1تشکیل شده‌اند) استفاده می‌شود. برای هر مجموعه از بیت‌های ورودی، بیت حاصل تنها زمانی روی 1تنظیم می‌شود که هر دو بیت ورودی 1باشند. در غیر این صورت، روی 0تنظیم می‌شود. دستور عملگر بیتی AND به صورت زیر است:

در مثال بالا، aو bعملوندهایی را نشان می‌دهند که تحت عملیات بیتی قرار می‌گیرند. در ادامه نحوه عملکرد عملگر بیتی AND آمده است:

  1. عملیات AND برای هر جفت بیت متناظر درaو bاز راست به چپ اعمال می‌شود.
  2. اگر هر دو بیت 1باشند، نتیجه1است. اگر هر یک از بیت‌ها 0باشند، نتیجه0است.
  3.  نتیجه یک مقدار عددی جدید است که در آن هر بیت نتیجه عملیات AND را روی بیت‌های مربوطه aو bمنعکس می‌کند.
عملگر بیتی AND

مثال زیر در رابطه با این عملگر بیتی بسیار مهم است:

در مثال ارائه شده، aبرابر با مقدار 50در فرمت اعشاری است که معادل باینری آن می‌شود 00110010. همچنین bبرابر با 100و معادل باینری آن 01100100است. عملگر AND بیتی هر جفت بیت مربوطه را از راست به چپ ارزیابی و تولید می‌کند. در نهایت در اعمال این عملگر برای دو عملوند نام برد مقدار 00100000باینری حاصل می‌شود که در فرمت اعشار برابر با ٣٢ است. با درک عملکرد عملگر بیتی AND، کاربر بینش ارزشمندی در مورد نحوه پردازش مقادیر باینری به دست می‌آورد و می‌تواند داده‌ها را در سطح بیت دست‌کاری و تجزیه‌وتحلیل کند.

 عملگر منطقی OR در Javascript

یکی دیگر از عملگرهای منطقی در جاوا اسکریپت، عملگر منطقی OR است که با نماد ||نشان داده می‌شود. می‌توان از عملگر  ||برای مقایسه دو مقدار از هر نوع استفاده کرد. مثال زیر نحوه استفاده از این عملگر منطقی را نشان می‌دهد:

عملکرد عملگر ||از اصل زیر پیروی می‌کند:

  • اگر aرا بتوان به trueتبدیل کرد، عملگر aرا بازمی‌گرداند. در غیر این صورت، bرا بازخواهد گرداند. این اصل حتی برای مقادیر بولی نیز صدق می‌کند. جدول زیر نتایج عملگر||را بر اساس مقادیر عملوندها نشان می‌دهد:
aba || b
درستدرستدرست
درستنادرستدرست
نادرستدرستدرست
نادرستنادرستنادرست

عملگر ||تنها زمانی که هر دو مقدار نادرست باشند، falseرا بازمی‌گرداند. اگر هر یک از مقادیر درست باشند، عملگر||مقدار trueرا به عنوان خروجی به کاربر می‌دهد. مثال زیر در این رابطه بسیار مهم است:

همچنین توجه به مثال زیر هم خالی از لطف نیست:

در مثال بالا عبارت eligible || requiredمنجر به تولید خروجی falseمی‌شود زیرا هر دو مقدار falseهستند. با استفاده از توضیحات بالا کاربر ماهیت عملگر منطقی OR و رفتار آن را به عنوان یکی از عملگرهای منطقی در Javascript در هنگام تضاد مقادیر برای تصمیم‌گیری‌های منطقی درک خواهد کرد.

نکته مهم: مشابه عملگر AND، عملگر OR نیز در جاوا اسکریپت به ارزیابی اتصال کوتاه پایبند است. این بدان معناست که اگر اولین مقدار به درستی ارزیابی شود، اپراتور ||به ارزیابی مقدار دوم نمی‌پردازد. درک مفهوم ارزیابی اتصال کوتاه برای درک چگونگی عملکرد مؤثر عملگر OR منطقی و تعیین سریع بر اساس مقادیر ارائه شده، بسیار مهم است.

برنامه نویس پشت میز به همراه لپ تاپ - زنجیره سازی عملگر منطقی

زنجیره سازی عملگر منطقی OR در جاوا اسکریپت

مشابه عملگر &&که قابلیت زنجیره‌سازی داشت، می‌توان این قابلیت را برای عملگر منطقی||نیز این قابلیت را دارد و می‌توان از چند عملگر||در عبارتی واحد استفاده کرد که مثال زیر این موضوع را نشان می‌دهد:

رفتار عملگر منطقی ||در زنجیره سازی به شرح زیر است:

  1. این عملگر منطقی مقادیر را از چپ به راست ارزیابی می‌کند.
  2.  برای هر مقداری که با آن مواجه می‌شود، آن را به مقدار بولی تبدیل می‌کند. اگر نتیجه این تبدیل درست باشد، ارزیابی متوقف شده و مقدار فعلی بازگردانده می‌شود.
  3. اگر همه مقادیر به عنوان نادرست ارزیابی شوند، عملگر منطقی ||مقدار نهایی را ارائه می‌دهد.

در اصل، زنجیره‌سازی با عملگر ||اولین مقدار حقیقتی را که با آن مواجه می‌شود، یا آخرین مقدار را در صورت یافتن مقدار درست ارائه می‌دهد.

عملگر بیتی OR در جاوا اسکریپت

عملگر بیتی «OR (|)‎» در جاوا اسکریپت بیت‌های متناظر دو عملوند را بررسی می‌کند و اگر یکی یا هر دو بیت 1باشند، نتیجه 1را بازمی‌گرداند و اگر هر دو بیت 0باشند، 0را به عنوان خروجی به کاربر می‌دهد. دستور عملگر بیتی OR به شرح زیر است:

در سینتکس بالا، aو bعملوندهای درگیر در عملیات هستند. عملکرد عملگر بیتی OR دقیقاً بر عکس عملکرد عملگر بیتی AND است. در اصل عملگر بیتی OR زمانی که هر یک از بیت‌ها 1باشند،1را بازمی‌گرداند و 0را فقط زمانی باز خواهد گرداند که هر دوتا بیت0باشند.

عملگر بیتی OR در جاوا اسکریپت

مثال زیر نحوه استفاده از این عملگر بیتی را نشان می‌دهد:

در مثال ارائه‌شده، عملگر بیتی OR هر جفت بیت مربوطه را از راست به چپ تجزیه‌وتحلیل می‌کند که در نتیجه، عدد باینری حاصل 01110110است که در مبنای اعشار به 118تفسیر می‌شود. با عمیق شدن در عملگرهای بیتی، درک تفاوت این عملگرها با عملگرهای منطقی در جاوا اسکریپت آسان خواهد شد.

عملگر بیتی XOR در جاوا اسکریپت

عملگر بیتی «(^) XOR» در جاوا اسکریپت بیت‌های متناظر دو عملوند را بررسی کرده و فقط زمانی 1تولید می‌کند که یکی از آن‌ها 0و دیگری 1باشد. یعنی دو عملوند برعکس همدیگر باشند. در غیر این صورت این عملگر 0را بازمی‌گرداند. یعنی زمانی که هر دوتا عملوند شبیه هم باشند 0بازگردانی خواهد شد.

سینتکس عملگر بیتی XOR به شرح زیر است:

در سینتکس فوق، aو bعملوندهای شرکت کننده در عملیات هستند. در اصل می‌توان این‌گونه بیان کرد که رفتار عملگر بیتی XOR منعکس‌کننده رفتار عملگرهای بیتی OR و AND است. مثال زیر نحوه استفاده از این عملگر بیتی را نشان می‌دهد:

در مثال داده شده، عملگر XOR هر جفت بیت مربوطه را از راست به چپ تجزیه‌وتحلیل می‌کند و نتیجه را بر اساس بیت‌های عملوندها بازمی‌گرداند. نتیجه عدد باینری عملیات بالا 01010110 بوده که در مبنای اعشار با عدد 86است.

عملگر بیتی XOR در جاوا اسکریپت

صحبت از عملگرهای بیتی در میان عملگرهای منطقی در جاوا اسکریپت به درک تفاوت‌های میان این عملگرها کمک می‌کند و به همین خاطر در ادامه چند نوع عملگر بیتی دیگر نیز مورد بررسی قرار خواهند گرفت.

عملگر بیتی شیفت به چپ در جاوا اسکریپت

عملگر جابه‌جایی یا شیفت به چپ «<<» در جاوا اسکریپت، جابجایی بیت‌های عددی معین به سمت چپ را تسهیل می‌کند. این عملگر به دو عملوند نیاز دارد: عددی که باید جابجا شود و تعداد بیت‌هایی که شیفت یا جابه‌جایی به‌وسیله آن‌ها اجرا می‌شود.

سینتکس عملگر بیتی شیفت به چپ در جاوا اسکریپت به صورت زیر است:

در سینتکس فوق، aعملوند عملیات شیفت به چپ را نشان می‌دهد و bنشان‌دهنده تعداد بیت‌هایی است باید جابه‌جا شوند. عملکرد عملگر شیفت به چپ منوط به جابجایی هر بیت از عملوند به چپ به‌وسیله تعداد تعیین شده بیت‌های قابل جابه‌جایی است. هر بیتی که فراتر از مرزهای عملوند جابجا شود نادیده گرفته می‌شود. مثال زیر نحوه استفاده از این عملگر را نشان می‌دهد:

در مثال داده شده بالا، عملگر شیفت به چپ مقدار باینری 00110010(معادل اعشاری50) را دو مکان به سمت چپ منتقل می‌کند. نتیجه این جابه‌جایی صورت گرفته مقدار باینری 11001000است که با مقدار اعشاری 200مطابقت دارد. تکنیک شیفت یا جابه‌جایی بیت می‌تواند در سناریوهای مختلف برنامه نویسی بسیار ارزشمند باشد.

عملگر بیتی شیفت به راست در جاوا اسکریپت

عملگر شیفت یا جابه‌جایی به سمت راست «>>» در جاوا اسکریپت امکان جابه‌جایی به سمت راست بیت‌ها را در عددی خاص فراهم می‌کند و این در حالی اتفاق می‌افتد که این عملگر جاوا اسکریپت علامت اصلی عدد را حفظ می‌کند. این عملگر به دو عملوند نیاز دارد: عددی که باید جابجا شود و تعداد بیت‌هایی که جابه‌جایی به وسیله آن‌ها اجرا می‌شود. سینتکس این عملگر به صورت زیر است:

در سینتکس بالا، aبه معنای عملوند برای عملیات شیفت به سمت راست است و bشان دهنده تعداد بیت‌هایی است که عملوند به وسیله آن‌ها جابه‌جا می‌شود. عملگر شیفت به سمت راست مشابه عملگر شیفت به سمت چپ است و فقط نوعی تمایز کلیدی ظرفیت بین آن‌ها وجود دارد که آن‌هم حفظ علامت اصلی عدد در عملگر شیفت به راست در حین ایجاد تغییرات است. مثال زیر نحوه استفاده از این عملگر را نشان می‌دهد:

در مثال ارائه شده، عملگر شیفت به سمت راست، مقدار اعشاری -50(دودویی:11001110) را دو موقعیت به سمت راست انتقال می‌دهد که درنهایت مقدار اعشاری -13را بازگردانی می‌کند که در مبنای باینری برابر با 11110011است.

عملگر بیتی شیفت به راست در جاوا اسکریپت

عملگر شیفت به راست بدون علامت در جاوا اسکریپت

عملگر شیفت به راست بدون علامت در جاوا اسکریپت «>>>»جابجایی به سمت راست بیت‌ها را در عددی معین، همراه با صفر کردن موقعیت‌های خالی سمت چپ، امکان‌پذیر می‌کند. این عملگر جاوا اسکریپت نیز دو عملوند را می‌پذیرد. عددی که باید جابجا شود و تعداد بیت‌هایی که جابه‌جایی به وسیله آن‌ها اتفاق می‌افتد. سینتکس این عملگر بیتی در جاوا اسکریپت به صورت زیر است:

در سینتکس فوق، aنماد عملوند برای عملیات شیفت سمت راست در حالی که bنشان‌دهنده مقدار بیت‌هایی است که باید جابه‌جا شوند. عملگر شیفت به سمت راست بدون علامت، عملکرد شیفت به سمت راست معمولی را منعکس می‌کند. با این حال، برخلاف عملگر شیفت به راست معمولی، عملگر شیفت به راست بدون علامت، علامت عدد را هنگام جابجایی حفظ نمی‌کند. در عوض، عدد را به عنوان نوعی عدد صحیح بدون علامت تفسیر خواهد کرد و یک عدد صفر را در سمت چپ‌ترین موقعیت بیت قرار می‌دهد. مثال زیر نحوه استفاده از این عملگر را بیان می‌کند:

در مثال بالا، عملگر بدون علامت شیفت به سمت راست، نمایش باینری -5را دو مکان به سمت راست منتقل خواهد کرد که در  نتیجه  آن علامت عدد حذف شده و مقدار اعشاری 1073741822به دست خواهد آمد.

تقدم عملگرهای منطقی در جاوا اسکریپت چگونه است؟

هنگام ترکیب چند عملگر منطقی در عبارتی واحد، موتور جاوا اسکریپت دنباله خاصی از ارزیابی را برای این عبارت انجام می‌دهد. این دنباله که به عنوان «اولویت عملگرها» شناخته می‌شود، ترتیب ارزیابی عملگرهای منطقی را دیکته می‌کند. در اصل، اولویت عملگر نوعی سلسله‌مراتب ارزیابی عملگر منطقی را در عبارتی ایجاد می‌کند.

اولویت عملگر منطقی در جاوا اسکریپت به ترتیب عملگر منطقی NOT، عملگر منطقی AND و عملگر منطقی OR هستند. یعنی در این بین عملگر منطقی NOT دارای بالاترین اولویت و عملگر منطقی OR دارای پایین‌ترین اولویت است. درک تقدم عملگرهای منطقی برای پیش‌بینی دقیق نحوه ارزیابی عبارات مربوط به این عملگرها اهمیت زیادی دارد.

تقدم عملگرهای منطقی در جاوا اسکریپت

کاربرد عملگرهای بیتی در جاوا اسکریپت چیست؟

عملگرهای بیتی قابلیت دست‌کاری بیت‌های خاص در اعداد باینری را ارائه می‌دهند. این عملگرها ساخت برنامه‌های مختلف را با قابلیت‌های پیچیده‌ای امکان‌پذیر می‌کنند که ممکن است انجام این عملیات‌های محاسباتی در حالت معمولی چالش‌برانگیز باشند. مهارت در استفاده از عملگرهای بیتی و عملگرهای منطقی در جاوا اسکریپت به کاربران کمک می‌کند کدنویسی کارآمدتری انجام دهند.

تفاوت عملگرهای بیتی و عملگرهای منطقی در جاوا اسکریپت چیست؟

تفاوت اصلی عملگرهای بیتی و عملگرهای منطقی در جاوا اسکریپت در ماهیت اساسی آن‌ها نهفته است. عملگرهای بیتی به طور پیچیده تک‌تک بیت‌ها را دست‌کاری می‌کنند و عملیات را در سطح باینری انجام می‌دهند. برعکس، عملگرهای منطقی برای تصمیم‌گیری‌ها استفاده می‌شوند و بر اساس شرایط چندوجهی تصمیمی اتخاذ می‌کنند. این تمایز بر نقش اساسی این عملگرها در برنامه نویسی و تأمین نیازهای محاسباتی متمایز تأکید می‌کند.

در کل می‌توان تفاوت این عملگرها را در موارد زیر خلاصه کرد:

  • دامنه عملیاتی: عملگرهای بیتی تک‌تک بیت‌ها را دست‌کاری کرده و عملیات را در سطح باینری اجرا می‌کنند. از طرف دیگر عملگرهای منطقی در تصمیم‌گیری و محاسبات منطق محور مورد استفاده قرار می‌گیرند.
  • عملکرد: عملگرهای بیتی عملیات را روی بیت‌ها انجام می‌دهند و محاسبات بیتی را پیش می‌برند. از طرفی دیگر عملگرهای منطقی با استفاده از مقایسه‌های منطقی تصمیم‌گیری را بر اساس شرایط متعدد تسهیل می‌کنند.
  • نماد عملگر: عملگرهای بیتی شامل نمادهایی مانند «&، |، ^، ~، << ، >>»را در برمی‌گیرند و از طرفی دیگر عملگرهای منطقی عبارت‌اند از &&، ||، !.
  • کاربرد: عملگرهای بیتی برای کارهایی که شامل دست‌کاری و بهینه‌سازی در سطح بیت هستند استفاده می‌شوند و در طرف مقابل عملگرهای منطقی نقش محوری در تصمیم‌گیری، انشعاب و ارزیابی‌های مشروط ایفا می‌کنند.

سخن پایانی

درک عملگرهای منطقی در جاوا اسکریپت برای برنامه نویسی مؤثر با این زبان محبوب بسیار ضروری است در مطلب فوق از مجله فرادرس انواع اپراتورهای منطقی در جاوا اسکریپت به همراه نحوه کاربرد آن‌ها در قالب مثال‌های عملی و ساده ارائه شد. در این مطلب ما مفاهیم زیر را یاد گرفتیم.

  • عملگر منطقی NOT نوعی مقدار بولی را معکوس می‌کند. استفاده از عملگر منطقی NOT مضاعف مقادیر را به نمایش بولی واقعی آن‌ها تبدیل خواهد کرد.
  • عملگر منطقی AND دو مقدار بولی را ارزیابی می‌کند و فقط زمانی Trueبه دست می‌آید که هر دو عملوند Trueباشند.
  • عملگر منطقی OR دو مقدار بولی را پردازش کرده و اگر هر یک از عملوندها Trueباشند، Trueتولید می‌کند.
  • هر دو عملگر منطقی AND و OR از قابلیتی به نام اتصال کوتاه پشتیبانی می‌کنند. علاوه بر این، این عملگرها را می‌توان با مقادیر غیر بولی استفاده کرد.
  • اولویت عملگر برای عملیات منطقی به این صورت است که بالاترین اولویت برای NOT، به دنبال آن AND و سپس OR خواهد بود.

همچنین در مطلب فوق انواع عملگرهای بیتی نیز معرفی و مثال‌هایی برای آن‌ها نیز ارائه شد. به امید اینکه با خواندن این مطلب درک خوبی از عملگرهای بیتی و عملگرهای منطقی در جاوا اسکریپت به دست آورده باشید.

بر اساس رای ۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
MakeUseOfJavascriptTutorialDifferenceBetween
دانلود PDF مقاله
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *