العوامل في TypeScript
تشرح هذه المقالة العوامل في TypeScript۔
YouTube Video
العوامل في TypeScript
تُستخدم العوامل في TypeScript لإجراء الحسابات الرقمية، ومقارنة القيم، والعمليات المنطقية۔ نظرًا لأن TypeScript يستخدم عوامل مشابهة لـ JavaScript، فمن السهل التعود عليها، لكن TypeScript يتيح عمليات أكثر صرامة باستخدام أمان الأنواع۔
العوامل الرئيسية هي كما يلي:۔
عوامل حسابية
تُستخدم العوامل الحسابية لإجراء الحسابات الرقمية۔
العامل | الوصف | المثال | النتيجة |
---|---|---|---|
+ |
الجمع | 5 + 3 |
8 |
- |
الطرح | 5 - 3 |
2 |
* |
الضرب | 5 * 3 |
15 |
/ |
القسمة | 5 / 2 |
2.5 |
% |
باقي القسمة | 5 % 2 |
1 |
++ |
زيادة (prefix) | let x = 5; ++x |
6 |
-- |
إنقاص (prefix) | 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);
عوامل الإسناد
تُسنِد عوامل الإسناد القيمة الموجودة على اليمين إلى المتغير الموجود على اليسار۔
العامل | الوصف | المثال | النتيجة |
---|---|---|---|
= |
الإسناد | x = 10 |
x = 10 |
+= |
الجمع ثم الإسناد | x += 5 |
x = 15 |
-= |
الطرح ثم الإسناد | x -= 5 |
x = 5 |
*= |
الضرب ثم الإسناد | x *= 2 |
x = 20 |
/= |
القسمة ثم الإسناد | x /= 2 |
x = 5 |
%= |
باقي القسمة ثم الإسناد | x %= 3 |
x = 1 |
1let z = 5;
2z += 3;
3console.log(z); // Outputs: 8
4
5z *= 2;
6console.log(z); // Outputs: 16
عاملات المقارنة
عاملات المقارنة تقارن القيم وتعيد صحيح
أو خاطئ
.۔
العامل | الوصف | المثال | النتيجة |
---|---|---|---|
== |
يساوي (بدون مقارنة النوع) | 5 == "5" |
صحيح |
=== |
يساوي تماماً (يشمل النوع) | 5 === "5" |
خاطئ |
!= |
لا يساوي (بدون مقارنة النوع) | 5 != "5" |
خاطئ |
!== |
لا يساوي تماماً (يشمل النوع) | 5 !== "5" |
صحيح |
> |
أكبر من | 5 > 3 |
صحيح |
< |
أصغر من | 5 < 3 |
خاطئ |
>= |
أكبر من أو يساوي | 5 >= 5 |
صحيح |
<= |
أصغر من أو يساوي | 5 <= 3 |
خاطئ |
1console.log('5 == "5" :', 5 == "5"); // Outputs: true
2console.log('5 === "5" :', 5 === "5"); // Outputs: false
3console.log('5 != "5" :', 5 != "5"); // Outputs: false
4console.log('5 !== "5" :', 5 !== "5"); // Outputs: true
5console.log('5 > 3 :', 5 > 3); // Outputs: true
6console.log('5 < 3 :', 5 < 3); // Outputs: false
7console.log('5 >= 5 :', 5 >= 5); // Outputs: true
8console.log('5 <= 3 :', 5 <= 3); // Outputs: false
عاملات منطقية
تُستخدم العاملات المنطقية لدمج التعبيرات المنطقية.۔
العامل | الوصف | المثال | النتيجة |
---|---|---|---|
&& |
و (AND) منطقي | true && false |
false |
|| |
أو (OR) منطقي | true || false |
true |
! |
نفي (NOT) | !true |
false |
1console.log('true && false :', true && false); // Outputs: false
2console.log('true || false :', true || false); // Outputs: true
3console.log('!true :', !true); // Outputs: false
أسبقية العوامل المنطقية
في TypeScript، يتم تقييم العوامل المنطقية عادةً بترتيب 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
ينفذان عملية التقييم القصير
في TypeScript، يقوم كل من AND
و OR
بتنفيذ عملية التقييم القصير.۔ إذا تم تحديد النتيجة بناءً على القيمة الموجودة على الجهة اليسرى، فلن يتم تقييم التعبير الموجود على الجهة اليمنى.۔
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}
نظرًا لأن اللغة الطبيعية يمكن أن تكون غامضة، يجب توخي الحذر عند كتابة الشيفرات وتصميم الأنظمة.۔
عاملات على مستوى البت
العاملات على مستوى البت تُعالج الأرقام بمستوى البت.۔
العامل | الوصف | المثال | النتيجة |
---|---|---|---|
& |
و (AND) منطقي | 5 & 1 |
1 |
` | ` | أو (OR) منطقي | 5 | 1 |
^ |
أو حصري (XOR) | 5 ^ 1 |
4 |
~ |
نفي (NOT) | ~5 |
-6 |
<< |
إزاحة لليسار | 5 << 1 |
10 |
>> |
إزاحة لليمين (علامة موقعة) | 5 >> 1 |
2 |
>>> |
إزاحة لليمين (بدون علامة) | 5 >>> 1 |
2 |
1console.log('5 & 1 :', 5 & 1); // Outputs: 1 (AND operation)
2console.log('5 | 1 :', 5 | 1); // Outputs: 5 (OR operation)
3console.log('5 ^ 1 :', 5 ^ 1); // Outputs: 4 (XOR operation)
4console.log('~5 :', ~5); // Outputs: -6 (NOT operation)
5console.log('5 << 1 :', 5 << 1); // Outputs: 10 (Left shift operation)
6console.log('5 >> 1 :', 5 >> 1); // Outputs: 2 (Right shift operation)
7console.log('5 >>> 1:', 5 >>> 1); // Outputs: 2 (Unsigned right shift operation)
المشغل الثلاثي
المشغل الثلاثي يقوم بإرجاع قيم مختلفة بناءً على نتيجة تعبير الشرط.۔
1let age = 20;
2let access = (age >= 18) ? "Allowed" : "Denied";
3console.log(access); // Outputs: Allowed
مشغّلو الأنواع
تشمل مشغّلو الأنواع في TypeScript ما يلي:۔
المشغّل | الوصف | المثال | النتيجة |
---|---|---|---|
typeof |
يُرجع نوع المتغير | typeof 123 |
"number" |
instanceof |
يتحقق إذا كانت الكائن تابعًا لفئة معينة | arr instanceof Array |
true |
is |
كحارس للنوع، يتحقق مما إذا كانت القيمة تنتمي إلى نوع معين | value is string |
true or false |
1console.log(typeof "Hello"); // "string"
2console.log(typeof 42); // "number"
3
4let arr: number[] = [1, 2, 3];
5console.log("arr instanceof Array : ", arr instanceof Array); // true
6
7// Example of Type Guard
8function isString(value: any): value is string {
9 return typeof value === "string";
10}
11
12let value: any = "Hello";
13if (isString(value)) {
14 console.log("Value is a string:", value); // "Value is a string: Hello"
15}
تُستخدم مشغّلو الأنواع للتحقق من نوع القيمة أو تحويلها إلى نوع معين۔
- مشغّل
typeof
يُرجع نوع المتغير۔ - مشغّل
instanceof
يتحقق إذا كانت الكائن تابعًا لفئة معينة۔ - يُستخدم مشغّل
is
للتحقق مما إذا كانت القيمة تنتمي إلى نوع معين۔ هو جزء من حراس النوع في TypeScript۔
الملخص
- المشغلات الحسابية: إجراء الحسابات الأساسية۔
- مشغلات الإسناد: إسناد القيم إلى المتغيرات۔
- مشغلات المقارنة: مقارنة القيم۔
- المشغلات المنطقية: الجمع بين الشروط المنطقية۔
- مشغلات التعامل مع البتات: إجراء العمليات على مستوى البتات۔
- المشغل الثلاثي: إرجاع القيم بناءً على الشروط۔
- يمكن لمشغّلو الأنواع التحقق من نوع القيمة۔
في TypeScript، يمكن استخدام هذه المشغلات لكتابة الحسابات المعقدة وتعبيرات الشرط بكفاءة.۔
يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔