عندما تفسر JavaScript "{}" ككتلة فارغة
في JavaScript، عندما يكون هناك زوج فارغ من الأقواس المتعرجة "{}" إذا تمت مواجهتها، يقوم المترجم في البداية بتفسيرها على أنها كتلة فارغة من التعليمات البرمجية بدلاً من كائن فارغ. ينبع هذا السلوك من قواعد اللغة، حيث يعد "Block" أحد أنواع العبارات الأساسية.
Block vs. Object Literal
تُعرّف JavaScript عبارة Block على أنها زوج من الأقواس المتعرجة التي تحتوي على مجموعة من العبارات. من ناحية أخرى، فإن القيم الحرفية للكائنات هي ExpressionStatements ولها أزواج ذات قيمة رئيسية محاطة بأقواس متعرجة.
قاعدة التفسير
يعطي محلل JavaScript الأولوية لتفسير "{}" ككتلة لأنها بنية أكثر تحديدًا من كونها كائنًا حرفيًا. ما لم تكن الأقواس تحتوي على أزواج قيمة مفتاحية أو مسبوقة بكلمات رئيسية مثل "const" أو "let"، فسيتم التعامل معها ككتلة فارغة.التناقضات بين Node.js وFirebug
كما هو مذكور في الإجابة المقدمة، هناك اختلاف في كيفية تفسير Node.js وFirebug لـ "{}":
العرض التوضيحي في محركات JavaScript
كما هو موضح في مقتطفات التعليمات البرمجية المقدمة من V8 (محرك Chrome) وSpiderMonkey (محرك Firefox)، يتحقق المحلل في البداية من الأقواس المتعرجة ويشرع في تحليلها ككتلة إذا تم العثور عليها.باختصار، تفسير JavaScript من "{}" ككتلة فارغة تتبع القواعد النحوية التي تعطي الأولوية لبيانات الكتلة. تنتج التناقضات بين Node.js وFirebug عن أساليب التقييم المختلفة الخاصة بهما، حيث يتعامل Node.js معه كتعبير وFirebug كبيان.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3