مرحبا ، هذا هو الجزء الأخير من تحليل الأسئلة من موقفنا.
الرد على الأسئلة هنا .
تحليل الجولات الأربع الأولى هنا .

هنا ، لا يتم تجميع الأسئلة المتعلقة بالموضوعات عمليًا ، فنحن نحلل كل شيء واحدًا تلو الآخر.
دعنا نذهب:
ماذا ستكون النتيجة؟
let i = 0; let a = 1; for (; a >= 0; i++) { a -= 0.1; } console.log(i); a) 1 b) 11 c) d) 10
الإجابة + تحليلب) 11
كل شيء بسيط جدا هنا. هذا هو أكثر من مسألة الذهن. سيتم تنفيذ الدورة 11 مرة ، لأن نحن لسنا صارمين
أكبر من >
و أكبر من أو يساوي >=
.
ماذا ستكون النتيجة؟
{} + []; a) 0 b) null c) '[object Object]' d) NaN
الإجابة + تحليلأ) 0
الخدعة هنا هي {}
سيتم تفسيرها ليس ككائن ، ولكن ككتلة فارغة من التعليمات البرمجية. لذلك ، يتم تحويل التعبير إلى +[]
، وهذا هو 0
، لأن +
قبل تحويل القيمة إلى رقم. أود ملاحظة أنه إذا تمت كتابة الشفرة كـ console.log({} + []);
، ثم سيكون [object Object]
، لأن هنا {}
سيتم تفسيرها ككائن.
ماذا ستكون النتيجة؟
[] + {};
أ) 0
ب) لاغية
ج) "[كائن كائن]"
د) NaN
الإجابة + تحليلج) "[كائن كائن]"
هنا ، يتم تخفيض كلا المعاملتين ، وفقًا للقواعد ، إلى سلسلة من صفيف فارغ - هذه سلسلة فارغة ، وكائن [object Object]
ما سوف يخرج هذا الرمز؟
let response = { data: '', errors: { code: 403 } }; console.log(typeof response.data.link); a) undefined b) object c) string d) function
الإجابة + تحليلد) وظيفة
يحتوي النموذج الأولي للسلسلة على طريقة ارتباط ، وبالتالي فإن الإجابة الصحيحة هي function
ما سوف يخرج هذا الرمز؟
const button = document.querySelector('button'); button.addEventListener('click', () => { console.log('FUS'); }); button.addEventListener('click', () => Promise.resolve('RO').then((x) => console.log(x))); button.addEventListener('click', () => { console.log('DAH!'); }); button.click(); a) FUS RO DAH! b) FUS DAH! RO c) RO FUS DAH! d) DAH! RO FUS
الإجابة + تحليلب) الفتح داه! ريال عماني
نحن هنا نطلق click
برمجية ، ونحصل على مكدس النداء ، يتم تشغيل المعالج الأول - نخرج FUS
، FUS
إلى الثانية - نضيف RO
إلى قائمة الانتظار ، لأن click
لا يزال على المكدس - لا تدعو الوعد. نحن ندخل المعالج التالي - إخراج DAH!
. click
عمل ، قائمة الانتظار فارغة ، يتم تشغيل الوعد.
ماذا سيعرض هذا الرمز عند النقر على زر؟
const button = document.querySelector('button'); button.addEventListener('click', () => { console.log('FUS'); }); button.addEventListener('click', () => Promise.resolve('RO').then((x) => console.log(x))); button.addEventListener('click', () => { console.log('DAH!'); }); button.click(); a) FUS RO DAH! b) FUS DAH! RO c) RO FUS DAH! d) DAH! RO FUS
الإجابة + تحليلأ) الفتح RO DAH!
هنا ينقر المستخدم على الزر ، لذلك لا توجد click
على المكدس ، وفي المعالج الثاني ، سوف يعمل الوعد فورًا.
ما سوف يخرج هذا الرمز؟
console.log(typeof Function````); a) TypeError b) SyntaxError c) 'function' d) 'undefined'
الإجابة + تحليلد) "غير محدد"
عند استخدام القيم الحرفية للقالب بعد اسم الوظيفة ، يتم استدعاؤها بالصفيف حيث توجد قيمة تم تمريرها وصفيف بقيمة raw
. Function
، مثل new Function
منشئ new Function
. عند تمرير سلسلة فارغة إلى داخلها ، نحصل على دالة للنموذج (){}
، على التوالي ، مع أي وسيطة نسميها ، فسوف تعود بدون undefined
، وهنا يطلق عليها مصفوفة - ['', raw: ['']]
. هذا هو تقريبا نفس Function('')('')
ما سوف يخرج هذا الرمز؟
function f(a, b, c) { 'use strict'; return f.length; } console.log(f(100, 2)); a) undefined b) 2 c) 3 d)
الإجابة + تحليلج) 3
وصف شامل مع MDN :
خاصية الطول هي خاصية لكائن دالة وتشير إلى عدد الوسائط التي تتوقعها الوظيفة ، أي عدد المعلمات الرسمية. هذا المبلغ لا يشمل المعلمات المتبقية.
ماذا ستكون النتيجة؟
const dict = {}; dict[[1]] = 2; dict[dict] = 3; dict[1 / 0] = 4; a) {'1': 2, '[object Object]': 3, 'Infinity': 4} b) Assignment to constant variable c) {'[1]': 2, 'dict': 3, '1/0': 4} d) {'1': 4, '[object Object]': 3}
الإجابة + تحليلأ) {'1': 2 ، '[كائن كائن]': 3 ، 'إنفينيتي': 4}
أخطاء Assignment to constant variable
لن يكون هنا ل لا يسمح const
بتغيير الرابط ، ولكن يمكنك تعديل الكائن. يجب أن تكون جميع مفاتيح الكائنات سلاسل ، بحيث يتم استدعاء toString
لكل منها. يتم تحويل الصفيف إلى 1
، الكائن إلى [object Object]
، وعند القسمة على صفر ، Infinity
الحصول على Infinity
.
ما سوف يخرج هذا الرمز؟
console.log(!![] > [], ![] == []); a) false false b) false true c) true true d) true false
الإجابة + تحليلج) صحيح صحيح
المقارنات > >= <= <
- تتسبب في مقارنة حسابية ، أولاً نلقي الصفيف على قيمة منطقية ونحققها ، ثم نحصل على مقارنة 1> 0 ، والتي تعطي بوضوح حقيقة. في الجزء الثاني من السؤال ، وضعنا الصفيف على " false
، ثم " false
هي " 0
، "و" "الصفيف" "بدائي" "، ونحصل على سلسلة فارغة ''
، وهي متساوية.
بهذا نختتم تحليلنا ، شكرا لك على اهتمامك!