مرحباً بالقارئ،
سأشرح سؤال ترميز مقابلة جافا سكريبت. كيف يعمل مترجم جافا سكريبت وما ينتجه بالفعل كمخرجات.
سأقوم بتقسيم كل جزء من المخرجات، وشرح سبب ظهوره بهذه الطريقة، وربطه مرة أخرى بالسطور المحددة من التعليمات البرمجية المسؤولة
let a = {}; let b = { key: 'b' }; let c = { key: 'c' }; a[b] = 123; a[c] = 456; console.log(a[b])
قبل أن نتعمق في التفاصيل، توقف للحظة لإلقاء نظرة على مقتطف الشفرة هذا. حاول تخمين المخرجات التي ستعتمد على فهمك الحالي. لا يساعد هذا الأسلوب في تعزيز مهاراتك في JavaScript فحسب، بل يجعل الشرح التالي أكثر وضوحًا
"فكر في كيفية معالجة جافا سكريبت لكل سطر. بمجرد قيامك بالتخمين، استمر في القراءة لمعرفة ما إذا كنت قد فهمت الأمر بشكل صحيح!"
let a = {};
الكود أعلاه، إنشاء كائن فارغ، وتعيينه للمتغير 'a'.
let b = { key: 'b' };
ينشئ هذا السطر كائنًا بمفتاح خاصية واحد والقيمة 'b'، ويعينه للمتغير 'b'.
let c = { key: 'c' };
يقوم هذا السطر بإنشاء كائن بمفتاح خاصية واحد والقيمة "c"، وتعيينه للمتغير "c".
a[b] = 123;
a[b] = 123 يقوم هذا السطر بتعيين خاصية الكائن a باستخدام الكائن b كمفتاح. في JavaScript، عند استخدام كائن كمفتاح في كائن آخر، يتم تحويل الكائن أولاً إلى سلسلة باستخدام طريقة toString() . في هذه الحالة، تمثيل السلسلة للكائن b هو "[object Object]" . لذلك، تم تعيين الخاصية "[object Object]" للكائن a على القيمة 123.
a[c] = 456;
مثل الخطوة السابقة، "c" هو أيضًا كائن ويتم تحويله إلى سلسلة، ويصبح ""[object Object]"".
لذلك فإن السطر a[c] = 456; يعادل "a[object Object]"=456، مما يعني أن هذا الكائن يحتوي على "[object كائن]" الخاصية وقيمتها 456.
console.log(a[b])
الإخراج هو 456. عند محاولة الوصول إلى الخاصية "a[b]"، تقوم Javascript مرة أخرى بتحويل b إلى سلسلة، وهي "[object Object]". بما أن الكائن له خاصية بالمفتاح "[object Object]" وقيمته هي 456. لذلك سيتم طباعة الإخراج.
في الملخص، يوضح الكود أنه عند استخدام كائن كمفتاح في كائن آخر، يتم تحويل الكائن أولاً إلى تمثيل سلسلة، وهو "[كائن كائن]" افتراضيًا. وهذا يعني أنه يتم التعامل مع الكائنين b وc على أنهما نفس المفتاح، وآخر قيمة مخصصة لذلك المفتاح هي التي يتم استردادها.
آمل أن لا يوضح هذا التفسير الكود فحسب، بل يثير أيضًا بعض الفضول لاستكشاف المزيد. جافا سكريبت مليئة بالمفاجآت والأدوات القوية، وكل جزء تتعلمه يجعلك أقرب إلى إتقانها.
شكرا على القراءة، وآمل أن تستمتع بهذا الانهيار! لا تتردد في مشاركة أفكارك أو أسئلتك أو أفكارك للمواضيع المستقبلية في التعليقات.
تعليمات سعيدة!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3