انتقل إلى المحتوى

١.٤ القيم المنطقية

صحيح أم خطأ؟

يقدّم متجر خصمًا بنسبة 50% للطلبات التي تزيد قيمتها على 100 دولار. اشترت Soso منتجات بقيمة 150 دولارًا. لنتحقّق مما إذا كانت ستحصل على الخصم.

var sosoCanGetDiscount = 150 > 100;
console.log(sosoCanGetDiscount);

ستحصل على: true.

ماذا يعني ذلك؟ يعني أن Soso ستحصل على الخصم؛ لأن 150 أكبر من 100. لنجرّب مع Sami الذي اشترى منتجًا بقيمة 50 دولارًا.

var samiCanGetDiscount = 50 > 100;
console.log(samiCanGetDiscount);

ستحصل على: false.

يعني ذلك أن Sami لن يحصل على الخصم؛ لأن 50 ليست أكبر من 100. true تعني أن الشرط الذي نختبره متحقق. false تعني أن الشرط الذي نختبره غير متحقق.

تدريبات

التمرين 1: اقرأ الشيفرة التالية وحاول فهمها.

var thirtyLessThanEighty = 30 < 80;
console.log(thirtyLessThanEighty);

ستحصل على: true

التمرين 2: اقرأ الشيفرة التالية وحاول فهمها.

var thirtyLessThanEighty = 30 < 80;
console.log(typeof thirtyLessThanEighty);

ستحصل على: boolean.

ما وظيفة typeof? typeof ؟ تُبيّن نوع القيمة الموجودة في المتغير. وما نوع البيانات؟ لنتعرّف إليه!

التمرين 3: اقرأ الشيفرة التالية وحاول فهمها.

var word = "Hello";
console.log(typeof word);

ستحصل على: string.

التمرين 4: اقرأ الشيفرة التالية وحاول فهمها.

var num = 10;
console.log(typeof num);

ستحصل على: number.

التمرين 5: اقرأ الشيفرة التالية وحاول فهمها.

var bool1 = true;
console.log(typeof bool1);

ستحصل على: boolean.

التمرين 6: اقرأ الشيفرة التالية وحاول فهمها.

var bool2 = false;
console.log(typeof bool2);

ستحصل على: boolean.

typeof تساعدنا على معرفة نوع قيمة المتغير.

التمرين 7: تحقّق مما إذا كان الاسم المُعطى يساوي "Ali". تلميح: استخدم ==.

var name1 = "Ali";
var name2 = "Ola";
console.log(name1 == "Ali");
console.log(name2 == "Ali");

ستكون النتيجة:

true
false

التمرين 8: تحقّق مما إذا كانت درجة حرارة شخص أكبر من أو تساوي 37.5. تلميح: استخدم >=.

var temp1 = 39;
console.log(temp1 >= 37.5);
var temp2 = 37.5;
console.log(temp2 >= 37.5);
var temp3 = 37;
console.log(temp3 >= 37.5);

ستكون النتيجة:

true
true
false

التمرين 9: تحقّق مما إذا كانت درجة حرارة الغرفة أقل من أو تساوي 25. تلميح: استخدم <=.

var temp1 = 25;
console.log(temp1 <= 25);
var temp2 = 30;
console.log(temp2 <= 25);
var temp3 = 0;
console.log(temp3 <= 25);

ستكون النتيجة:

true
false
true

التمرين 10: تحقّق مما إذا كان الشيء الذي اشتراه الطفل لا يساوي ice cream. تلميح: استخدم !=.

var kidBuys = "bread";
console.log(kidBuys != "ice cream");
var kidBuys = "ice cream";
console.log(kidBuys != "ice cream");

ستكون النتيجة:

true
false

التمرين 11: جرّب الشيفرة التالية وحاول فهمها.

var num = "5";
console.log(5 == num);
var num = "5";
console.log(5 === num);

ستكون النتيجة:

true
false

ماذا حدث هنا؟ لنفحص typeof num:

var num = "5";
console.log(typeof num);

ستحصل على: string

ما typeof 5?

console.log(typeof 5);

ستحصل على number

num == 5 تكون نتيجته true لأن قيمة num تساوي القيمة 5. num === 5 تكون نتيجته false، لماذا؟ رغم أن قيمة num تساوي 5، فإن نوع num (سلسلة نصية) لا يساوي نوع 5 (عدد).

التمرين 12: تحقّق مما إذا كانت قيمة المتغير ونوعه testVar = "555" لا يطابقان العدد 555. تلميح: استخدم !==.

var testVar = "555";
console.log(testVar !== 555);

ستحصل على: true

مشروع: الخصم مرة أخرى

  1. يقدّم متجر خصمًا بنسبة 50% على الطلبات التي تزيد قيمتها على 100 دولار.
  2. اعرض الرسالة "Customer's name got the discount: true" للعملاء الذين حصلوا على الخصم.
  3. اعرض الرسالة "Customer's name got the discount: false" للعملاء الذين لم يحصلوا على الخصم.
  4. اشترت عميلة اسمها Soso منتجات بقيمة 150 دولارًا.
  5. اشترى Sami منتجًا بقيمة 50 دولارًا.
var customer1 = "Soso";
var customer1GetsDiscount = 150 >= 100;
console.log(customer1 + " got the  discount: " + customer1GetsDiscount );
var customer2 = "Sami";
var customer2GetsDiscount = 50 >= 100;
console.log(customer2 + " got the discount: " + customer2GetsDiscount );

ستكون النتيجة:

Soso got the discount: true
Sami got the discount: false