`truthy` و `falsy` في TypeScript
في هذه المقالة، سنشرح truthy
و falsy
في TypeScript۔
YouTube Video
truthy
و falsy
في TypeScript
مفاهيم truthy
و falsy
في TypeScript تلعب دورًا مهمًا جدًا في عبارات الشرط في البرامج۔ هنا، سنشرح هذه المفاهيم بالتفصيل وكيف يتم استخدامها فعليًا۔ علاوة على ذلك، نقدم أمثلة محددة في TypeScript لفهم كيفية التعامل مع قيم truthy
و falsy
۔
ما هي truthy
و falsy
؟
في JavaScript و TypeScript، يتم تقييم أي قيمة كـ true (true
) أو false (false
) في تعبير شرطي۔ يتم تصنيف هذه القيم منطقيًا كـ truthy
أو falsy
۔
truthy
تشير إلى القيم التي يتم تقييمها كـtrue
في التعبيرات الشرطية۔falsy
تشير إلى القيم التي يتم تقييمها كـfalse
في التعبيرات الشرطية۔
في TypeScript، يتم التعامل مع القيم التالية كـ falsy
:۔
- الرقم
0
""
(سلسلة نصية فارغة)
كل القيم الأخرى يتم التعامل معها كـ truthy
۔
أمثلة محددة على truthy
و falsy
1// Examples of falsy values
2console.log("0 is", Boolean(0) ? "truthy" : "falsy");
3console.log('"" is', Boolean("") ? "truthy" : "falsy");
4console.log("null is", Boolean(null) ? "truthy" : "falsy");
5console.log("undefined is", Boolean(undefined) ? "truthy" : "falsy");
6console.log("NaN is", Boolean(NaN) ? "truthy" : "falsy");
7
8// Examples of truthy values
9console.log("1 is", Boolean(1) ? "truthy" : "falsy");
10console.log('"hello" is', Boolean("hello") ? "truthy" : "falsy");
11console.log("[] is", Boolean([]) ? "truthy" : "falsy");
12console.log('" " (space) is', Boolean(" ") ? "truthy" : "falsy");
الجمل الشرطية باستخدام truthy
و falsy
تُستخدم مفاهيم truthy
و falsy
كثيرًا في الشرطيات والحلقات۔ على سبيل المثال، في عبارات if
أو حلقات while
، يمكنك استخدام هذه القيم مباشرة لتقييمات شرطية بسيطة۔
1// Checking if the length of the array is 0
2let items: string[] = [];
3
4if (items.length) {
5 console.log("The array is not empty");
6} else {
7 console.log("The array is empty");
8}
9
10// Checking if the input value is empty
11let input = "";
12
13if (input) {
14 console.log("Input has value");
15} else {
16 console.log("Input is empty"); // This will be executed
17}
التعامل مع القيم falsy
باستخدام ??
(Nullish Coalescing) و ||
(OR المنطقي)
في TypeScript، هناك العديد من العوامل المفيدة عند التعامل مع قيم falsy
۔ على وجه الخصوص، يتم استخدام عامل Nullish Coalescing (??
) وعامل OR المنطقي (||
) بشكل شائع۔
||
(أو المنطقي)
يُستخدم عامل OR المنطقي لاستبدال القيم falsy
بقيمة افتراضية۔ ومع ذلك، يتم استهداف جميع قيم falsy
(ليس فقط null
أو undefined
، بل أيضًا 0
، ""
، وما إلى ذلك)۔
1let username = "";
2let displayName = username || "Guest"; // Since username is empty, "Guest" is assigned
3
4console.log(displayName); // "Guest"
??
(Nullish Coalescing)
عامل Nullish Coalescing يطبق قيمة افتراضية فقط على القيم null
أو undefined
، ويترك القيم falsy
الأخرى (مثل 0
أو ""
) دون تغيير۔
1let username2 = "";
2let displayName2 = username2 ?? "Guest";
3// The empty string is retained
4// since username2 is not null or undefined
5
6console.log(displayName2); // ""
المزالق المتعلقة بـ truthy
و falsy
نقطة رئيسية يجب الانتباه إليها عند فهم truthy
و falsy
هي أن القيم غير المقصودة قد تُعامل كـ falsy
.۔ على سبيل المثال، 0
وسلاسل النصوص الفارغة ""
هي قيم صالحة، لكنها تُعتبر falsy
في العبارات الشرطية، مما قد يؤدي إلى تقييمات غير صحيحة.۔
1let score = 0;
2
3if (score) {
4 console.log("You have a score!"); // This will not be executed
5} else {
6 console.log("No score available"); // This will be executed
7}
في مثل هذه الحالات، يتيح لك استخدام عوامل المقارنة الصارمة التمييز بدقة بين القيم مثل 0
وfalse
۔
1let score = 0;
2
3if (score === 0) {
4 console.log("Score is zero"); // Correctly evaluated
5}
المخاطر المرتبطة بالقيم falsy
وNaN
NaN
يتطلب معالجة خاصة لأنه لا يساوي أي قيمة، بما في ذلك نفسه، عند استخدام عوامل المقارنة۔
1console.log("NaN === NaN:", NaN === NaN); // false
لذلك، من الأكثر أماناً استخدام Number.isNaN()
للكشف بدقة عن NaN
۔
1// Bad Example
2let value = parseInt("0");
3if (!value) {
4 console.log("Value is NaN"); // Incorrectly treats 0 as NaN
5}
6
7// Good Example
8let value2 = parseInt("hello");
9if (Number.isNaN(value2)) {
10 console.log("Value is NaN"); // Correctly identifies NaN
11}
ولهذا، فإن NaN
لا يساوي حتى نفسه، لذا فإن المقارنات مع NaN
تعود دائماً بـ false
۔ باستخدام Number.isNaN()
بدلاً من ذلك، يمكنك إجراء فحوصات أكثر موثوقية۔
الخاتمة
مفاهيم truthy
و falsy
في TypeScript مريحة للغاية، لكن يجب أن تكون حذراً مع بعض القيم، خاصة 0
وسلاسل النصوص الفارغة.۔ عند استخدام هذه القيم في الفحوصات الشرطية، فإن استخدام المقارنات الصارمة (===
) أو عامل Nullish Coalescing (??
) بدلاً من المقارنات الفضفاضة (==
) يمكن أن يساعد في تجنب السلوك غير المتوقع۔
يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔