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

برای انجام عملیاتی بر روی یک یا چند مقدار میتوان از عملگر ها استفاده کرد. برای مثال عمل جمع یک عملیات ریاضی است که با استفاده از عملگر + در زبان جاوا اسکریپت انجام میشود.


یک عملگر چیست؟

بیایید یک عبارت ساده را در نظر بگیریم. حاصل عبارت  5 + 4 برابر با مقدار 9 است. در اینجا مقادیر 4 و 5 عملوند نام دارند و '+' عملگر نامیده میشود. JavaScript از انواع عملگر های زیر پشتیبانی میکند :

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

بیایید یک به یک نگاهی به همه ی عملگر ها بیندازیم :


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

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

فرض کنید متغیر 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)

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

فرض کنید متغیر A دارای مقدار 10 و متغیر B دارای مقدار 20 باشد، در این صورت :

== (مساوی) - چک میکند که مقدار دو عملوند با هم برابر است یا نه، اگر برابر باشند حاصل true میشود. در اینجا حاصل (A == B) برابر با true نیست.

=! (نامساوی) - چک میکند که مقدار دو عملوند با هم برابر است یا نه، اگر برابر نباشند حاصل true میشود. در اینجا حاصل (A != B) برابر با true است.

< (بزرگتر از) - چک میکند که مقدار عملوند سمت چپ بزرگتر از عملوند سمت راست است یا نه، اگر بزرگتر باشد حاصل true میشود. در اینجا حاصل (A > B) برابر با true نیست.

> (کوچکتر از) - چک میکند که مقدار عملوند سمت چپ کوچکتر از عملوند سمت راست است یا نه، اگر کوچکتر باشد حاصل true میشود. در اینجا حاصل (A < B) برابر با true است.

>= (بزرگتر یا مساوی) - چک میکند که مقدار عملوند سمت چپ بزرگتر و یا مساوی عملوند سمت راست است یا نه، اگر بزرگتر و یا مساوی باشد حاصل true میشود. در اینجا حاصل (A >= B) برابر با true نیست.

<= (کوچکتر یا مساوی)  -  چک میکند که مقدار عملوند سمت چپ کوچکتر و یا مساوی عملوند سمت راست است یا نه ، اگر کوچکتر و یا مساوی باشد حاصل true میشود. در اینجا حاصل (A <= B) برابر با true است. 

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

<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 دارای مقدار 10 و متغیر B دارای مقدار 20 باشد، در این صورت :

&& (AND منطقی) - اگر هر دو عملوند عددی غیر صفر باشند، در این صورت حاصل شرط true میشود. در اینجا حاصل (A && B) برابر با true است.

|| (OR منطقی) - اگر هر دو و یا یکی از دو عملوند عددی غیر صفر باشد، در این صورت حاصل شرط true میشود. در اینجا حاصل (A || B) برابر با true است.

! (NOT منطقی) - وضعیت منطقی عملوند خود را معکوس میکند. اگر حاصل یک شرط true باشد، سپس عملگر NOT منطقی مقدار false را بر میگرداند. در اینجا حاصل ! (A && B) برابر با false است.

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

<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>
      
   </body>
</html>

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

(a && b) => false 
(a || b) => true 
!(a && b) => true

نکته : دسته ای از عملگر های منطقی عملگر های بیتی هستند : & ، | ، ^ ، ~ ، << ، >> ، >>> . این نوع عملگر ها بر روی بیت های یک عدد کار میکنند. به دلیل اینکه این گونه عملگر ها در موارد خاصی استفاده میشوند از بیان آنها صرف نظر کردیم.


عملگر های انتساب (Assignment)

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

= (انتساب ساده) - حاصل سمت راست عملوند را به سمت چپ عملوند انتساب میدهد. برای مثال عبارت 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("Value of a => (a = b) => ");
            result = (a = b);
            document.write(result);
            document.write(linebreak);
         
            document.write("Value of a => (a += b) => ");
            result = (a += b);
            document.write(result);
            document.write(linebreak);
         
            document.write("Value of a => (a -= b) => ");
            result = (a -= b);
            document.write(result);
            document.write(linebreak);
         
            document.write("Value of a => (a *= b) => ");
            result = (a *= b);
            document.write(result);
            document.write(linebreak);
         
            document.write("Value of a => (a /= b) => ");
            result = (a /= b);
            document.write(result);
            document.write(linebreak);
         
            document.write("Value of a => (a %= b) => ");
            result = (a %= b);
            document.write(result);
            document.write(linebreak);
        
      </script>
     
   </body>
</html>

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

Value of a => (a = b) => 10
Value of a => (a += b) => 20 
Value of a => (a -= b) => 10 
Value of a => (a *= b) => 100 
Value of a => (a /= b) => 10
Value of a => (a %= b) => 0

عملگر های متفرقه

ما در اینجا به توضیح دو عملگری خواهیم پرداخت که تا حدودی در جاوا اسکریپت مفیدند : عملگر شرطی (: ?) و عملگر typeof .

عملگر شرطی (: ?)

یک عملگر شرطی در ابتدا یک عبارت را برای ture و یا false بودن آن ارزیابی کرده و سپس یکی از دو عبارت اجرایی داده شده را بسته به نتیجه ی ارزیابی اجرا میکند :

: ? (شرطی) -   "اگر شرط صحیح نباشد عبارت Y" : "اگر شرط صحیح باشد عبارت X" ? شرط

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

<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>
      
   </body>
</html>

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

((a > b) ? 100 : 200) => 200 
((a < b) ? 100 : 200) => 100


عملگر typeof

عملگر typeof یک عملگر یگانی است که قبل از تک عملوند خود قرار میگیرد. این عملوند میتواند از هر نوعی باشد. مقداری که عملگر  typeof برمیگرداند یک مقدار رشته ایست که داده نوع عملوند را مشخص میکند.

در زیر لیستی از مقادیر برگشتی برای عملگر 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>
         
   </body>
</html>

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

Result => B is String 
Result => A is Numeric

 

منتشر شده در ۱۴ مهر ۱۳۹۶ حمید رضا ملکی ۵۷۹۰ بازدید
دیدگاه ها
ali rafie پنجشنبه ۶ تیر ۱۳۹۸

ببخشید رادیکال را چطور به کار ببریم

حمید رضا ملکی پنجشنبه ۶ تیر ۱۳۹۸

سلام. از متد sqrt استفاده کنید :

Math.sqrt(9)

 

ramin hoseinzade جمعه ۱۲ بهمن ۱۳۹۷

سلام تو مثال پایین می خوام مجموع اعداد یعنی num11 + num12 + num14 + num15 + num16 از ۶۰ بیشتر نشه از num11 بررسی کنه تا جایی که برسه به ۶۰ مثلا اگه num11=۳۵ و num12=۱۵ و num14=۱۵ و num15=۲۰ و num16=۳۰ بود تو فرمول زیر num14 بشه ۱۰ و num15 بشه ۰ و num16 بشه ۰ چون num11 + num12 + num14 + num15 + num16 از ۶۰ بیشتر نشه فرمول: num17 = ((1 - (num11 / 100)) * (1 - (num12 / 100)) * (1 - (num14 / 100)) * (1 - (num15 / 100)) * (1 - (num16 / 100))); تو جاوا اسکریپت چجوری بنویسم؟

حمید رضا ملکی شنبه ۱۳ بهمن ۱۳۹۷
سلام.عدد اول را با دوم جمع کنید و بریزید در متغیری به نام sum. بعد یه if بزارید بررسی کنید که این مجموع از 60 بیشتر نشه. اگه نشده باشه sum را با عدد بعدی جمع کنید و بریزید داخل خود sum. اگر هم که این جمع بیشتر از 60 شده باشه کافیه در قسمت else بقیه متغیر ها را صفر کنید.
محمد پنجشنبه ۲۴ آبان ۱۳۹۷

سلام استاد متغیر result در مثال های بالا کجا تعریف شده؟ و اگر متغیر نیست ماهیتش چی هست. ممنون

حمید رضا ملکی پنجشنبه ۲۴ آبان ۱۳۹۷

سلام. در جاوا اسکریپت وقتی متغیری را بدون اعلان مقدار دهی میکنید ، آن متغیر به عنوان یک متغیر global و یا سراسری شناخته میشود. و در تمام توابع قابل استفاده است. در حالی که وقتی از کلمه var و یا let استفاده میکنید، متغیر محدود به همان قسمتی هست که در آن تعریف شده است. در مثال های بالا result متغیر سراسری است.

سعید شنبه ۲۷ مرداد ۱۳۹۷

باز سلام... در مثال های این صفحه برای تعریف متغیر ها از کلمه کلید var استفاده شده آیا این درست است یا باید حتماً از let استفاده کرد؟؟؟؟ من گیج شدم!!!! o-O

حمید رضا ملکی شنبه ۲۷ مرداد ۱۳۹۷

شما میتوانید از هرکدام که بخواهید استفاده کنید. تفاوتی ندارد. در نسخه های جدید تر جاوا اسکریپت از let استفاده میشود. ولی همچنان اکثر برنامه نویس ها از var استفاده میکنند و تمام مرورگر ها مدرن از هر دو پشتیبانی میکنند.

برای ارسال دیدگاه لازم است ابتدا وارد سایت شوید