وتستخدم المقارنة والعوامل المنطقية لاختبار true أو false .
مقارنة مشغلي
وتستخدم عوامل المقارنة في البيانات المنطقية لتحديد المساواة أو الفرق بين المتغيرات أو القيم.
وبالنظر إلى أن x = 5 ، والجدول يوضح أدناه عوامل المقارنة:
عامل | وصف | مقارنة | عائدات | جربها |
---|---|---|---|---|
== | يساوي | x == 8 | false | جربها " |
x == 5 | true | جربها " | ||
x == "5" | true | جربها " | ||
=== | متساوية القيمة ونوع المساواة | x === 5 | true | جربها " |
x === "5" | false | جربها " | ||
!= | غير متساوي | x != 8 | true | جربها " |
!== | لا تساوي قيمة أو نوع لا تساوي | x !== 5 | false | جربها " |
x !== "5" | true | جربها " | ||
x !== 8 | true | جربها " | ||
> | أكبر من | x > 8 | false | جربها " |
< | أقل من | x < 8 | true | جربها " |
>= | أكبر من أو يساوي | x >= 8 | false | جربها " |
<= | اقل او يساوي | x <= 8 | true | جربها " |
كيف يمكن استخدام ذلك
عوامل المقارنة يمكن استخدامها في عبارات شرطية لمقارنة القيم واتخاذ الإجراءات اللازمة تبعا لنتيجة:
if (age < 18) text = "Too young";
سوف تتعلم المزيد عن استخدام العبارات الشرطية في الفصل التالي من هذا البرنامج التعليمي.
مشغلي منطقية
يتم استخدام العوامل المنطقية لتحديد المنطق بين المتغيرات أو القيم.
وبالنظر إلى أن x = 6 و y = 3 ، والجدول يوضح أدناه العوامل المنطقية:
عامل | وصف | مثال | جربها |
---|---|---|---|
&& | and | (x < 10 && y > 1) is true | جربها " |
|| | or | (x == 5 || y == 5) is false | جربها " |
! | not | !(x == y) is true | جربها " |
الشرطي (ترناري) المشغل
يحتوي جافا سكريبت أيضا مشغل مشروط بتعيين قيمة لمتغير استنادا الى بعض الشرط.
بناء الجملة
variablename = ( condition ) ? value1 : value2
مثال
var
voteable = (age < 18) ? "Too young":"Old enough";
انها محاولة لنفسك » إذا كان عمر متغير هو قيمة أقل من 18، فإن قيمة voteable المتغير سيكون "صغيرا جدا"، وإلا فإن قيمة voteable ستكون "قديم بما فيه الكفاية".
مقارنة أنواع مختلفة
مقارنة البيانات من أنواع مختلفة قد تعطي نتائج غير متوقعة.
عند مقارنة سلسلة مع عدد، وجافا سكريبت تحويل السلسلة إلى الرقم عند القيام المقارنة. سلسلة فارغة تحول إلى 0. سلسلة غير رقمية تحويل ل NaN الذي هو دائما كاذبة.
حالة | القيمة | محاولة |
---|---|---|
2 < 12 | true | جربها " |
2 < "12" | true | جربها " |
2 < "John" | false | جربها " |
2 > "John" | false | جربها " |
2 == "John" | false | جربها " |
"2" < "12" | false | جربها " |
"2" > "12" | true | جربها " |
"2" == "12" | false | جربها " |
عند المقارنة بين سلسلتين، "2" سيكون أكبر من "12"، وذلك لأن (حسب الترتيب الأبجدي) 1 أقل من 2.
لتأمين النتيجة المناسبة، يجب أن تتحول المتغيرات إلى النوع المناسب قبل المقارنة:
age = Number(age);
if (isNaN(age)) {
voteable = "Error in input";
} else {
voteable = (age < 18) ? "Too young" : "Old enough";
}
انها محاولة لنفسك » جافا سكريبت المختصة بالبت مشغلي
تعمل شركات قليلا على أرقام 32 بت.
يتم تحويل أي المعامل الرقمية في العملية إلى عدد 32 بت.
يتم تحويل النتيجة مرة أخرى إلى عدد جافا سكريبت.
عامل | وصف | مثال | مثل | نتيجة | عدد عشري |
---|---|---|---|---|---|
& | 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. وسوف يعود -6:
~ 00000000000000000000000000000101 سيعود 11111111111111111111111111111010
اختبر نفسك مع تمارين!
التمرين 1 » التمرين 2» التمرين 3 » التمرين 4» التمرين 5 » التمرين 6»