قد يبدو العنوان وكأنه مجرد مزحة تنتظرك هنا (أعلم أنها كارثة تحسين محركات البحث). آسف أن يخيب. يتعلق هذا المنشور في الواقع بعوامل التعيين المنطقية لجافا سكريبت المقدمة في ES2021. تابع القراءة لتعرف ما علاقة جورج وروبرت بهذا...
تعتبر عوامل التخصيص المنطقية في الأساس مزيجًا من المنطق المنطقي وعملية التخصيص. ولكن هناك المزيد في هذه المكونات مما قد يعتقده المرء في البداية.
لسبب واحد، قد لا يدرك العديد من المطورين، إن لم يكن معظمهم، مدى عمق المنطق المنطقي في نسيج الحوسبة الحديثة. يمتد من دوائر الكمبيوتر إلى البيانات الشرطية في التعليمات البرمجية الخاصة بك.
نستخدم أيضًا علامة التساوي كل يوم، غالبًا دون التفكير فيها كثيرًا. تم اختراع هذا الرمز، الذي أصبح الآن حاسمًا في كل من الرياضيات والبرمجة، لأغراض رياضية في القرن السادس عشر. وبعد حوالي 400 عام، في الخمسينيات، وجدت طريقها إلى برمجة الكمبيوتر.
إذا كان هذا السياق التاريخي لا يبدو مثيرًا للاهتمام بالنسبة لك، فلا تتردد في الانتقال إلى قسم فهم عوامل التعيين المنطقية. بخلاف ذلك، انضم إلي في رحلة قصيرة عبر الزمن.
تُنسب الدراسات المبكرة للمنطق إلى اليونانيين القدماء، وخاصة أرسطو، الذي يُطلق عليه غالبًا "أبو المنطق". لقد طور نظامًا رسميًا للمنطق والذي وضع الأساس لاستخدام العوامل المنطقية.
بدأ الأساس الرياضي الحقيقي للعوامل المنطقية كما نعرفها اليوم في التبلور مع ظهور المنطق الرمزي في القرن التاسع عشر. ويستخدم الرموز لتمثيل الأشكال والهياكل المنطقية، مما يسمح باستدلال أكثر تعقيدًا وتجريدًا.
قدم جورج بول، عالم الرياضيات والمنطق الإنجليزي في القرن التاسع عشر، في عمله الأساسي "قوانين الفكر" (1854)، منهجًا جبريًا للمنطق. هنا يمكن أن تكون القيم صحيحة أو خاطئة، ويمكن إجراء عمليات على هذه القيم، مماثلة للعمليات الجبرية. يتضمن هذا النظام العوامل المنطقية الأساسية:
بناءً على عمل بول، قام علماء الرياضيات وعلماء المنطق الآخرون بتوسيع نطاق وعمق المنطق الرمزي. وفي منتصف القرن العشرين وجدت أرضًا جديدة وخصبة في مجال علوم الكمبيوتر الناشئ. أثبتت الطبيعة الثنائية للمنطق البولياني أنها مناسبة تمامًا للدوائر الرقمية الموجودة في قلب أجهزة الكمبيوتر، حيث يمكن تمثيل البيانات كسلسلة من 0 و1، ويمكن للمشغلين المنطقيين التحكم في تدفق هذه البيانات.
أصبحت العوامل المنطقية جزءًا أساسيًا من لغات البرمجة، مما يسمح ببناء منطق حسابي معقد وعمليات اتخاذ القرار في البرامج. واليوم، أصبحت جزءًا لا يتجزأ من بناء جملة كل لغة برمجة تقريبًا.روبرت ريكورد
في الأيام الأولى للبرمجة، خاصة مع كود الآلة ولغات التجميع، كان مفهوم "التخصيص" يتعلق أكثر بتخزين البيانات ونقلها بين السجلات ومواقع الذاكرة. تم إعطاء التعليمات باستخدام أكواد تشغيل محددة لتوجيه الجهاز لتنفيذ هذه العمليات.
مع تطور لغات البرمجة عالية المستوى، كانت هناك حاجة إلى طريقة أكثر تجريدًا وقابلة للقراءة من قبل الإنسان لتمثيل عملية تعيين القيم للمتغيرات. أدى هذا إلى اعتماد علامة التساوي كعامل إسناد في العديد من اللغات، بدءًا من لغة فورتران في الخمسينيات من القرن الماضي.
أدى استخدام = للتخصيص إلى خلق بعض الغموض فيما يتعلق بمعناها الرياضي المتمثل في المساواة. أدى ذلك إلى إدخال رموز مختلفة لتوضيح النية في البرمجة:
فهم عوامل التعيين المنطقية
مثال لحالة الاستخدام: تبديل الميزة
تخيل سيناريو حيث يجب تمكين ميزات معينة للمسؤولين فقط:
const isAdmin = user.isAdmin(); let canAccessDashboard = isAdmin; canAccessDashboard &&= user.isAuthenticated(); console.log(canAccessDashboard); // true if user is authenticated, otherwise falseيضمن مقتطف الكود هذا أن canAccessDashboard صحيح فقط إذا كان كل من isAdmin وuser.isAuthenticated() صحيحين، مما يحمي الميزة بشكل فعال بشرطين.
الواجب المنطقي أو (||=)
مثال لحالة الاستخدام: ضبط الإعدادات الافتراضية
const isAdmin = user.isAdmin(); let canAccessDashboard = isAdmin; canAccessDashboard &&= user.isAuthenticated(); console.log(canAccessDashboard); // true if user is authenticated, otherwise falseيعتبر هذا العامل مثاليًا لتهيئة المتغيرات التي لم يتم تعيينها، مما يضمن أن التطبيق الخاص بك يستخدم افتراضيًا معقولاً دون الكتابة فوق القيم الخاطئة التي قد تكون ذات معنى مثل 0 أو خطأ.
مهمة الدمج الفارغة (؟؟=)
يتم استخدام عامل التشغيل ??= لتعيين قيمة لمتغير إذا وفقط إذا كان المتغير فارغًا أو غير محدد حاليًا. وهذا أكثر دقة من العامل ||=، الذي يأخذ في الاعتبار أيضًا القيم الخاطئة الأخرى.
مثال لحالة الاستخدام: إعدادات التكوين الافتراضية
const isAdmin = user.isAdmin(); let canAccessDashboard = isAdmin; canAccessDashboard &&= user.isAuthenticated(); console.log(canAccessDashboard); // true if user is authenticated, otherwise falseيعد عامل التشغيل هذا مفيدًا بشكل خاص في التكوينات والإعدادات حيث يجب أن تملأ الإعدادات الافتراضية القيم المفقودة فقط دون استبدال الإعدادات الخاطئة الأخرى ولكن الصالحة مثل 0.
الفوائد والاعتبارات العملية
مذكرة إضافية
(صورة الغلاف في الأعلى بواسطة starline على Freepik)
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3