عملگرها در جاوا اسکریپت – انواع + هر آنچه باید بدانید
![عملگرها در جاوا اسکریپت – انواع + هر آنچه باید بدانید](https://blog.faradars.org/wp-content/uploads/2022/10/Operators-in-js.jpg)
«عملگرها» (Operators) جزئی جداناپذیر از زبانهای برنامه نویسی هستند و میتوانند عملیاتی را روی مقدار یا «عملوند» (Operand) خاصی انجام دهند. عملگرها در جاوا اسکریپت و در سایر زبانهای برنامه نویسی برای انجام محاسبات ریاضی و منطقی خاص بر روی عملوندها استفاده میشوند. در جاوا اسکریپت، عملگرها برای مقایسه مقادیر، انجام عملیات حسابی و غیره به کار میروند. در این مطلب آموزشی از مجله فرادرس قرار است در رابطه با انواع عملگرها در جاوا اسکریپت توضیحاتی همراه با مثالهای مختلف برای درک آسان انواع عملگرهای رایج ارائه شود.
عملگر چیست؟
در برنامه نویسی کامپیوتری، عملگرها اجزایی هستند که در زبانهای برنامه نویسی تعریف شدهاند. این اجزا به طور کلی مانند توابع در برنامه نویسی عمل میکنند، اما از نظر نحوی یا معنایی متفاوت هستند. در هر زبان برنامه نویسی معمولاً مجموعهای از عملگرهای داخلی تعریف شدهاند و در برخی موارد، این زبانها به کاربران اجازه میدهند تا معانی جدیدی به عملگرهای موجود اضافه کنند یا حتی عملگرهای کاملاً جدیدی را تعریف کنند.
به بیانی سادهتر، عملگر نمادی است که برای انجام عملیات روی عملوندها استفاده میشود. عملیات میتوانند ریاضی یا منطقی باشند. در جاوا اسکریپت انواع مختلفی از عملگرها برای انجام عملیات مختلف وجود دارد که در ادامه این بخش همه آنها مورد بررسی قرار گرفتهاند.
انواع عملگرها در جاوا اسکریپت
عملگرها در جاوا اسکریپت در دستههای مختلفی قرار میگیرند که مهمترین آنها شامل موارد زیر هستند:
- «عملگرهای حسابی» (Arithmetic Operators)
- «عملگرهای مقایسه» (Arithmetic Operators)
- «عملگرهای منطقی» (Logical Operators)
- «عملگرهای انتسابی» (Assignment Operators)
- «عملگرهای سهتایی» (Ternary Operators)
- «عملگر حذف» (Delete Operators)
- و سایر موارد
عملگرهای حسابی در جاوا اسکریپت
یکی از شناختهشدهترین عملگرها در جاوا اسکریپت، عملگرهای حسابی هستند. عملگرهای حسابی جاوا اسکریپت، عملگرهایی هستند که روی مقادیر عددی عملیات انجام میدهند و یک مقدار عددی را بازمیگردانند. عملگرهای حسابی زیادی در جاوا اسکریپت وجود دارند. در زیر انواع عملگر حسابی جاوا اسکریپت توضیح داده شده است.
![عملگر حسابی در جاوا اسکریپت](https://blog.faradars.org/wp-content/uploads/2022/10/js-calc-operators.jpg)
1. عملگر جمع (+) در جاوا اسکریپت: این عملگر در جاوا اسکریپت دو عملوند عددی را میگیرد و مجموع عددی آنها را بازمیگرداند. همچنین دو رشته یا عدد را به هم متصل میکند. «سینتکس» (Syntax) آن به صورت زیر است:
1a + b
2. عملگر تفریق (-) در جاوا اسکریپت: عملگر تفریق، اختلاف دو عملوند را به صورت مقدار عددی بهعنوان خروجی بازمیگرداند. سینتکس آن به صورت زیر است:
1a - b
3. عملگر ضرب (*) در جاوا اسکریپت: ضرب (*) دو عملوند را در همدیگر ضرب میکند و حاصل را به عنوان خروجی بازمیگرداند. سینتکس آن به صورت زیر است:
1a * b
4. عملگر تقسیم (/) در جاوا اسکریپت: این عملگر در جاوا اسکریپت دو عملوند را گرفته و عمل تقسیم را برای آنها انجام میدهد. برای این عملگر، عملوند سمت راست «مقسومعلیه» (Divisor) و عملوند سمت چپ «مقسوم» (Dividend) است.
1a / b
5. عملگر باقیمانده (%) در جاوا اسکریپت: عملگر باقیمانده، مقدار باقیمانده حاصل از تقسیم دو عدد را بازمیگرداند. قطعه کد زیر مربوط به این عملگر در جاوا اسکریپت است.
1a % b
6. عملگر توان (**) در جاوا اسکریپت: عملگر توان، عملوندی را به توان عملوندی دیگر میرساند. قطعه کد زیر مربوط به عملگر توان در جاوا اسکریپت است که در آن عملوند سمت راست بهعنوان توان استفاده میشود.
1a % b
مثالی از عملگرهای حسابی جاوا اسکریپت:
1var x = 5, y = 10;
2
3var z = x + y;
4
5z = y - x;
6
7z = x * y;
8
9z = y / x;
10
11z = x % 2;
12
13z = y ** x;
خروجی عملیات فوق در ادامه آمده است:
15 5 50 2 0 100000
عملگرهای افزایش و کاهش در جاوا اسکریپت
عملگرهای افزایش و کاهش در جاوا اسکریپت نوعی دیگر از عملگرهای حسابی هستند که شرح و مثال مربوط به آنها به صورت زیر است:
عملگر افزایش (++) در جاوا اسکریپت
این عملگر در جاوا اسکریپت، عملوند خود را افزایش میدهد (یکی به آن اضافه میکند) و مقداری را بازمیگرداند.
- اگر از عملگر به صورت پسوندی استفاده شود (مثلاً ++x)، این عملگر ابتدا متغیر x را برمیگرداند و بعد یک واحد به آن اضافه میکند.
- اگر عملگر به صورت پیشوندی استفاده شود (مثلاً x++)، ابتدا به متغیر x یک واحد اضافه میکند و بعد آن را برمیگرداند.
سینتکس عملگر افزایش در جاوا اسکریپت به صورت زیر است:
1a++ or ++a
عملگر کاهش (--) در جاوا اسکریپت
این عملگر از میان عملگرها در جاوا اسکریپت عملوند خود را کاهش میدهد (یکی از آن کم میکند) و مقداری را برمیگرداند.
- اگر از این علامت به صورت پسوندی استفاده شود، (مثلاً --x)، این عملگر ابتدا متغیر x را برمیگرداند و بعد یک واحد از آن کم میکند.
- اگر عملگر به صورت پیشوندی استفاده شود، (مثلاً x--)، ابتدا از متغیر x یک واحد کم میکند و بعد آن را برمیگرداند.
سینتکس عملگر کاهش در جاوا اسکریپت به صورت زیر است:
1a-- or --a
مثالی از عملگرهای کاهش و افزایش در جاوا اسکریپت در زیر آورده شده است.
1<!DOCTYPE html>
2<html>
3<body>
4 <h1>Demo: JavaScript ++ and -- Operators</h1>
5 <p>x = 5;</p>
6 <p id="p1">x++=</p>
7 <p id="p2">x=</p>
8 <p id="p3">++x=</p>
9 <p id="p4">x--=</p>
10 <p id="p5">x=</p>
11 <p id="p6">--x=</p>
12
13 <script>
14 var x = 5;
15
16 document.getElementById("p1").innerHTML += x++; //post increment
17 document.getElementById("p2").innerHTML += x; // value changes here
18
19 document.getElementById("p3").innerHTML += ++x; //pre increment & value changes here
20
21 document.getElementById("p4").innerHTML += x--; //post decrement
22 document.getElementById("p5").innerHTML += x; //value changes here
23
24 document.getElementById("p6").innerHTML += --x; //pre decrement and value changes here
25
26 </script>
27</body>
28</html>
خروجی به شکل زیر خواهد بود:
x = 5; x++=5 x=6 ++x=7 x--=7 x=6 --x=5
عملگرهای یکانی در جاوا اسکریپت
عملگرهای جاوا اسکریپت از نوع یکانی(یکین | Unary) ، یکی دیگر از عملگرهای مهمی هستند که کاربرد مختص به خودشان را دارند. انواع عملگرهای Unary عبارتاند از:
- Unary (-)
- Unary (+)
Unary (-): این عملگر در جاوا اسکریپت، بر روی عملوندی واحد عمل میکند و نفی عملوند را به عنوان خروجی بازمیگرداند. یعنی مقادیر مثبت را به منفی و مقادیر منفی را به مثبت تبدیل خواهد کرد. برای مثال اگر در عبارت Unary (x) مقدار متغیر برابر ٣ باشد، یعنی x=3 باشد، x- برابر با 3- میشود و برعکس. سینتکس این عملگر در جاوا اسکریپت به صورت زیر است:
1-a
مثالی از عملگر Unary (-):
1var a = 3;
2b = -a; gives b = -3, a = 3
3// Unary negation operator
4// can convert non-numbers
5// into a number
6var a = "3";
7b = -a; gives b = -3
Unary (+): این عملگر در جاوا اسکریپت برای تبدیل یک مقدار غیر عددی به مقدار عددی به کار گرفته میشود. این عملگر سریع ترین و بهترین روش برای تبدیل مقادیر غیر عددی به عدد است، زیرا هیچ عملیات اضافی را روی عدد انجام نمیدهد. سینتکس آن به صورت زیر است:
1+a
مثالی از عملگر Unary (+):
1+4 gives 4
2+'2' gives 2
3+true gives 1
4+false gives 0
5+null gives 0
عملگر انتسابی در جاوا اسکریپت
نوعی دیگر از انواع عملگرها در جاوا اسکریپت، «عملگر انتسابی» (Assignment operators) است. علامت عملگر انتسابی (=) است و مقدار عملوند سمت راست را به عملوند سمت چپ خود اختصاص میدهد. یعنی اگر a = b باشد، مقدار b را به a اختصاص دهد.
![انواع عملگر انتسابی در جاوا اسکریپت](https://blog.faradars.org/wp-content/uploads/2022/10/Assignment-Operators-in-JavaScript.jpg)
عملگر انتسابی ساده برای تخصیص مقداری به یک متغیر استفاده میشود. عملیات انتساب به مقدار اختصاص داده شده ارزیابی میشود. اعمال کردن عملگر انتساب بهمنظور اختصاص یک مقدار واحد به چندین متغیر یا مکان، امکانپذیر است و سینتکس آن در جاوا اسکریپت به صورت زیر خواهد بود:
1data=value
مثالی ساده از عملگر انتسابی در جاوا اسکریپت:
1// Lets take some variables
2x=10
3y=20
4x=y // Here, x is equal to 20
5y=x // Here, y is equal to 10
تعداد زیادی از عملگرهای انتسابی دیگر در جاوا اسکریپت وجود دارند که معرفی و شرح هرکدام در جدول و توضیحات زیر آمده است:
نام عملگر | نشانی اختصاری | نشانی اصلی و مفهوم عملگر |
عملگر انتسابی جمع | a+=b | a=a+b |
عملگر انتسابی تفریق | a-=b | a=a-b |
عملگر انتسابی ضرب | a*=b | a=a*b |
عملگر انتسابی تقسیم | a/=b | a=a/b |
عملگر انتسابی باقی مانده | a%=b | a=a%b |
عملگر انتسابی توان | a**=b | a=a**b |
عملگر انتسابی شیفت به چپ | a<<=b | a=a<<b |
عملگر انتسابی شیفت به راست | a>>=b | a=a>>b |
عملگر انتسابی AND | a&=b | a=a&b |
عملگر انتسابی OR | a|=b | a=a | b |
عملگر انتسابی XOR | a^=b | a=a^b |
1. عملگر انتسابی جمع
این عملگر مقدار عملوند سمت راست را به متغیر اضافه میکند و نتیجه را به متغیر اختصاص میدهد. نوع دو عملوند رفتار عملگر انتسابی جمع را تعیین میکند. اضافه کردن یا الحاق کردن با این عملگر در جاوا اسکریپت، امکان پذیر است. در این عملیات، از رشته هم میتوان به عنوان عملوند استفاده کرد. مثال زیر در رابطه با عملگر انتسابی در جاوا اسکریپت است:
1var x = 50;
2var x = x+3;
3OR
4var x += 3;
خروجی به صورت زیر خواهد بود:
53 53
2. عملگر انتسابی تفریق در جاوا اسکریپت
این عملگر مقدار عملوند سمت راست را از یک متغیر کم کرده و نتیجه را به همان متغیر اختصاص میدهد. مثال زیر این مفهوم را بیان میکند.
1var x = 50;
2var x = x - 5;
3OR
4var x -= 5;
خروجی به صورت زیر خواهد بود:
45<br>45
3. عملگر انتسابی ضرب در جاوا اسکریپت
این عملگر یک متغیر را در مقدار عملوند سمت راست ضرب میکند و نتیجه را به متغیر اختصاص میدهد. مثال زیر مربوط به این عملگر است:
1var x = 50;
2var x = x * 2;
3OR
4var x *= 2;
خروجی به صورت زیر خواهد بود:
100<br>100
4. عملگر انتسابی تقسیم در جاوا اسکریپت
این عملگر در جاوا اسکریپت، یک متغیر را بر مقدار عملوند سمت راست تقسیم میکند و نتیجه را به متغیر اختصاص میدهد. مثال زیر مربوط به این عملگر است:
1var x = 50;
2var x = x / 2;
3OR
4var x /= 2;
خروجی:
25<br>25
5. عملگر انتسابی باقیمانده
این عملگر یک متغیر را بر مقدار عملوند سمت راست تقسیم میکند و باقیمانده را به عنوان خروجی بازمیگرداند. مثال زیر مربوط به این عملگر است:
1let yoo=50;
2document.write(yoo%=10);
خروجی:
0
6. عملگر انتسابی توان در جاوا اسکریپت
این عملگر مقدار یک متغیر را به توان عملوند سمت میرساند. مثال زیر مربوط به این عملگر است:
1let yoo=2;
2const moo=2;
3// 2 raise to the power 2
4document.write(yoo**=moo);
خروجی:
4
7. عملگر انتسابی شیفت به چپ در جاوا اسکریپت
این عملگر بیتهای دودویی مقدار متغیر مربوطه را به تعداد تعیین شده به سمت چپ منتقل میکند و نتیجه را به متغیر اختصاص میدهد. مثال:
1var yoo=5; // 101
2document.write(yoo<<=2);// 20(In Binary 10100)
خروجی:
20
8. عملگر انتسابی شیفت به راست در جاوا اسکریپت
این عملگر در جاوا اسکریپت، بیتهای دودویی مقدار متغیر را به تعداد واحد تعیین شده به سمت راست منتقل میکند و نتیجه را به همان متغیر اختصاص میدهد. مثال:
1var yoo=5;
2
3document.write(yoo>>=2);
1
9. عملگر انتسابی AND در جاوا اکسریپت
این عملگر در جاوا اسکریپت از نمایش باینری هر دو عملوند استفاده میکند، یک عملیات AND بیتی روی آنها انجام میدهد و نتیجه را به متغیر اختصاص میدهد. مثال:
1var yoo=5;
2document.write(yoo&=2); // 000
خروجی:
0
10. عملگر انتسابی OR در جاوا اسکریپت
این عملگر از نمایش باینری هر دو عملوند استفاده میکند، عملیات OR را به صورت بیتی روی آنها انجام میدهد و نتیجه را به متغیر اختصاص میدهد. مثال:
1var yoo=5;
2// 7(In binary: 111)
3document.write(yoo|=2);
خروجی:
7
11. عملگر انتسابی Xor در جاوا اسکریپت
این عملگر نیز از نمایش دودویی هر دو عملوند استفاده میکند، یک عملیات XOR بیتی روی آنها انجام میدهد و نتیجه را به متغیر اختصاص میدهد. مثال:
1var yoo=5;
2document.write(yoo^=2); // 111
خروجی:
7
معرفی فیلم های آموزش جاوا اسکریپت
![دوره های آموزش جاوا اسکریپت فرادرس](https://blog.faradars.org/wp-content/uploads/2022/04/JavaScript-Courses-Faradars.jpg)
زبان برنامه نویسی جاوا اسکریپت به علت وجود بازار کار پررونق، وجود ابزار و چارچوبهای مختلف و همچنین کاربرد گستردهای که دارد، هماکنون اگر محبوبترین زبان برنامه نویسی نباشد، بدون شک یکی از محبوبترین آنها است. جاوا اسکریپت امروزه در بیشتر حوزههای فناوری، مخصوصاً وب و اینترنت کاربرد بسیار گستردهای دارد و روزبهروز نیز به این کاربردها افزوده میشود. همچنین جاوا اسکریپت پا را فراتر از وب و اینترنت گذشته است و امروزه در برنامه نویسی اپلیکیشن موبایل و دسکتاپ و همچنین، برنامه نویسی سمت سرور و سایر موارد کاربرد گستردهای دارد. با توجه به شرایطی که این زبان در حال حاضر دارد و همچنین نگرشها در مورد آینده این زبان، اینطور به نظر میرسد که یادگیری آن برای ورود به بازار کار امیدوار کنند است.
به دلیل اینکه جاوا اسکریپت متقاضیان یادگیری زیاد و همچنین کاربردهای فراوانی دارد، پلتفرم آموزشی فرادرس درصدد آن برآمده است که فیلمها و دورههای آموزشی جامع زیادی را برای این منظور تولید کند. فیلمهای آموزش جاوا اسکریپت در پلتفرم فرادرس به منظور آموزش کامل جنبههای این زبان تولید شدهاند و شامل مواردی مانند، آموزش جامع جاوا اسکریپت، آموزش مبتدی جاوا اسکریپت، آموزش انواع فریمورک جاوا اسکریپت، آموزش طراحی سایت با جاوا اسکریپت و سایر موارد هستند.
- برای مشاهده مجموعهی کامل فیلم های آموزشی جاوا اسکریپت فرادرس + اینجا کلیک کنید.
عملگرهای مقایسه ای در جاوا اسکریپت
این بخش از مقاله، مربوط به «عملگرهای مقایسهای» (Comparison Operators) و پیادهسازی آنها در جاوا اسکریپت است. عملگرهای مقایسهای در میان انواع عملگرها در جاوا اسکریپت، عمدتاً برای انجام عملیات منطقی که برابری یا عدم برابری بین مقادیر را تعیین میکنند، استفاده میشوند.
![عملگرهای مقایسه ای در جاوا اسکریپت](https://blog.faradars.org/wp-content/uploads/2022/10/op-in-js.jpg)
این عملگرها برای انجام محاسبات ریاضی و منطقی خاص روی عملوندها استفاده میشوند. جاوا اسکریپت مانند C ،C++ ،Java ،Python و زبانهای مختلف دیگر از عملیات مقایسه پشتیبانی میکند.
عملگرهای مقایسه در عبارات منطقی برای تعیین برابری یا تفاوت آنها در متغیرها یا مقادیر استفاده میشود. در زیر مثالی از عملگرهای مقایسهای آورده شده است.
1function gfg() {
2 let val1 = 5;
3 // Equality Operators
4 document.write(val1 == 5);
5 document.write("<br>");
6
7 // Relational Operators
8 document.write(val1 > 0);
9 }
10 gfg();
خروجی به صورت زیر خواهد بود:
true true
عملگرهای مقایسهای مختلفی وجود دارند که در جاوا اسکریپت پشتیبانی میشوند که در دو دسته زیر قرار میگیرند:
- عملگرهای برابری
- عملگرهای رابطهای
هر دو عملگر در بخش بعد از طریق مثالها مورد بحث واقع خواهند شد.
عملگرهای برابری در جاوا اسکریپت
در این بخش به شرح هر یک از انواع عملگرهای برابری در جاوا اسکریپت پرداخته شده است.
1. عملگر برابری در جاوا اسکریپت
این عملگر در جاوا اسکریپت، برای مقایسه برابری دو عملوند استفاده میشود. اگر برابر باشد، شرط درست است در غیر این صورت نادرست است. سینتکس آن به صورت زیر است:
1x == y
مثال 1: مثال زیر عملگر برابری را در جاوا اسکریپت نشان میدهد.
1// Illustration of (==) operator
2 let val1 = 5;
3 let val2 = '5';
4 // Checking of operands
5 console.log(val1 == 5);
6 console.log(val2 == 5);
7 console.log(val1 == val1);
8 // Check against null and boolean value
9 console.log(0 == false);
10 console.log(0 == null);
خروجی به صورت زیر خواهد بود:
> true > true > true > true > false
2. عملگر نابرابری در جاوا اسکریپت
عملگر نابرابری در جاوا اسکریپت برای مقایسه نابرابری دو عملوند استفاده میشود. اگر برابر باشد، شرط نادرست و در غیر این صورت درست است. سینتکس و مثال آن به صورت زیر خواهد بود:
1x != y
مثال:
1// Illustration of (!=) operator
2 let val1 = 5;
3 let val2 = '5';
4 // Checking of operands
5 console.log(val1 != 6);
6 console.log(val2 != '5');
7 console.log(val1 != val1);
8 // Check against null and boolean value
9 console.log(0 != false);
10 console.log(0 != null);
خروجی:
> true > false > false > false > true
3. عملگر برابری دقیق در جاوا اسکریپت
این عملگر در جاوا اسکریپت، برای مقایسه برابری دو عملوند هم از لحاظ مقدار و هم از لحاظ نوع استفاده میشود. . اگر مقدار و نوع هر دو عملوند برابر باشند، شرط درست و در غیر این صورت نادرست است. سینتکس عملگر برابری دقیق در جاوا اسکریپت به صورت زیر خواهد بود:
1x === y
مثال:
1// Illustration of (===) operator
2 let val1 = 5;
3 let val2 = '5';
4 // Checking of operands
5 console.log(val1 === 6);
6 console.log(val2 === '5');
7 console.log(val1 === val1);
8 // Check against null and boolean value
9 console.log(0 === false);
10 console.log(0 === null);
خروجی:
> false > true > true > false > false
4. عملگر نابرابری شدید در جاوا اسکریپت
این عملگر برای مقایسه نابرابری دو عملوند با نوع استفاده میشود. اگر مقدار و نوع نابرابر باشند، شرط درست و در غیر این صورت نادرست است. سینتکس آن به صورت زیر خواهد بود:
1x !== y
1// Illustration of (!==) operator
2let val1 = 5;
3let val2 = '5';
4// Checking of operands
5console.log(val1 !== 6);
6console.log(val2 !== '5');
7console.log(val1 !== val1);
8// Check against null and boolean value
9console.log(0 !== false);
10console.log(0 !== null);
خروجی آن به صورت زیر است:
> true > false > false > true > true
عملگرهای مقایسهای رابطهای در جاوا اسکریپت
نوعی دیگر از عملگرها در جاوا اسکریپت، عملگرهای رابطهای هستند که در ادامه هرکدام همراه با سینتکس و مثال شرح داده شده است.
1. عملگر مقایسه بزرگتری (<)
این عملگر برای بررسی اینکه آیا مقدار سمت چپ بزرگتر از مقدار سمت راست است یا خیر استفاده میشود. اگر مقدار بیشتر باشد، شرط درست و در غیر این صورت نادرست است. سینتکس آن به صورت زیر خواهد بود:
1x > y
مثال:
1// Illustration of (>) operator
2let val1 = 5;
3let val2 = "5";
4// Checking of operands
5console.log(val1 > 0);
6console.log(val2 > "10");
7console.log(val1 > "10");
8console.log(val2 > 0);
خروجی آن به صورت زیر است:
> true > true > false > true
2. عملگر بزرگتر مساوی در جاو اسکریپت (=<)
این عملگر برای بررسی اینکه آیا عملوند سمت چپ بزرگتر یا مساوی با عملوند سمت راست است یا خیر استفاده میشود. اگر مقدار بزرگتر یا مساوی باشد، شرط درست و در غیر این صورت نادرست است. سینتکس عملگر بزرگتر مساوی در جاوا اسکریپت به صورت زیر خواهد بود:
1x >= y
مثال:
1// Illustration of (>=) operator
2let val1 = 5;
3let val2 = "5";
4// Checking of operands
5console.log(val1 >= 5);
6console.log(val2 >= "15");
7console.log(val1 >= "5");
8console.log(val2 >= 15);
خروجی:
> true > true > true > false
3. عملگر کوچکتر یا کمتر (>) در جاوا اسکریپت:
این عملگر در جاوا اسکریپت، برای بررسی اینکه آیا مقدار سمت چپ کمتر از مقدار سمت راست است یا خیر استفاده میشود. اگر اینطور باشد، شرط درست و در غیر این صورت نادرست است. سینتکس این عملگر به صورت زیر خواهد بود:
1x < y
مثال:
1// Illustration of (<) operator
2let val1 = 5;
3let val2 = "5";
4
5// Checking of operands
6console.log(val1 < 15);
7console.log(val2 < "0");
8console.log(val1 < "0");
9console.log(val2 < 15);
خروجی:
> true > false > false > true
4. عملگر کمتر یا مساوی (=>) در جاوا اسکریپت:
این عملگر برای بررسی اینکه آیا مقدار عملوند سمت چپ کمتر یا مساوی با مقدار عملوند سمت راست است یا خیر استفاده میشود. اگر اینطور باشد، شرط درست و در غیر این صورت نادرست است. سینتکس این عملگر به صورت زیر خواهد بود:
1x <= y
مثال:
1// Illustration of (<=) operator
2let val1 = 5;
3let val2 = "5";
4// Checking of operands
5console.log(val1 <= 15);
6console.log(val2 <= "0");
7console.log(val1 <= "0");
8console.log(val2 <= 15);
خروجی:
> true > false > false > true
عملگرهای بیتی جاوا اسکریپت
جاوا اسکریپت مانند زبان C ،C++، جاوا، پایتون و زبانهای مختلف دیگر از عملیات بیتی پشتیبانی میکند. در جاوا اسکریپت، یک عدد به عنوان یک عدد ممیز شناور 64 بیتی ذخیره میشود، اما عملیات بیتی بر روی اعدد باینری 32 بیتی قابل انجام است، یعنی برای انجام عملیات بیتی، جاوا اسکریپت عدد را به عددی 32 بیتی تبدیل میکند و عملیات را انجام میدهد و نتیجه را به عنوان عددی 64 بیتی بازمیگرداند. در زیر انواع عملگرهای جاوا اسکریپت از نوع بیتی توضیح و برای هر یک مثالی آورده شده است.
![عملگر بیتی در جاوا اسکریپت](https://blog.faradars.org/wp-content/uploads/2022/10/logical-operator-js.jpg)
1. عملگر بیتی AND ( & ) در جاوا اسکریپت
این عملگر باینری در جاوا اسکریپت دو عملوند را میپذیرد. در عملگر AND اگر هر دو بیت درست باشند (یعنی 1)، نتیجه همیشه درست (1) و در هر حالت دیگری این عملگر 0 را برمیگرداند. جدول زیر حالتهای مختلف این عملگر را نشان میدهد:
A | B | خروجی |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
2. عملگر بیتی OR (|) در جاوا اسکریپت
این عملگر باینری نیز دو عملوند را میپذیرد. اگر هر یک از عملوندها غلط باشند (یعنی 0) نتیجه 0 است و در هر حالت دیگری 1 را برمیگرداند. جدول زیر حالتهای مختلف این عملگر را نشان میدهد:
A | B | خروجی |
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 1 |
3. عملگر بیتی XOR (^) در جاوا اسکریپت
این هم عملگری باینری است یعنی دو عملوند را میپذیرد. اگر هر دو عملوند متفاوت باشند، نتیجه 1 و در هر حالت دیگری 0 را برمیگرداند. جدول زیر حالتهای مختلف این عملگر را نشان میدهد:
A | B | خروجی |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
4. عملگر بیتی NOT (~) در جاوا اسکریپت
NOT عملگری یکنواخت به حساب میآید، یعنی عملوندهای منفرد را میپذیرد. با این عملگر، 0 تبدیل به 1 و 1 تبدیل به 0 میشود. جدول زیر حالتهای مختلف این عملگر را نشان میدهد:
A | A~ |
1 | 0 |
0 | 1 |
5. عملگر باینری شیف به چپ (>>)
این عملگر نیز باینری است و دو عملوند را میپذیرد. عمولند اول مقدار عدد اول در نمایش بیتی و عملوند دوم تعداد بیتهایی را مشخص میکند که باید تغییر کنند. هر بیت به سمت چپ منتقل میشود و 0 بیت از سمت راست اضافه میشود. همچنین بیتهای اضافی از سمت چپ دور ریخته خواهند شد. جدول زیر حالتهای مختلف این عملگر را نشان میدهد:
A | 6 ( 00000000000000000000000000000110 ) |
B | 1 ( 00000000000000000000000000000001 ) |
خروجی A << B | 12 ( 00000000000000000000000000001100 ) |
6. عملگر باینری شیفت به راست (<<)
این عملگر نیز باینری است. عملوند اول مقدار عدد اول در نمایش بیتی و عملوند دوم تعداد بیتهایی را مشخص میکند که باید تغییر کنند. با این عملگر هر بیت به سمت راست منتقل میشود و بیتهای سرریز دور انداخته خواهند شد. جدول زیر حالتهای مختلف این عملگر را نشان میدهد.
A | 6 ( 00000000000000000000000000000110 ) |
B | 1 ( 00000000000000000000000000000001 ) |
خروجی A >> B | 3 ( 00000000000000000000000000000011 ) |
7. عملگر Right Shift ( <<< )
در این عملگر باینری، عملوند اول نمایش بیتی عدد و عملوند دوم تعداد بیتهایی را که باید تغییر کنند را مشخص میکنند. هر بیت به سمت راست منتقل میشود و بیتهای سرریز دور انداخته خواهند شد. 0 بیت از سمت چپ اضافه میشود تا صفرها در سمت راست پر شود. جدول زیر حالتهای مختلف این عملگر را نشان میدهد:
A | 6 ( 00000000000000000000000000000110 ) |
B | 1 ( 00000000000000000000000000000001 ) |
خروجی A >>> B | 3 ( 00000000000000000000000000000011 ) |
مثال برای عملگرها در جاوا اسکریپت از نوع باینری:
1<script>
2var a = 6;
3var b = 1;
4
5// AND Operation
6document.write("A & B = " + (a & b) + '<br>');
7
8
9// OR operation
10document.write("A | B = " + (a | b) + '<br>');
11
12// NOT operation
13document.write("~A = " + (~a) + '<br>');
14
15
16// Sign Propagating Right Shift
17document.write("A >> B = " + (a >> b) + '<br>');
18
19
20// Zero Fill Right Shift
21document.write("A >>> B = " + (a >>> b) + '<br>');
22
23
24// Left Shift
25document.write("A << B = " + (a << b) + '<br>');
26</script>
خروجی:
A & B = 0 A | B = 7 ~A = -7 A >> B = 3 A >>> B = 3 A
عملگر حذف در جاوا اسکریپت چیست؟
عملگر حذف بهطور خاص برای حذف ویژگیهای شی جاوا اسکریپت استفاده میشود و این عملگر نسبتاً عملگری کمتر شناخته شده در جاوا اسکریپت است. این بخش از آموزش از مطلب عملگرها در جاوا اسکریپت مربوط به تشریح این عملگر خواهد بود.
اگرچه متدهای Pop ،Shift و Slice در جاوا اسکریپت برای حذف یک عنصر از آرایه در دسترس هستند، اما به دلیل وجود جفت کلید-مقدار در یک شی، عمل حذف پیچیدهتر میشود و بهترین راهکار استفاده از عملگر حذف است. باید به این نکته توجه داشت که عملگر حذف فقط روی اشیا عملیات انجام میدهد. این عملگر روی متغیرها یا توابع کار نمیکند. سینتکس عملگر حذف در جاوا اسکریپت به صورت زیر است:
1delete object
2// or
3delete object.property
4// or
5delete object['property']
عملگر حذف اگر یک «خاصیت» (Property) را حذف کند، مقدار True را برمیگرداند، اما روی شی تأثیری نخواهد داشت. همچنین این عملگر در جاوا اسکریپت هنگام تلاش برای حذف یک متغیر یا تابع، مقدار False را بازمیگرداند.
مثال: این مثال با فرض اینکه یک شی به نام Person دارای سه جفت کلید-مقدار (یعنی FirstName ،LastName و Phone) است، ارائه خواهد شد. اکنون با استفاده از عملگر delete برای حذف ویژگی Phone از میان این سه ویژگی، تلاش خواهد شد تا مشاهده شود این عملگر چه چیزی را به عنوان خروجی بازمیگرداند.
1let person = {
2 firstName: "kamel",
3 lastName: "bahrami",
4 phone: 12345
5 }
6
7 console.log(delete person.phone);
8 console.log(person);
خروجی:
true (2) {firstName: "kamel", lastName: "bahr...} firstName : "kamel" lastName : "bahrami"
همانطور که خروجی بالا نشان میدهد، delete person.phone مقدار True بازمیگرداند. حال در بخش زیر از عملگر حذف در جاوا اسکریپت برای حذف یک متغیر و یک تابع استفاده شده است. مثال:
1 let num = 5;
2 let sum = (a, b) => {
3 return a + b;
4 }
5 console.log(delete num); //false
6 console.log(delete sum); //false
خروجی:
false false
از آنجایی که عملگر حذف، برای متغیرها یا تابع کار نمیکند، False را برمیگرداند و متغیرها و توابع واقعی دست نخورده باقی میمانند. نکته دیگری که باید در نظر داشت این است که این عملگر ارزش ویژگی را حذف نمیکند بلکه خود ویژگی را حذف میکند.
استثنا: متغیرهای سراسری را می توان با استفاده از عملگر حذف در جاوا اسکریپت حذف کرد. مثال:
1toDelete = 5;
2// true
3console.log(delete toDelete);
4// toDelete is not defined
5console.log(toDelete);
بدون استفاده از var ، کلمه کلیدی let یا const متغیر را بهعنوان یک متغیر سراسری تنظیم میکند و بهعنوان یک ویژگی شی کار میکند. خروجی به صورت زیر است:
true Uncaught ReferenceError: toDelete is not defined
در این مثال، delete toDelete مقدار True را برمیگرداند و تلاش برای دسترسی به متغیر پس از حذف، با خطا مواجه میشود زیرا متغیر دیگر تعریف نشده است.
حذف مقادیر آرایه با استفاده از delete در جاوا اسکریپت
آرایههای جاوا اسکریپت همه اشیاء هستند. بنابراین، میتوان از عملگر حذف برای حذف آنها استفاده کرد. با این وجود، این کار مشکل ایجاد میکند، زیرا پس از حذف عنصر از آرایه، این عملگر موقعیت یا مکان عنصر حذف شده را خالی نشان میدهد و طول آرایه را بهروز نمیکند.
1let arr = [1, 2, 3]
2console.log(delete arr[0]); //true
3console.log(arr); //[empty, 2, 3]
خروجی:
true (3) [2, 3]
در خروجی بالا، طول آرایه که هم اکنون 2 است به روز نشده است و همان 3 را نشان میدهد. این نوعی مشکل بهحساب میآید؛ بنابراین، استفاده از متدهای Pop ، Shift و Spliceبهوضوح روش بهتری برای حذف عناصر آرایه هستند. استفاده از ویژگی delete در حلقهها سرعت برنامه را به میزان قابلتوجهی کاهش میدهد. بنابراین، این روش تنها زمانی باید استفاده شود که حذف ویژگی شی کاملاً ضروری باشد.
عملگر کاما در جاوا اسکریپت
عملگر کاما (,) در جاوا اسکریپت، به همان روشی مورد استفاده قرار میگیرد که در بسیاری از زبانهای برنامه نویسی مانند C ،C++ و غیره استفاده میشود. این عملگر عمدتاً عملوندهای خود را از چپ به راست به ترتیب ارزیابی میکند و مقدار عملوند سمت راست را برمیگرداند. عملگر کاما بهعنوان جداکننده برای عبارات متعدد در محلی استفاده میشود که به یک عبارت واحد نیاز دارد. هنگامی که عملگر کاما در یک عبارت قرار میگیرد، هر عبارت را اجرا میکند و سمت راستترین عبارت را برمیگرداند.
سینتکس:
1Expression1, Expression2, Expression3, ....so on
در دستور بالا، چند عبارت با استفاده از یک عملگر کاما از هم جدا میشوند. در حین اجرا، هر عبارت از چپ به راست اجرا میشود و سمت راستترین عبارت بازگردانده میشود. مثال زیر این موضوع را نشان میدهد.
1function x() {
2 document.write('Welcome');
3 return 'Welcome';
4 }
5 function y() {
6 document.write('to');
7 return 'to';
8 }
9 function z() {
10 document.write('Faradars');
11 return 'Faradars';
12 }
13 // Three expressions are
14 // given at one place
15 var x = (x(), y(), z());
16 document.write(x);
خروجی به صورت زیر است:
Welcome to Faradars Faradars
در خروجی ابتدا تابع x() سپس y() و در آخر z() اجرا میشوند. درنهایت، عملگر کاما سمت راستترین عبارت را برمیگرداند. مفیدترین کاربرد عملگر کاما در حلقهها است. در حلقهها، برای بهروزرسانی چندین متغیر در عبارتی از این عملگر استفاده میشود. مثال:
1for (var a = 0, b =5; a <= 5; a++, b--) {
2document.write(a, b);
3}
خروجی به صورت زیر است:
0 5 1 4 2 3 3 2 4 1 5 0
عملگرهای اتصال کوتاه جاوا اسکریپت
یکی دیگر از انواع عملگرها در جاوا اسکریپت، عملگرهای اتصال کوتاه هستند. در عملگرهای اتصال کوتاه جاوا اسکریپت، عبارتی از سمت چپ به راست ارزیابی میشود و تا زمانی که تأیید شود که نتیجه شرایط باقیمانده روی نتیجه ارزیابی شده از قبل تأثیری نخواهد داشت، مقدار True بازگردانده خواهد شد. اگر حتی قبل از ارزیابی کامل عبارت، نتیجه واضح باشد، اتصال کوتاه اتفاق میافتد و نتیجه بازگردانده میشود. ارزیابی اتصال کوتاه از کار غیرضروری جلوگیری میکند و منجر به پردازش کارآمد و سریع خواهد شد.
![عملگر تاصال کوتاه در جاوا اسکریپت](https://blog.faradars.org/wp-content/uploads/2022/10/avascript-short-circuiting-js.jpeg)
1. عملگر اتصال کوتاه AND در جاوا اسکریپت
در مورد عملگر اتصال کوتاه AND، عبارت تا زمانی ارزیابی میشود که یک نتیجه نادرست به دست آید. اگر عبارتی با AND وجود داشته باشد و خود عملوند اول نادرست باشد، اتصال کوتاه رخ میدهد و در این صورت عبارت بعدی ارزیابی نمیشود و False بازگردانده میشود. مثال زیر این موضوع را بیان میکند.
1// Since first operand is false and operator
2// is AND, Evaluation stops and false is
3// returned.
4console.log(false && true && true && false)
5
6// Whole expression will be evaluated.
7console.log(true && true && true)
خروجی:
false true
2. عملگر اتصال کوتاه OR در جاوا اسکریپت
در مورد عملگر اتصال کوتاه OR، عبارت تا زمانی ارزیابی میشود که یک نتیجه درست به دست آید. اگر عبارتی با OR منطقی وجود داشته باشد و خود عملوند اول درست باشد، اتصال کوتاه رخ میدهد، در این صورت ارزیابی متوقف میشود و True بازگردانده میشود. مثال زیر این موضوع را بیان میکند.
1// First operand is true and operator is ||,
2// evaluation stops and true is returned.
3console.log(true || false || false)
4// Evaluation stops at the second operand(true).
5console.log(false || true || true || false)
خروجی به صورت زیر است:
true true
عملگر سه تایی جاوا اسکریپت
علامت سؤال (?) یا عملگر شرطی (&) در بین شرط و عبارت، در جاوا اسکریپت نشانگر عملگر سهتایی هستند که سه عملوند را میتوانند بپذیرند. این سه عملوند شامل موارد زیر هستند:
- شرط
- اگر عبارت درست باشد
- اگر عبارت نادرست باشد
![عملگر سه تایی در جاوا اسکریپت چیست؟](https://blog.faradars.org/wp-content/uploads/2022/10/JavaScript-Ternary-Operators.jpeg)
ارزیابی شرط باید به مقدار True یا False یا مقدار بولی منجر شود. این عملگر در صورتی که عبارت قبل از “:” ، True باشد اجرا میشود و مقدار True را در خروجی برمیگرداند. بهطور مشابه، مقدار False بعد از “:” قرار دارد و اگر عبارت دوم درست باشد، False را برمیگرداند. سینتکس این عملگر در جاوا اسکریپت به صورت زیر است:
1condition ? value if true : value if false
مثال ١:
1Input: let result = (10 > 0) ? true : false;
2Output: true
3
4Input: let message = (20 > 15) ? "Yes" : "No";
5Output: Yes
مثال 2:
1function gfg() {
2 //JavaScript to illustrate
3 //Conditional operator
4 let age = 60
5 let result = (age > 59)?
6 "Senior Citizen":"Not a Senior Citizen";
7 document.write(result);
8 }
9 gfg();
Senior Citizen
مثال 3: چند عملگر شرطی باهم:
1function gfg() {
2//JavaScript to illustrate
3//multiple Conditional operators
4let marks = 95;
5let result = (marks < 40) ? "Unsatisfactory" :
6 (marks < 60) ? "Average" :
7 (marks < 80) ? "Good" : "Excellent" ;
8
9document.write(result);
10}
11gfg();
خروجی:
Excellent
عملگر نوع جاوا اسکریپت
در زبان برنامه نویسی جاوا اسکریپت، «عملگر نوع» (Typeof)، نوع داده عملوند خود را در قالب رشته بازمیگرداند. عملوند میتواند هر شی، تابع یا متغیری باشد. سینتکس این عملگر در جاوا اسکریپت به دو صورت زیر است:
1typeof operand
2or
3typeof (operand)
انواع داده احتمالی که این عملگر در جاوا اسکریپت بازمیگرداند، شامل موارد زیر هستند:
- «تعریف نشده» (Undefined)
- «شی» (Object)
- «دودویی» (بولی | Boolean)
- «عدد» (Number)
- «رشته» (String)
- «نماد» (Symbol)
- و سایر موارد
مثال از عملگر نوع در جاوا اسکریپت:
1<script>
2// "string"
3document.write(typeof 'Faradars'+"<br>")
4
5// "number"
6document.write(typeof 25 +"<br>")
7
8// "undefined"
9document.write(typeof variable)
10</script>
خروجی:
string number undefined
عملگر Instanceof در جاوا اسکریپت
آخرین مورد از عملگرها در جاوا اسکریپت، عملگر Instanceof است. این عملگر در جاوا اسکریپت برای بررسی نوع شی در زمان اجرا استفاده میشود. اگر شرط آن درست باشد مقدار بولی بازمیگرداند و نشان میدهد که شی نمونهای از یک کلاس خاص است و اگر شرط غلط باشد، خاتمه پیدا میکند. سینتکس آن به صورت زیر است:
1var gfg = objectName instanceof objectType
مثال:
1<!DOCTYPE html>
2<html>
3<body>
4 <center>
5 <h1 style="color:green">Faradars</h1>
6 <p id="GFG"></p>
7 <script>
8 var fruits = ["Apple", "Mango", "Banana"];
9 document.getElementById("GFG").innerHTML =
10 (fruits instanceof Array) + "<br>" +
11 (fruits instanceof Object) + "<br>" +
12 (fruits instanceof String) + "<br>" +
13 (fruits instanceof Number);
14 </script>
15 </center>
16</body>
17</html>
خروجی:
Faradars true true false false
سخن پایانی
در این مطلب آموزشی از مجله فرادرس انواع عملگرها در جاوا اسکریپت همراه با سینتکس و مثالهای متعددی مورد بررسی قرار گرفتند. عملگرها بخشی جداناپذیر از هر زبان برنامه نویسی هستند. برای شروع کار با جاوا اسکریپت، یادگیری عملگرها از اصول پایهای هستند که هر متقاضی این زبان باید با آنها آشنا باشد. بیشتر عملگرهایی که در جاوا اسکریپت مورد استفاده قرار میگیرند، در این مطلب آموزش داده شدند. امید است که این مطلب آموزشی مورد رضایت شما واقع شده باشد.
بسیار جامع و عالی بود