مشاوره و آموزش تحصیلی ریسمونک
0

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

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

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

فهرست مطالب این نوشته

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

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

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

آموزش جاوا اسکریپت JavaScript
فیلم آموزش جاوا اسکریپت JavaScript در فرادرس
کلیک کنید

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

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

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

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

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

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

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

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

let eligible = false,
    required = true;

console.log(!eligible);
console.log(!required);

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

true
false

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

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

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

!a

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

آموزش پروژه محور جاوا اسکریپت، CSS و HTML – طراحی صفحه فرود واکنشگرا
فیلم آموزش پروژه محور جاوا اسکریپت، CSS و HTML – طراحی صفحه فرود واکنشگرا
کلیک کنید
  • اگر a تعریف نشده باشد، نتیجه درست است.
  • اگر a صفر باشد، نتیجه درست است.
  • اگر a عددی غیر صفر باشد، نتیجه نادرست است.
  • اگر a برابر NaN باشد، نتیجه درست است.
  • اگر a شی باشد، نتیجه نادرست است.
  • اگر a رشته خالی باشد، نتیجه درست است.
  • اگر a رشته غیر خالی باشد، نتیجه نادرست است.

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

console.log(!undefined); // true
console.log(!null); // true
console.log(!۲۰); // false
console.log(!۰); // true
console.log(!NaN); // true
console.log(!{}); // false
console.log(!''); // true
console.log(!'OK'); // false
console.log(!false); // true
console.log(!true); // false

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

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

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

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

let counter = ۱۰;
console.log(!!counter); // true

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

مطلب پیشنهادی:

متغیرها در جاوا اسکریپت – آموزش Variables به زبان ساده

شروع مطالعه

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

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

~c

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

let c = ۱۰;   // ۰۰۰۰۱۰۱۰
let d = -۱۰;  // ۱۱۱۱۰۱۱۰ 

console.log(~c); // ۱۱۱۱۰۱۰۱
console.log(~d); // ۰۰۰۰۱۰۰۱

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

آموزش JavaScript ES6 جاوا اسکریپت
فیلم آموزش JavaScript ES6 جاوا اسکریپت در فرادرس
کلیک کنید

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

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

let result = a && b;

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

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

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

let eligible = false,
    required = true;

console.log(eligible && required); // false

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

let eligible = true,
    required = true;

console.log(eligible && required); // true

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

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

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

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

let b = true;
let result = b && (۱ / ۰);
console.log(result);

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

Infinity

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

let b = false;
let result = b && (۱ / ۰);
console.log(result);

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

false

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

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

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

let result = value1 && value2 && value3;

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

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

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

آموزش پروژه محور جاوا اسکریپت – پیاده سازی سبد خرید فروشگاهی با JavaScript
فیلم آموزش پروژه محور جاوا اسکریپت – پیاده سازی سبد خرید فروشگاهی با JavaScript در فرادرس
کلیک کنید

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

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

a & b

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

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

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

let a = ۵۰;   // ۰۰۱۱۰۰۱۰
let b = ۱۰۰;  // ۰۱۱۰۰۱۰۰

let result = a & b;  // ۰۰۱۰۰۰۰۰

console.log(result); // ۳۲

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

آموزش برنامه نویسی تایپ اسکریپت TypeScript در جاوا اسکریپت
فیلم آموزش برنامه نویسی تایپ اسکریپت TypeScript در جاوا اسکریپت در فرادرس
کلیک کنید

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

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

let result = a || b;

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

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

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

let eligible = true,
    required = false;

console.log(eligible || required); // true

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

let eligible = false,
    required = false;

console.log(eligible || required); // false

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

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

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

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

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

let result = value1 || value2 || value3;

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

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

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

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

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

a | b

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

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

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

let a = ۵۰;   // ۰۰۱۱۰۰۱۰
let b = ۱۰۰;  // ۰۱۱۰۰۱۰۰

let result = a | b;  // ۰۱۱۱۰۱۱۰

console.log(result); // ۱۱۸

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

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

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

آموزش JavaScript ES6 جاوا اسکریپت
فیلم آموزش JavaScript ES6 جاوا اسکریپت در فرادرس
کلیک کنید

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

a ^ b

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

let a = ۵۰;   // ۰۰۱۱۰۰۱۰
let b = ۱۰۰;  // ۰۱۱۰۰۱۰۰

let result = a ^ b;  // ۰۱۰۱۰۱۱۰

console.log(result); // ۸۶

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

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

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

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

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

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

a << b

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

let a = ۵۰;   // ۰۰۱۱۰۰۱۰
let b = ۲;

let result = a << b;  // ۱۱۰۰۱۰۰۰

console.log(result); // ۲۰۰

در مثال داده شده بالا، عملگر شیفت به چپ مقدار باینری ۰۰۱۱۰۰۱۰ (معادل اعشاری ۵۰ ) را دو مکان به سمت چپ منتقل می‌کند. نتیجه این جابه‌جایی صورت گرفته مقدار باینری ۱۱۰۰۱۰۰۰ است که با مقدار اعشاری ۲۰۰ مطابقت دارد. تکنیک شیفت یا جابه‌جایی بیت می‌تواند در سناریوهای مختلف برنامه نویسی بسیار ارزشمند باشد.

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

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

a >> b

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

let a = -۵۰;   // ۱۱۰۰۱۱۱۰
let b = ۲;

let result = a >> b;  // ۱۱۱۱۰۰۱۱

console.log(result); // -۱۳

در مثال ارائه شده، عملگر شیفت به سمت راست، مقدار اعشاری -۵۰ (دودویی: ۱۱۰۰۱۱۱۰ ) را دو موقعیت به سمت راست انتقال می‌دهد که درنهایت مقدار اعشاری -۱۳ را بازگردانی می‌کند که در مبنای باینری برابر با ۱۱۱۱۰۰۱۱ است.

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

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

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

a >>> b

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

let a = -۵;   // ۱۱۱۱۱۱۱۱ ۱۱۱۱۱۱۱۱ ۱۱۱۱۱۱۱۱ ۱۱۱۱۱۰۱۱
let b = ۲;

let result = a >>> b;  // ۰۰۱۱۱۱۱۱ ۱۱۱۱۱۱۱۱ ۱۱۱۱۱۱۱۱ ۱۱۱۱۱۱۱۰

console.log(result); // ۱۰۷۳۷۴۱۸۲۲

در مثال بالا، عملگر بدون علامت شیفت به سمت راست، نمایش باینری را دو مکان به سمت راست منتقل خواهد کرد که در  نتیجه  آن علامت عدد حذف شده و مقدار اعشاری ۱۰۷۳۷۴۱۸۲۲ به دست خواهد آمد.

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

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

آموزش رایگان جاوا اسکریپت JavaScript – سریع و آسان در ۱۵۰ دقیقه
فیلم آموزش رایگان جاوا اسکریپت JavaScript – سریع و آسان در ۱۵۰ دقیقه در فرادرس
کلیک کنید

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

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

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

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

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

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

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

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

سخن پایانی

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

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

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