العوامل في JavaScript
في هذه المقالة، سوف نقوم بشرح العوامل في JavaScript۔
YouTube Video
العوامل في JavaScript
العوامل في JavaScript هي رموز أو كلمات مفتاحية تُستخدم لإجراء العمليات الحسابية أو المقارنات على الأرقام والمتغيرات۔ هناك أنواع مختلفة من العوامل، كل نوع ينفذ عمليات مختلفة۔ فيما يلي ملخص لبعض العوامل الرئيسية:۔
عوامل الحساب
تشمل مشغلي الحسابيات في JavaScript ما يلي:۔
العامل | الوصف | المثال | النتيجة |
---|---|---|---|
+ |
الجمع | 5 + 2 |
7 |
- |
الطرح | 5 - 2 |
3 |
* |
الضرب | 5 * 2 |
10 |
/ |
القسمة | 5 / 2 |
2.5 |
% |
باقي القسمة (Modulus) | 5 % 2 |
1 |
++ |
الزيادة بمقدار 1 (Increment) | let x = 5; x++ |
6 |
-- |
النقصان بمقدار 1 (Decrement) | let x = 5; x-- |
4 |
1let a = 10; // Initialize variable 'a' with the value 10
2let b = 3; // Initialize variable 'b' with the value 3
3
4// Perform and display arithmetic operations between 'a' and 'b'
5console.log("Addition (a + b): ", a + b); // 13
6console.log("Subtraction (a - b): ", a - b); // 7
7console.log("Multiplication (a * b):", a * b); // 30
8console.log("Division (a / b): ", a / b); // 3.333...
9console.log("Modulus (a % b): ", a % b); // 1
10
11// Demonstrate post-increment operation on 'a'
12// Output the current value of 'a' (10), then increment
13console.log("Post-increment (a++): ", a++);
14// Display the incremented value of 'a' (11)
15console.log("Value of 'a' after increment:", a);
16
17// Demonstrate pre-increment operation on 'a'
18// Increment 'a' first (12) then output
19console.log("Pre-increment (++a): ", ++a);
20
21// Demonstrate post-decrement operation on 'a'
22// Output the current value of 'a' (12), then decrement
23console.log("Post-decrement (a--): ", a--);
24// Display the decremented value of 'a' (11)
25console.log("Value of 'a' after decrement:", a);
26
27// Demonstrate pre-decrement operation on 'a'
28// Decrement 'a' first (10) then output
29console.log("Pre-decrement (--a): ", --a);
عوامل الحساب تقوم بتنفيذ العمليات الرياضية الأساسية على الأرقام۔ بالإضافة إلى عمليات الجمع والطرح، يمكنك تنفيذ عمليات مثل باقي القسمة، الزيادة والنقصان۔ لاحظ أن القيمة المعادة من عمليات الزيادة أو النقصان تختلف حسب ما إذا تم وضع العامل قبل أو بعد المعامل۔
عوامل الإسناد
تشمل مشغلي التعيين في JavaScript ما يلي:۔
العامل | الوصف | المثال | النتيجة |
---|---|---|---|
= |
الإسناد | x = 5 |
يتم إسناد القيمة 5 إلى x |
+= |
إسناد الجمع | x += 5 |
x = x + 5 |
-= |
إسناد الطرح | x -= 5 |
x = x - 5 |
*= |
إسناد الضرب | x *= 5 |
x = x * 5 |
/= |
إسناد القسمة | x /= 5 |
x = x / 5 |
%= |
تعيين باقي القسمة | x %= 5 |
x = x % 5 |
1let x = 10;
2
3x += 5; // x = x + 5, so x becomes 15
4console.log('After x += 5 : ', x); // 15
5
6x -= 10;
7console.log('After x -= 10 : ', x); // 5
8
9x *= 3;
10console.log('After x *= 3 : ', x); // 15
11
12x /= 3;
13console.log('After x /= 3 : ', x); // 5
14
15x %= 2;
16console.log('After x %= 2 : ', x); // 1
تُستخدم عوامل التعيين لإسناد القيم إلى المتغيرات أو تحديث قيم المتغيرات۔ بالإضافة إلى التعيين العادي، توجد عوامل تعيين لعمليات حسابية مثل الإضافة وباقي القسمة۔
عوامل المقارنة
تشمل مشغلي المقارنة في JavaScript ما يلي:۔
العامل | الوصف | المثال | النتيجة |
---|---|---|---|
== |
مساوي | 5 == "5" |
true |
=== |
مساوي تمامًا (النوع والقيمة كلاهما متساويان) | 5 === "5" |
false |
!= |
غير مساوي | 5 != "5" |
false |
!== |
غير مساوي تمامًا | 5 !== "5" |
true |
> |
أكبر من | 5 > 2 |
true |
< |
أقل من | 5 < 2 |
false |
>= |
أكبر من أو يساوي | 5 >= 5 |
true |
<= |
أقل من أو يساوي | 5 <= 4 |
false |
1console.log("5 == '5' evaluates to:", 5 == "5"); // true (because the values are equal)
2console.log("5 === '5' evaluates to:", 5 === "5"); // false (because the types are different)
3console.log("5 != '5' evaluates to:", 5 != "5"); // false
4console.log("5 !== '5' evaluates to:", 5 !== "5"); // true
5console.log("5 > 2 evaluates to:", 5 > 2); // true
6console.log("5 < 2 evaluates to:", 5 < 2); // false
7console.log("5 >= 5 evaluates to:", 5 >= 5); // true
8console.log("5 <= 4 evaluates to:", 5 <= 4); // false
9console.log("5 >= '5' evaluates to:", 5 >= "5"); // true
10console.log("5 <= '5' evaluates to:", 5 <= "5"); // true
- تُستخدم عوامل المقارنة لمقارنة القيم وإرجاع true أو false۔
- يقوم عامل المساواة (
==
) بتحويل الأنواع المختلفة تلقائيًا إذا لزم الأمر قبل إجراء المقارنة۔ لا يقوم عامل المساواة الصارم (===
) بأي تحويل للأنواع أثناء المقارنة، ويعيد القيمةtrue
فقط إذا كانت القيمتان من نفس النوع وتملكان نفس القيمة۔ يساعد استخدام عامل المساواة الصارم (===
) في منع الأخطاء الناتجة عن تحويل الأنواع غير المقصود، لذا يُوصى باستخدامه بشكل تفضيلي۔
عوامل منطقية
تشمل مشغلي المنطق في JavaScript ما يلي:۔
العامل | الوصف | المثال | النتيجة |
---|---|---|---|
&& |
و (AND) (صحيح فقط إذا كان كلا الشرطين صحيحًا) | true && false |
false |
|| |
أو (OR) (صحيح إذا كان أي من الشرطين صحيحًا) | true || false |
true |
! |
ليس (NOT) (يحول true إلى false و false إلى true) | !true |
false |
1let a = true;
2let b = false;
3
4console.log("a && b evaluates to:", a && b); // false
5console.log("a || b evaluates to:", a || b); // true
6console.log("!a evaluates to:", !a); // false
تُستخدم العوامل المنطقية عند وجود عدة شروط لتقييم الجمع بين الشروط۔
أولوية المشغلين المنطقيين
في JavaScript، يتم تقييم المشغلات المنطقية عادة بترتيب: NOT
أولاً، يليها AND
، وأخيراً OR
.۔
NOT
له الأولوية الأعلى
NOT
هو مشغل أحادي ويتم تقييمه بأعلى أولوية.۔
1console.log(!true || false); // false
AND
لها أولوية أعلى من OR
AND
لها أولوية أعلى من OR
، لذلك يتم تقييم جزء AND
أولاً.۔
1console.log(true || false && false); // true
بهذه الطريقة، يتم تقييم الجزء AND
(&&
) أولاً، ويتم تمرير نتيجته إلى OR
(||
)۔
AND
وOR
يقومان بتقييم قصير الدائرة
AND
وOR
في JavaScript يقومان بتقييم قصير الدائرة.۔ إذا أمكن تحديد النتيجة من قيمة الطرف الأيسر، فلن يتم تقييم التعبير على الطرف الأيمن.۔
1let a = false && console.log("This will not be printed");
2console.log(a); // false
3
4let b = true || console.log("This will not be printed");
5console.log(b); // true
في كلتا الحالتين، لن يتم تنفيذ console.log()
.۔
تحديد الأولوية بشكل صريح
من خلال تجميع التعبيرات بشكل صريح باستخدام الأقواس، يمكنك تجنب سوء الفهم بشأن الأسبقية۔
1console.log(true || (false && false)); // true
الاختلافات بين اللغة الطبيعية وتفسير البرمجة
عند استخدام المشغلات المنطقية، من المهم أن تكون على دراية بالغموض في اللغة الطبيعية.۔ على سبيل المثال، عند قول 'كلب أبيض أو قطة'، يمكن أن يعني إما 'كلب أبيض أو قطة بأي لون' أو 'كلب أبيض أو قطة بيضاء.'۔ في الكود، ستبدو كالتالي:۔
1if (isWhite && isDog || isCat) {
2 console.log(' "A white dog" or "a cat of any color" ');
3}
4
5if (isWhite && (isDog || isCat)) {
6 console.log(' "A white dog" or "a white cat" ');
7}
8
9console.log(true || (false && false)); // true
نظرًا لأن اللغة الطبيعية تحتوي على غموض مثل هذا، يلزم الحذر عند البرمجة أو التصميم.۔
عامل ثلاثي (عامل شرطي)
تتضمن JavaScript المشغل الثلاثي (مشغل الشرط).۔
العامل | الوصف | المثال | النتيجة |
---|---|---|---|
? : |
إذا كان الشرط صحيحًا، يتم تنفيذ الجانب الأيسر، وإذا كان خاطئًا يُنفذ الجانب الأيمن | condition ? if true : if false |
الناتج يعتمد على الشرط |
1let age = 20;
2let message = age >= 18 ? "Adult" : "Minor";
3console.log(message); // "Adult"
يُكتب على الشكل condition ? value if true : value if false
.۔
عوامل بتية (على مستوى البت)
تشمل العمليات الثنائية في JavaScript ما يلي۔
العامل | الوصف | المثال | النتيجة |
---|---|---|---|
& |
AND | 5 & 1 |
1 |
| |
OR | 5 | 1 |
5 |
^ |
XOR | 5 ^ 1 |
4 |
~ |
NOT | ~5 |
-6 |
<< |
إزاحة إلى اليسار | 5 << 1 |
10 |
>> |
الإزاحة إلى اليمين | 5 >> 1 |
2 |
1let x = 0x0F & 0x0C;
2console.log("0x0F & 0x0C evaluates to:", x, "(0x0C, 12)"); // 0x0C (12)
3
4x = 0x04 | 0x02;
5console.log("0x04 | 0x02 evaluates to:", x, "(0x06, 6)"); // 0x06 (6)
6
7x = 0x0F ^ 0x0C;
8console.log("0x0F ^ 0x0C evaluates to:", x, "(0x03, 3)"); // 0x03 (3)
9
10// The inverted number is represented as a negative value
11// because JavaScript numbers are stored as signed 32-bit integers.
12x = ~0x0C;
13console.log("~0x0C evaluates to:", x, "(-13, 0xF3)"); // 0xF3 (-13)
14
15x = 0x04 << 1;
16console.log("0x04 << 1 evaluates to:", x, "(0x08, 8)"); // 0x08 (8)
17x = 0x04 >> 1;
18console.log("0x04 >> 1 evaluates to:", x, "(0x02, 2)"); // 0x02 (2)
مشغلات البت تنفذ العمليات الحسابية على الأرقام على مستوى البتات۔ تُستخدم عادةً للمعالجة منخفضة المستوى۔
مشغلات النوع
تشمل عمليات النوع في JavaScript ما يلي۔
العامل | الوصف | المثال | النتيجة |
---|---|---|---|
typeof |
يعيد نوع المتغير | typeof 123 |
"number" |
instanceof |
يتحقق مما إذا كان الكائن ينتمي إلى فئة معينة | arr instanceof Array |
true |
1console.log(typeof "Hello"); // "string"
2console.log(typeof 42); // "number"
3
4let arr = [1, 2, 3];
5console.log("arr instanceof Array : ", arr instanceof Array); // true
تُستخدم مشغلات النوع للتحقق من نوع القيمة أو لتحويلها إلى نوع محدد۔
يقوم العامل typeof
بإرجاع نوع المتغير۔
يتحقق العامل instanceof
مما إذا كان الكائن ينتمي إلى فئة معينة۔
الملخص
- مشغلات الحساب تقوم بإجراء العمليات الحسابية الأساسية۔
- مشغلات الإسناد تقوم بتخصيص أو تحديث القيم في المتغيرات۔
- مشغلات المقارنة تقارن بين قيمتين وتعيد صحيح أو خطأ۔
- مشغلات المنطق تقيم تركيبات الشروط۔
- المشغلات الثلاثية تسمح لك بكتابة عبارات شرطية بشكل أقصر من
if
۔ - مشغلات البتات تقوم بإجراء العمليات الحسابية على مستوى البتات۔
- مشغلات النوع تتيح لك التحقق من نوع القيمة۔
يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔