جاوا اسکریپت – اپراتورها (Operators)

عملگر چیست ؟

بیایید یک عبارت ساده را در نظر بگیریم: 4 + 5 برابر با 9 است. در اینجا 4 و 5 عملوندها (operands) نامیده می‌شوند و ‘+’ عملگر (operator) نامیده می‌شود. جاوا اسکریپت انواع زیر از عملگرها را پشتیبانی می‌کند.

  • عملگرهای حسابی (Arithmetic Operators)
  • عملگرهای مقایسه‌ای (Comparison Operators)
  • عملگرهای منطقی (Logical)
  • عملگرهای اختصاص (Assignment Operators)
  • عملگرهای شرطی (Conditional Operators)

بیایید به طور تک‌تک بررسی کنیم.

عملگرهای حسابی (Arithmetic Operators)

جاوااسکریپت از عملگرهای حسابی زیر پشتیبانی می‌کند: فرض کنید متغیر A مقدار 10 را نگهدارد و متغیر B مقدار 20 را دارد، در این صورت:
  • + (جمع) دو متغیر را جمع می‌کند. مثال: A + B مقدار 30 را خواهد داد.
  • – (تفریق) مقدار دومین متغیر را از اولین متغیر کم می‌کند. مثال: A – B مقدار -10 را خواهد داد.
  • * (ضرب) هر دو متغیر را در هم ضرب می‌کند. مثال: A * B مقدار 200 را خواهد داد.
  • / (تقسیم) صورت را توسط مخرج تقسیم می‌کند. مثال: B / A مقدار 2 را خواهد داد.
  • % (ماژولوس) باقی‌مانده تقسیم صحیح را نشان می‌دهد. مثال: B % A مقدار 0 را خواهد داد.
  • ++ (افزایش) مقدار عددی را یک واحد افزایش می‌دهد. مثال: A++ مقدار 11 را خواهد داد.
  • — (کاهش) مقدار عددی را یک واحد کاهش می‌دهد. مثال: A– مقدار 9 را خواهد داد.
توجه: عملگر جمع (+) برای عددی و رشته‌ای هم کار می‌کند. به عنوان مثال “a” + 10 مقدار “a10” را خواهد داد. مثال کد زیر نشان می‌دهد که چگونه از عملگرهای حسابی در جاوا اسکریپت استفاده می‌شود:
<html>
   <body>
   
      <script type = "text/javascript">
         <!--
            var a = 33;
            var b = 10;
            var c = "Test";
            var linebreak = "<br />";
         
            document.write("a + b = ");
            result = a + b;
            document.write(result);
            document.write(linebreak);
         
            document.write("a - b = ");
            result = a - b;
            document.write(result);
            document.write(linebreak);
         
            document.write("a / b = ");
            result = a / b;
            document.write(result);
            document.write(linebreak);
         
            document.write("a % b = ");
            result = a % b;
            document.write(result);
            document.write(linebreak);
         
            document.write("a + b + c = ");
            result = a + b + c;
            document.write(result);
            document.write(linebreak);
         
            a = ++a;
            document.write("++a = ");
            result = ++a;
            document.write(result);
            document.write(linebreak);
         
            b = --b;
            document.write("--b = ");
            result = --b;
            document.write(result);
            document.write(linebreak);
         //-->
      </script>
      
      متغیرها را با مقادیر مختلف تنظیم کنید و سپس امتحان کنید...
   </body>
</html>
خروجی :
a + b = 43
a - b = 23
a / b = 3.3
a % b = 3
a + b + c = 43Test
++a = 35
--b = 8
متغیرها را با مقادیر مختلف تنظیم کنید و سپس امتحان کنید...

عملگرهای مقایسه‌ای (Comparison Operators)

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

فرض کنید متغیر A مقدار ۱۰ و متغیر B مقدار ۲۰ را دارد، آنگاه:

  • == (برابر)
    بررسی می‌کند که آیا مقدار دو متغیر برابر است یا خیر، اگر بله، شرط درست می‌شود.
    مثال: (A == B) درست نیست.
  • != (نابرابر)
    بررسی می‌کند که آیا مقدار دو متغیر برابر است یا خیر، اگر مقادیر برابر نباشند، شرط درست می‌شود.
    مثال: (A != B) درست است.
  • <(بزرگتر از)
    بررسی می‌کند که مقدار متغیر سمت چپ از مقدار متغیر سمت راست بزرگتر است یا خیر، اگر بله، شرط درست می‌شود.
    مثال: (A > B) درست نیست.
  • >(کوچکتر از)
    بررسی می‌کند که مقدار متغیر سمت چپ از مقدار متغیر سمت راست کوچکتر است یا خیر، اگر بله، شرط درست می‌شود.
    مثال: (A < B) درست است.
  • =< (بزرگتر مساوی با)
    بررسی می‌کند که مقدار متغیر سمت چپ بزرگتر مساوی مقدار متغیر سمت راست است یا خیر، اگر بله، شرط درست می‌شود.
    مثال: (A >= B) درست نیست.
  • => (کوچکتر مساوی با)
    بررسی می‌کند که مقدار متغیر سمت چپ کوچکتر مساوی مقدار متغیر سمت راست است یا خیر، اگر بله، شرط درست می‌شود.
    مثال: (A <= B) درست است.

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

<html>
   <body>  
      <script type = "text/javascript">
         <!--
            var a = 10;
            var b = 20;
            var linebreak = "<br />";
      
            document.write("(a == b) => ");
            result = (a == b);
            document.write(result);
            document.write(linebreak);
         
            document.write("(a < b) => ");
            result = (a < b);
            document.write(result);
            document.write(linebreak);
         
            document.write("(a > b) => ");
            result = (a > b);
            document.write(result);
            document.write(linebreak);
         
            document.write("(a != b) => ");
            result = (a != b);
            document.write(result);
            document.write(linebreak);
         
            document.write("(a >= b) => ");
            result = (a >= b);
            document.write(result);
            document.write(linebreak);
         
            document.write("(a <= b) => ");
            result = (a <= b);
            document.write(result);
            document.write(linebreak);
         //-->
      </script>      
      متغیرها را با مقادیر مختلف تنظیم کنید و عملگرهای مختلف را امتحان کنید...
   </body>
</html>

خروجی:

(a == b) => false
(a < b) => true
(a > b) => false
(a != b) => true
(a >= b) => false
(a <= b) => true
متغیرها را با مقادیر مختلف تنظیم کنید و عملگرهای مختلف را امتحان کنید...

عملگرهای منطقی (Logical)

جاوا اسکریپت از عملگرهای منطقی زیر پشتیبانی می‌کند: فرض کنید متغیر A مقدار ۱۰ و متغیر B مقدار ۲۰ را دارد، آنگاه:
  • && (و منطقی)
    اگر هر دو متغیر غیر صفر باشند، شرط درست می‌شود.
    مثال: (A && B) درست است.

  • || (یا منطقی)
    اگر هر یک از دو متغیر غیر صفر باشند، شرط درست می‌شود.
    مثال: (A || B) درست است.

  • ! (نه منطقی)
    وضعیت منطقی متغیر خود را معکوس می‌کند. اگر یک شرط درست باشد، عملگر نه منطقی آن را به غلط تبدیل می‌کند.
    مثال: ! (A && B) غلط است.

مثال کد زیر نشان می‌دهد که چگونه از عملگرهای منطقی در جاوا اسکریپت استفاده می‌شود:
<html>
   <body>   
      <script type = "text/javascript">
         <!--
            var a = true;
            var b = false;
            var linebreak = "<br />";
      
            document.write("(a && b) => ");
            result = (a && b);
            document.write(result);
            document.write(linebreak);
         
            document.write("(a || b) => ");
            result = (a || b);
            document.write(result);
            document.write(linebreak);
         
            document.write("!(a && b) => ");
            result = (!(a && b));
            document.write(result);
            document.write(linebreak);
         //-->
      </script>      
      <p>متغیرها را با مقادیر مختلف تنظیم کنید و عملگرهای مختلف را امتحان کنید...</p>
   </body>
</html>
خروجی :
(a && b) => false
(a || b) => true
!(a && b) => true
متغیرها را با مقادیر مختلف تنظیم کنید و عملگرهای مختلف را امتحان کنید...

عملگرهای بیتی جاوااسکریپت (Bitwise Operators)

جاوااسکریپت از عملگرهای بیتی زیر پشتیبانی می‌کند: فرض کنید متغیر A مقدار ۲ و متغیر B مقدار ۳ را دارد، آنگاه:
  • & (AND بیتی) یک عملیات AND شرطی روی هر بیت از آرگومان‌های عدد صحیح خود انجام می‌دهد. مثال: (A & B) برابر با ۲ است.

  • | (OR بیتی) یک عملیات OR شرطی روی هر بیت از آرگومان‌های عدد صحیح خود انجام می‌دهد. مثال: (A | B) برابر با ۳ است.

  • ^ (XOR بیتی) یک عملیات XOR شرطی انحصاری روی هر بیت از آرگومان‌های عدد صحیح خود انجام می‌دهد. انحصاری XOR به معنای این است که یا اپراند یک درست است یا اپراند دو درست است، اما هر دو درست نیستند. مثال: (A ^ B) برابر با ۱ است.

  • ~ (بیتی Not) این یک عملگر یکانی است و با معکوس کردن همه بیت‌ها در اپراند عمل می‌کند. مثال: (~B) برابر با -۴ است.

  • << (شیفت چپ) تمام بیت‌ها را در اپراند اول به چپ تعداد مشخصی از جایگاه‌ها حرکت می‌دهد. بیت‌های جدید با صفرها پر می‌شوند. شیفت دادن یک مقدار به چپ توسط یک جایگاه معادل ضرب آن با ۲ است، شیفت دو جایگاه معادل ضرب آن با ۴ است، و غیره. مثال: (A << 1) برابر با ۴ است.

  • (شیفت راست) عملگر شیفت باینری به راست. مقدار اپراند سمت چپ به تعداد بیت‌های مشخص شده توسط اپراند سمت راست حرکت می‌کند. مثال: (A >> 1) برابر با ۱ است.

  • (شیفت راست با صفر) این عملگر مانند عملگر >> است، به جز این که بیت‌هایی که به سمت چپ شیفت داده می‌شوند همیشه صفر هستند. مثال: (A >>> 1) برابر با ۱ است.

مثال برای استفاده از عملگرهای بیتی در جاوااسکریپت، کد زیر را امتحان کنید:
<html>
   <body>   
      <script type = "text/javascript">
         <!--
            var a = 2; // نمایش بیتی ۱۰
            var b = 3; // نمایش بیتی ۱۱
            var linebreak = "<br />";
         
            document.write("(a & b) => ");
            result = (a & b);
            document.write(result);
            document.write(linebreak);
         
            document.write("(a | b) => ");
            result = (a | b);
            document.write(result);
            document.write(linebreak);
         
            document.write("(a ^ b) => ");
            result = (a ^ b);
            document.write(result);
            document.write(linebreak);
         
            document.write("(~b) => ");
            result = (~b);
            document.write(result);
            document.write(linebreak);
         
            document.write("(a << b) => ");
            result = (a << b);
            document.write(result);
            document.write(linebreak);
         
            document.write("(a >> b) => ");
            result = (a >> b);
            document.write(result);
            document.write(linebreak);
         //-->
      </script>      
      <p>متغیرها را با مقادیر مختلف تنظیم کنید و عملگرهای مختلف را امتحان کنید...</p>
   </body>
</html>
خروجی:
(a & b) => 2
(a | b) => 3
(a ^ b) => 1
(~b) => -4
(a << b) => 16
(a >> b) => 0
متغیرها را با مقادیر مختلف تنظیم کنید و عملگرهای مختلف را امتحان کنید...

عملگرهای اختصاص (Assignment Operators)

عملگرهای اختصاصی جاوااسکریپت از عملگرهای اختصاصی زیر پشتیبانی می‌کند: = (اختصاص ساده) مقادیر را از متغیر سمت راست به متغیر سمت چپ اختصاص می‌دهد. مثال: C = A + B مقدار A + B را به C اختصاص می‌دهد.
  • += (اضافه کردن و اختصاص) مقدار متغیر سمت راست را به متغیر سمت چپ اضافه کرده و نتیجه را به متغیر سمت چپ اختصاص می‌دهد. مثال: C += A معادل C = C + A است.

  • -= (کم کردن و اختصاص) مقدار متغیر سمت راست را از متغیر سمت چپ کم می‌کند و نتیجه را به متغیر سمت چپ اختصاص می‌دهد. مثال: C -= A معادل C = C – A است.

  • *= (ضرب و اختصاص) مقدار متغیر سمت راست را با متغیر سمت چپ ضرب می‌کند و نتیجه را به متغیر سمت چپ اختصاص می‌دهد. مثال: C *= A معادل C = C * A است.

  • /= (تقسیم و اختصاص) مقدار متغیر سمت چپ را بر متغیر سمت راست تقسیم می‌کند و نتیجه را به متغیر سمت چپ اختصاص می‌دهد. مثال: C /= A معادل C = C / A است.

  • %= (ماژول و اختصاص) از دو متغیر ماژول استفاده کرده و نتیجه را به متغیر سمت چپ اختصاص می‌دهد. مثال: C %= A معادل C = C % A است.

توجه: همان منطق برای عملگرهای بیتی صدق می‌کند، بنابراین آنها می‌توانند به شکل <<= ، >>= ، >>= ، &= ، |= و ^= باشند. مثال برای پیاده‌سازی عملگر اختصاص در جاوااسکریپت، کد زیر را امتحان کنید:
<html>
   <body>   
      <script type = "text/javascript">
         <!--
            var a = 33;
            var b = 10;
            var linebreak = "<br />";
         
            document.write("مقدار a => (a = b) => ");
            result = (a = b);
            document.write(result);
            document.write(linebreak);
         
            document.write("مقدار a => (a += b) => ");
            result = (a += b);
            document.write(result);
            document.write(linebreak);
         
            document.write("مقدار a => (a -= b) => ");
            result = (a -= b);
            document.write(result);
            document.write(linebreak);
         
            document.write("مقدار a => (a *= b) => ");
            result = (a *= b);
            document.write(result);
            document.write(linebreak);
         
            document.write("مقدار a => (a /= b) => ");
            result = (a /= b);
            document.write(result);
            document.write(linebreak);
         
            document.write("مقدار a => (a %= b) => ");
            result = (a %= b);
            document.write(result);
            document.write(linebreak);
         //-->
      </script>      
      <p>متغیرها را با مقادیر مختلف تنظیم کنید و عملگرهای مختلف را امتحان کنید...</p>
   </body>
</html>
خروجی:
مقدار a => (a = b) => 10
مقدار a => (a += b) => 20 
مقدار a => (a -= b) => 10 
مقدار a => (a *= b) => 100 
مقدار a => (a /= b) => 10
مقدار a => (a %= b) => 0
متغیرها را با مقادیر مختلف تنظیم کنید و عملگرهای مختلف را امتحان کنید...

اپراتورهای دیگر

در اینجا دو اپراتور مفید در جاوااسکریپت را بررسی می‌کنیم: اپراتور شرطی (? 🙂 و اپراتور typeof. اپراتور شرطی (? 🙂 اپراتور شرطی ابتدا یک عبارت را برای مقدار درست یا غلط ارزیابی می‌کند، سپس بسته به نتیجه ارزیابی، یکی از دو عبارت داده شده را اجرا می‌کند. برای درک اینکه اپراتور شرطی چگونه کار می‌کند، کد زیر را امتحان کنید:
<html>
   <body>   
      <script type = "text/javascript">
         <!--
            var a = 10;
            var b = 20;
            var linebreak = "<br />";
         
            document.write ("((a > b) ? 100 : 200) => ");
            result = (a > b) ? 100 : 200;
            document.write(result);
            document.write(linebreak);
         
            document.write ("((a < b) ? 100 : 200) => ");
            result = (a < b) ? 100 : 200;
            document.write(result);
            document.write(linebreak);
         //-->
      </script>      
      <p>مقادیر متغیرها را تغییر داده و عملگرهای مختلف را امتحان کنید...</p>
   </body>
</html>
خروجی:
((a > b) ? 100 : 200) => 200 
((a < b) ? 100 : 200) => 100
مقادیر متغیرها را تغییر داده و عملگرهای مختلف را امتحان کنید...
اپراتور typeof اپراتور typeof یک اپراتور یکانی است که می‌تواند هر نوعی باشد. مقدار آن یک رشته است که نوع دادهٔ عملان را نشان می‌دهد. اپراتور typeof به “number”، “string” یا “boolean” مقدار می‌دهد اگر عملان آن یک مقدار عددی، رشته‌ای یا منطقی باشد و بر اساس ارزیابی، مقدار true یا false برمی‌گرداند. در زیر لیستی از مقادیر بازگشتی برای اپراتور typeof آمده است. نوع رشته بازگشتی توسط typeof : Number => “number”
String => “string”
Boolean => “boolean”
Object => “object”
Function => “function”
Undefined => “undefined”
Null => “object”
مثال کد زیر نحوه اجرای اپراتور typeof را نشان می‌دهد:
<html>
   <body>      
      <script type = "text/javascript">
         <!--
            var a = 10;
            var b = "String";
            var linebreak = "<br />";
         
            result = (typeof b == "string" ? "B is String" : "B is Numeric");
            document.write("Result => ");
            document.write(result);
            document.write(linebreak);
         
            result = (typeof a == "string" ? "A is String" : "A is Numeric");
            document.write("Result => ");
            document.write(result);
            document.write(linebreak);
         //-->
      </script>      
      <p>مقادیر متغیرها را تغییر داده و عملگرهای مختلف را امتحان کنید...</p>
   </body>
</html>
خروجی :

Result => B is String 
Result => A is Numeric
مقادیر متغیرها را تغییر داده و عملگرهای مختلف را امتحان کنید...

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.