"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف تفسر JavaScript \"{}\" وتميز بين الكتل والكائنات؟

كيف تفسر JavaScript \"{}\" وتميز بين الكتل والكائنات؟

تم النشر بتاريخ 2024-11-02
تصفح:374

How Does JavaScript Interpret \

عندما تفسر JavaScript "{}" ككتلة فارغة

في JavaScript، عندما يكون هناك زوج فارغ من الأقواس المتعرجة "{}" إذا تمت مواجهتها، يقوم المترجم في البداية بتفسيرها على أنها كتلة فارغة من التعليمات البرمجية بدلاً من كائن فارغ. ينبع هذا السلوك من قواعد اللغة، حيث يعد "Block" أحد أنواع العبارات الأساسية.

Block vs. Object Literal

تُعرّف JavaScript عبارة Block على أنها زوج من الأقواس المتعرجة التي تحتوي على مجموعة من العبارات. من ناحية أخرى، فإن القيم الحرفية للكائنات هي ExpressionStatements ولها أزواج ذات قيمة رئيسية محاطة بأقواس متعرجة.

قاعدة التفسير

يعطي محلل JavaScript الأولوية لتفسير "{}" ككتلة لأنها بنية أكثر تحديدًا من كونها كائنًا حرفيًا. ما لم تكن الأقواس تحتوي على أزواج قيمة مفتاحية أو مسبوقة بكلمات رئيسية مثل "const" أو "let"، فسيتم التعامل معها ككتلة فارغة.

التناقضات بين Node.js وFirebug

كما هو مذكور في الإجابة المقدمة، هناك اختلاف في كيفية تفسير Node.js وFirebug لـ "{}":

    Node.js: التعامل مع "{}" باعتباره التعبير، Node.js يفرضه على قيمة منطقية ويقيمه على خطأ.
  • Firebug: تفسير "{}" كعبارة، لا يقوم Firebug بتقييم الكتلة الفارغة ويعيد "غير محدد."
ينشأ هذا الاختلاف من حقيقة أن Node.js يقوم في المقام الأول بتقييم JavaScript كتعبيرات، بينما تقوم أدوات تطوير Firebug وChrome بتقييم البيانات.

العرض التوضيحي في محركات JavaScript

كما هو موضح في مقتطفات التعليمات البرمجية المقدمة من V8 (محرك Chrome) وSpiderMonkey (محرك Firefox)، يتحقق المحلل في البداية من الأقواس المتعرجة ويشرع في تحليلها ككتلة إذا تم العثور عليها.

باختصار، تفسير JavaScript من "{}" ككتلة فارغة تتبع القواعد النحوية التي تعطي الأولوية لبيانات الكتلة. تنتج التناقضات بين Node.js وFirebug عن أساليب التقييم المختلفة الخاصة بهما، حيث يتعامل Node.js معه كتعبير وFirebug كبيان.

بيان الافراج أعيد طبع هذه المقالة على: 1729221795 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3