العوامل في JavaScript

العوامل في 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 أيضًا.۔

YouTube Video