Files
freeCodeCamp/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/debugging/catch-use-of-assignment-operator-instead-of-equality-operator.md
freeCodeCamp's Camper Bot e6b05ee25d chore(i18n,learn): processed translations (#54537)
Co-authored-by: Naomi <nhcarrigan@gmail.com>
2024-04-26 12:26:37 +07:00

2.8 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7b85367417b2b2512b38 استخدام مشغل التعيين بدلاً من مشغل المساواة (Catch Use of Assignment Operator Instead of Equality Operator) 1 301191 catch-use-of-assignment-operator-instead-of-equality-operator

--description--

البرامج المتفرعة، أي تلك الذي تقوم بأشياء مختلفة إذا تم الوفاء بشروط معينة، تعتمد على بيانات if, و else if, و else في JavaScript. يأخذ الشرط أحيانًا شكل اختبار ما إذا كانت النتيجة مساوية لقيمة.

هذا المنطق ينطق (باللغة الإنجليزية، على الأقل) كـ "... if x equals y, then" الذي يمكن ترجمته حرفية إلى كود باستخدام = أو مشغل التعيين. هذا يؤدي إلى جعل برنامجك يعمل بشكل غير متوقع.

كما تم تغطيته في التحديات السابقة، يقوم مشغل التعيين (=) في JavaScript بإسناد قيمة إلى اسم متغير. و يقوم المشغلون == و === بالتحقق من المساواة (الثلاثية === تتحقق من المساواة الصارمة بمعنى أن كل من القيمة والنوع يطبقان).

الكود أدناه يعين x ليكون 2، الذي يقيّم إلى true. تقريبا كل قيمة بنفسها في JavaScript تقيّم إلى true، باستثناء ما يعرف بقيم falsy أو "كاذبة": false, و 0, و "" (مقطع فارغ), و NaN, و undefined, و null.

let x = 1;
let y = 2;
if (x = y) {

} else {

}

في هذا المثال، الكود داخل if سيتم تشغيله لأي قيمة بقدار y، إلا إذا كان y أصلا كاذب (falsy). أما else التي تتوقع أن تعمل هنا, لن تعمل في الواقع.

--instructions--

قم بإصلاح الشرط حتى يقوم البرنامج بتشغيل الفرع الصحيح، ويتم تعيين القيمة المناسبة إلى النتيجة result.

--hints--

يجب أن يصلح الكود الخاص بك الشرط حتى يتحقق من المساواة، بدلاً من استخدام التعيين.

assert(result == 'Not equal!');

يجب أن يستخدم الشرط إما == أو === لاختبار المساواة.

assert(__helpers.removeJSComments(code).match(/x\s*?===?\s*?y/g));

--seed--

--seed-contents--

let x = 7;
let y = 9;
let result = "to come";

if(x = y) {
  result = "Equal!";
} else {
  result = "Not equal!";
}

console.log(result);

--solutions--

let x = 7;
let y = 9;
let result = "to come";

if(x === y) {
 result = "Equal!";
} else {
 result = "Not equal!";
}

console.log(result);