کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

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

آموزش عملگرهای مقایسه و منطقی در جاوا اسکریپت / Comparison logical operators

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


عملگرهای مقایسه ای

عملگرهای مقایسه در دستورات منطقی (logical statement) به منظور تشخیص برابری یا تفاوت بین متغیرها (یا مقادیر) بکار می روند.
با در نظر گرفتن اینکه x = 5، جدول زیر عملگرهای مقایسه را شرح می دهد.


عملگر شرح مثال مقدار بازگشتی
== مساوی x == 8 false
x == 5 true
=== هم از نظر مقدا و هم از نظر نوع با هم برابر هستند "x === "5 false
x === 5 true
==! یا مقدار یکسان نیست و یا از نظر نوع با هم برابر نیستند "x !== "5 true
x !== 5 false
=! باهم برابر نیستند x != 8 true
< بزرگتر است از x > 8 false
> کوچکتر است از x < 8 true
=< بزرگتر است از یا برابر با x >= 8 false
=> کوچکتر و مساوی x <= 8 true

نحوه ی استفاده از عملگرها

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


if (age < 18) text = "Too young";‎

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

عملگرهای منطقی برای تعیین منطق بین متغیرها و یا مقادیر استفاده می شود.
نظر به اینکه x = 6 و y = 3، جدول زیر عملگرهای منطقی را شرح می دهد.


عملگر
شرح
مثال
&&
and
(x < 10 && y > 1) is true
||
or
(x == 5 || y == 5) is false
!
not
!(x == y) is true

عملگرهای شرطی (شرط های سه گانه)

جاوا اسکریپت همچنین دارای یک عملگر شرطی است که مقداری را با توجه به برقرار بودن شرط معینی به متغیر تخصیص می دهد. (?) یک عملگر شرطی است که مقداری را به یک متغیر، مبنی بر درست بودن یک یا چند شرط مشخص انتساب می دهد.
دستور نگارش (syntax) آن به صورت زیر می باشد.


variablename = (condition) ? value1:value‏2‏

مثال:

نمونه یک

var voteable = (age < 18) ? "Too young":"Old enough";
امتحان کنید

چنانچه متغیر age مقداری پایین تر از مقدار 18 داشته باشد، در آن صورت متغیر voteable مقدار "Too young" را خواهد داشت، در غیر این صورت مقدار متغیر voteable، "Old enough" خواهد بود.


مقایسه نوع داده های مختلف با یکدیگر

مقایسه ی داده هایی که از لحاظ نوع با هم تفاوت دارند، نتایج غیر قابل پیش بینی و گاه ناصحیح ارائه می دهد.
به هنگام مقایسه ی رشته با ثابت عددی (numeric constant)، جاوا اسکریپت با عدد به عنوان یک رشته برخورد می کند. نتیجه ای که حاصل می گردد به طور معمول با نتیجه ای که از مقایسه ی عددی (مقایسه ای که هر دو طرف آن عدد باشد) بدست می آید یکی نیست.
به هنگام مقایسه ی دو رشته، " 2 " از " 12 " بزرگتر خواهد بود زیرا که از نظر ترتیب الفبایی 1 از 2 کوچکتر محسوب می شود.
جهت کسب نتیجه ای صحیح، باید پیش از اینکه اقدام به مقایسه ی دو رشته کنیم، لازم است متغیرها را به نوع صحیح تبدیل کنیم.


نمونه دو

age = Number(age);
if (isNaN(age)) {
    voteable = "Error in input";
} else {
    voteable = (age < 18) ? "Too young" : "Old enough";
} 
امتحان کنید
نکته:

تابع Number() یک رشته ی تهی را به 0 تبدیل کرده و یک رشته ی غیر عددی را نیز به NaN تغییر می دهد.


عملگرهای بیتی bitwise operator)) جاوا اسکریپت

این نوع عملگرها مبتنی بر اعداد 32 بیتی هستند.
تمام عملوندهای عددی (numeric operand) طی عملیات به اعداد 32 بیتی تبدیل می شوند.
در نهایت نتیجه بار دیگر به یک عدد جاوا اسکریپت تبدیل می گردد.


مثال:

نمونه سه

امتحان کنید
عملگر
شرح
مثال
برابر است با
نتیجه
عدد دهدهی /decimal
&
AND
x = 5 & 1
0101 & 0001
0001
1
|
OR
x = 5 | 1
0101 | 0001
0101
5
~
NOT
x = ~ 5
~0101
1010
10
^
XOR
x = 5 ^ 1
0101 ^ 0001
0100
4
>>
Left shift
x = 5 << 1
0101 >> 1
1010
10
<<
Right shift
x = 5 >> 1
0101 << 1
0010
2

مثال های بالا از اعداد 4 بیتی بدون علامت استفاده می کند، در حالی که جاوا اسکریپت از اعداد 32 بیتی علامت دار بهره می گیرد. به همین دلیل نیز در جاوا اسکریپت ~ 5 هیچگاه 10 برنمی گرداند. ~ 5 عدد -6 را بازگردانی می نماید.
00000000000000000000000000000101~ این نتیجه را برمی گرداند. 11111111111111111111111111111010

1394/07/27 15394 2829
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...