--- id: 587d7b85367417b2b2512b38 title: Catch Use of Assignment Operator Instead of Equality Operator challengeType: 1 videoUrl: '' localeTitle: قبض على استخدام مشغل التعيين بدلا من مشغل المساواة --- ## Description
تعتمد البرامج المتفرعة ، أي البرامج التي تقوم بأشياء مختلفة إذا تم استيفاء شروط معينة ، على if else if else عبارات أخرى في جافا سكريبت أو غير ذلك أو else . تأخذ الحالة أحيانًا شكل اختبار ما إذا كانت النتيجة مساوية لقيمة ما. يتم نطق هذا المنطق (باللغة الإنجليزية ، على الأقل) على أنه "إذا كان x يساوي y ، ثم ..." والذي يمكن أن يترجم حرفيًا إلى تعليمة برمجية باستخدام عامل التشغيل أو = أو عامل التشغيل. هذا يؤدي إلى تدفق التحكم غير متوقع في البرنامج الخاص بك. كما تم تغطيته في التحديات السابقة ، يقوم عامل التعيين ( = ) في JavaScript بتعيين قيمة لاسم متغير. و == و === عوامل التحقق من المساواة (اختبار === الثلاثي من أجل المساواة الصارمة ، مما يعني أن القيمة والنوع هما نفس الشيء). يعيّن الرمز أدناه x إلى 2 ، والتي يتم تقييمها على أنها true . تقريبًا كل قيمة من تلقاء نفسها في جافا سكريبت يتم تقييمها إلى true ، باستثناء ما يُعرف بالقيم "الفالية": false ، و 0 ، و "" (سلسلة فارغة) ، و NaN ، و undefined ، و null .
دع x = 1؛
دعنا y = 2؛
إذا (x = y) {
// سيتم تشغيل هذا الكود لأية قيمة لـ y (ما لم يتم تعيين y في الأصل كالفلا)
} آخر {
// كتلة الكود هذا هو ما يجب تشغيله (لكن لن) في هذا المثال
}
## Instructions
أصلح الشرط بحيث يقوم البرنامج بتشغيل الفرع الصحيح ، ويتم تعيين القيمة المناسبة result .
## Tests
```yml tests: - text: يجب أن تحدد شفرتك الشرط حتى تتحقق من المساواة ، بدلاً من استخدام الواجب. testString: 'assert(result == "Not equal!", "Your code should fix the condition so it checks for equality, instead of using assignment.");' - text: يمكن أن تستخدم الحالة إما == أو === لاختبار المساواة. testString: 'assert(code.match(/x\s*?===?\s*?y/g), "The condition can use either == or === to test for equality.");' ```
## Challenge Seed
```js let x = 7; let y = 9; let result = "to come"; if(x = y) { result = "Equal!"; } else { result = "Not equal!"; } console.log(result); ```
## Solution
```js // solution required ```