جاوا اسکریپت – اپراتورها (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 را خواهد داد.
<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.
اپراتور شرطی (? 🙂 اپراتور شرطی ابتدا یک عبارت را برای مقدار درست یا غلط ارزیابی میکند، سپس بسته به نتیجه ارزیابی، یکی از دو عبارت داده شده را اجرا میکند.
برای درک اینکه اپراتور شرطی چگونه کار میکند، کد زیر را امتحان کنید:
خروجی:
اپراتور 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 = 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
مقادیر متغیرها را تغییر داده و عملگرهای مختلف را امتحان کنید...
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
مقادیر متغیرها را تغییر داده و عملگرهای مختلف را امتحان کنید...
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام