Avatar ·

لماذا يعيد ++[[]][+[]]+[+[]] السلسلة "10" في JavaScript؟

مرحباً بالجميع! أتعلم JavaScript وصادفت كوداً غريباً جداً. في مقالة رأيت هذا التعبير: ```javascript console.log(++[[]][+[]]+[+[]]); // يطبع "10" ``` أنا لا أفهم كيف يعمل هذا على الإطلاق. لماذا مصفوفة، وزيادة، ومصفوفة فارغة بين قوسين مربعين، وعلامة زائد مع مصفوفة فارغة تعطي السلسلة "10"؟ أعلم أن في JS هناك تحويل أنواع، لكن هذا يبدو كسحر. حاولت تحليل هذا إلى أجزاء، لكني ارتبكت أكثر. مثلاً، ماذا يعني `++[[]]`؟ أو `+[]`؟ كيف نحصل من كل هذا على "10" تحديداً، وليس شيئاً آخر؟ هل يمكن لأحد أن يشرح خطوة بخطوة ما يحدث بالضبط في هذا التعبير؟ سأكون ممتناً جداً لشرح مفصل، لأنني أريد فهم كيفية عمل العوامل وتحويل الأنواع في JavaScript على مستوى عميق. شكراً! <<>>

تحليل التعبير ++[[]][+[]]+[+[]] خطوة بخطوة

هذا مثال كلاسيكي يوضح عمل تحويل الأنواع والعوامل في JavaScript. دعنا نحلله جزءاً جزءاً.