جافا سكريبت أساسيات: كيفية اتخاذ قرارات الحياة مع إذا / آخر البيانات

دعنا نقول أنك تمشي في شارع مزدحم في وسط المدينة. أنت على وشك عبور الطريق عندما تلاحظ أن إشارة المرور الخاصة بالمارة تتحول إلى اللون الأحمر. ماذا تعمل؟

تتوقف ، أليس كذلك؟

وماذا يحدث عندما يتحول الضوء الأخضر مرة أخرى؟ أنت تبدأ المشي.

يمكننا وضع هذا التشبيه في الكود أيضًا. يبدو الأمر مثل: "إذا تحول الضوء إلى اللون الأحمر ، فتوقف عن المشي. خلاف ذلك ، واصل المشي ".

وهذا ، يا صديقي ، هو الأساس لبيان if / else.

إذا / آخر بيان

تساعد عبارة if / else في التحكم في ما يفعله البرنامج في المواقف المحددة. تبدو هكذا:

إذا (الحالة) {
  // قم بعمل ما
} آخر {
  / / قم بعمل شيء آخر
}

الحالة تخبر JavaScript بما يجب التحقق منه قبل المتابعة. إذا تم تقييم الشرط إلى صواب ، فإن JavaScript ينفذ الكود داخل كتلة if.

إذا تم تقييم الشرط إلى خطأ ، فإن JavaScript ينفذ التعليمات البرمجية من الكتلة الأخرى.

في مثال إشارة المرور ، نتحقق مما إذا كان المصباح أحمر:

// ملاحظة: لا يحتوي هذا المثال على رمز صالح حتى الآن
إذا (الضوء الأحمر) {
  توقف عن المشي
} آخر {
  مواصلة المشي
}

إذا كنت بحاجة إلى التحقق من وجود أكثر من شرط ، فيمكنك استخدام "آخر" إذا ، والذي يحدث بين "و".

متى تحتاج إلى مثل هذا الشرط الثاني؟

حسنًا ، دعنا نقول أنك تريد عبور طريق صغير. إذا لم يكن هناك أي سيارات حولها ، فهل تنتظر إشارة المرور إلى اللون الأخضر؟ أنت لا تزال تعبر ، أليس كذلك؟

في الكود ، سيبدو هذا كالتالي:

إذا (الضوء الأحمر) {
  // توقف عن المشي
} آخر إذا (حول السيارات) {
  // توقف عن المشي
} آخر إذا (بعد حالة أخرى) {
  // افعل شيئًا آخر
} آخر {
  / / افعل الشيء النهائي
}

في هذه الحالة ، إذا تم تقييم الشرط الأول إلى صواب ، فإن JavaScript ينفذ الكود في كتلة if.

إذا تم تقييم الشرط الأول إلى "خطأ" ، فسوف يتحقق JavaScript من الشرط في الحالة التالية ، إذا كان الحظر ويرى ما إذا كان سيتم تقييمه إلى "صحيح". يستمر ويمضي حتى كل شيء آخر إذا تم استنفاد الكتل.

للتحقق مما إذا كان الشرط يتم تقييمه على صواب أم خطأ ، تعتمد JavaScript على شيئين:

  1. عوامل المقارنة
  2. القيم الصادقة والزائفة

دعونا نتحدث عن عوامل المقارنة أولاً.

عوامل المقارنة

هناك أربعة أنواع رئيسية من عوامل المقارنة:

  1. أكبر من (>) أو أكبر أو يساوي (> =)
  2. أصغر من (<) أو أصغر أو يساوي (<=)
  3. يساوي بدقة (===) أو يساوي ==
  4. غير متكافئ تمامًا (! ==) أو غير متساوي!

أول نوعين من العوامل المقارنة واضحة. يمكنك استخدامها لمقارنة الأرقام.

24> 23 // صحيح
24> 24 // خطأ
24> = 24 // صحيح
24 <25 // صحيح
24 <24 // خطأ
24 <= 24 // صحيح

إن النوعين التاليين من مشغلي المقارنة واضحان للغاية أيضًا. يمكنك استخدامها للتحقق مما إذا كانت الأشياء متساوية أو غير متكافئة مع بعضها البعض.

24 === 24 // صحيح
24! == 24 // خطأ

ومع ذلك ، هناك فرق بين المساواة بشكل صارم (===) مقابل المساواة (==) ، وغير متساوي تمامًا (! ==) مقابل عدم المساواة (! =):

"24" === 24 // خطأ
"24" == 24 // صحيح
"24"! == 24 // صحيح
"24"! = 24 // خطأ

كما ترون من المثال أعلاه ، عند مقارنة سلسلة من 24 مقابل الرقم 24 ، === يتم التقييم إلى false بينما == يتم التقييم إلى true.

لماذا هو كذلك؟ دعونا نلقي نظرة على الفرق بين المساواة والتساوي.

=== vs == (أو! == vs! =)

جافا سكريبت هي لغة فضفاضة. ما يعنيه هذا هو أنه عندما نعلن عن المتغيرات ، فإننا لا نهتم بنوع القيمة التي تذهب إلى المتغير.

يمكنك إعلان أي شيء بدائي أو كائن ، ويقوم JavaScript بالباقي لك تلقائيًا:

const aString = "بعض الخيط"
كون عدد = 123
const aBoolean = صحيح

عند مقارنة الأشياء بالمساواة تمامًا (===) أو غير متساوية تمامًا (! ==) ، يتحقق JavaScript من نوع المتغير. هذا هو السبب في أن سلسلة من 24 ورقم 24 لا تساوي.

"24" === 24 // خطأ
"24"! == 24 // صحيح

عند مقارنة الأشياء بالمساواة (==) أو غير المتساوية (! =) ، يحول JavaScript (أو يلقي) الأنواع بحيث تتطابق مع بعضها البعض.

بشكل عام ، يحاول JavaScript تحويل جميع الأنواع إلى أرقام عند استخدام مشغل تحويل. في المثال أدناه ، يتم تحويل السلسلة 24 إلى الرقم 24 قبل المقارنة.

لهذا السبب فإن سلسلة من 24 تعادل عدد 24 عند استخدام ==.

"24" == 24 // صحيح
"24"! = 24 // خطأ

يمكن أيضا تحويل المنطقية إلى أرقام. عندما تقوم JavaScript بتحويل Booleans إلى أرقام ، يصبح true 1 ويصبح false خطأ 0.

0 == خطأ // صحيح
1 == صحيح // صحيح
2 == صحيح // خطأ

يعد التحويل التلقائي للنوع (عند استخدام عوامل المقارنة) أحد الأسباب الشائعة للأخطاء التي يصعب العثور عليها. كلما قارنت من أجل المساواة ، استخدم دائمًا الإصدارات الصارمة (=== أو! ==).

مقارنة الأشياء والمصفوفات

حاول مقارنة الكائنات والصفائف بـ === أو ==. سوف تفاجأ جدا.

const a = {isHavingFun: true}
const b = {isHavingFun: true}
console.log (a === b) // false
console.log (a == b) // false

في المثال أعلاه ، يبدو كلا a و b متطابقين تمامًا. كلاهما كائنات ، لديهم نفس القيم.

الغريب في الأمر هو أن === b ستكون دائمًا خاطئة. لماذا ا؟

دعنا نقول أن لديك أخ / أخت توأم متطابقة. أنت تبدو بالضبط نفس التوأم الخاص بك. نفس لون الشعر ، نفس الوجه ، نفس الملابس ، نفس الشيء. كيف يمكن للناس التفريق بينكما؟ سيكون الأمر صعبًا.

في JavaScript ، يكون لكل كائن "بطاقة هوية". تسمى بطاقة الهوية هذه الإشارة إلى الكائن. عندما تقارن الكائنات بمشغلي المساواة ، فإنك تطلب من JavaScript التحقق مما إذا كان للكائنين نفس المرجع (نفس بطاقة الهوية).

هل هي مفاجأة أن === b ستكون دائمًا خاطئة الآن؟

دعونا نعدلها قليلاً ونخصص أ ب.

const a = {isHavingFun: true}
const ب = أ

في هذه الحالة ، يتم تقييم a === b إلى true لأن b يشير الآن إلى المرجع نفسه كـ a.

console.log (a === b) // true

الصدق والفالسي

إذا كتبت متغيرًا واحدًا (مثل hasApples في المثال أدناه) كشرط لبيان if / else ، فإن JavaScript يتحقق من وجود قيمة صادقة أو قيمة زائفة.

const hasApples = 'صواب'
إذا (hasApples) {
  // أكل التفاح
} آخر {
  // شراء التفاح
}

القيمة الخاطئة هي قيمة يتم تقييمها إلى false عند تحويلها إلى منطقية. هناك ست قيم زائفة ممكنة في JavaScript:

  1. خاطئة
  2. غير محدد
  3. لا شيء
  4. 0 (صفر رقمي)
  5. "" (سلسلة فارغة)
  6. NaN (ليس رقم)

قيمة صادقة ، من ناحية أخرى ، هي قيمة يتم تقييمها إلى صواب عند تحويلها إلى منطقية. في حالة الأرقام ، أي شيء غير 0 يتحول إلى حقيقي.

يتم تشجيع التحويل التلقائي للنوع إلى قيم صادقة ومزيفة في جافا سكريبت ، لأنها تجعل الشفرة أقصر وأسهل للفهم.

على سبيل المثال ، إذا كنت تريد التحقق مما إذا كانت السلسلة فارغة ، يمكنك استخدام السلسلة في الحالة مباشرة.

const str = ''
إذا (str) {
  / / قم بعمل شيء إذا كانت السلسلة غير فارغة
} آخر {
  / / قم بعمل شيء إذا كانت السلسلة فارغة
}

تغليف

إذا تم استخدام عبارات أخرى للتحكم في ما يفعله البرنامج في مواقف محددة. يتيح لك تحديد ما إذا كنت تريد السير أو عبور الطريق ، حسب الظروف المعطاة لك.

للتحقق مما إذا كانت الحالة صحيحة أو خاطئة ، تعتمد Javascript على شيئين:

  1. عوامل المقارنة
  2. القيم الصدقية / الزائفة

إذا كنت تحب هذه المقالة ، فستحب أن تتعلم Learn JavaScript - دورة تساعدك على تعلم بناء مكونات حقيقية من البداية باستخدام Javascript. انقر هنا لمعرفة المزيد حول Learn JavaScript إذا كنت مهتمًا.

(أوه ، بالمناسبة ، إذا أعجبك هذا المقال ، سأكون ممتنًا إذا أمكنك مشاركته. )

نشرت أصلا في zellwk.com.