تتمتع JavaScript بسمعة سيئة على الإنترنت ، لكن من الصعب عليك العثور على لغة أخرى مثلها ديناميكية للغاية ، وتستخدم على نطاق واسع ، متجذرة للغاية في حياتنا. جعلت عتبة التعلم المنخفضة العديد من الناس يسمونها لغة برمجة نصية في مرحلة ما قبل المدرسة. شيء آخر يجعل الناس يضحكون عليه هو مفهوم اللغة الديناميكية التي تستخدم معايير عالية من أنواع البيانات الثابتة. في الواقع ، اتخذت أنت وجافا سكريبت الموقف الخاطئ ، والآن تجعل JavaScript غاضبًا جدًا. فيما يلي خمسة أسباب تجعل تقنية JavaScript رهيبة.
1. أنت لا تستخدم مساحة الاسم.
هل ما زلت تتذكر أنه في الكلية ، أخبرك المعلمون بعدم استخدام المتغيرات العالمية في واجبك المنزلي؟ استخدام المتغيرات العالمية في JavaScript ليس استثناء. إذا لم تكن حريصًا ، فستصبح فوضويًا وهناك نصوص فوضوية ومكتبات نصية موجودة من كل ركن من أركان الإنترنت. إذا قمت بتسمية محمل متغير () ، فأنت تتسبب عمداً في المتاعب. إذا قمت بتحميل وظيفة بشكل غير واعي ، فلن يذكرك JavaScript على الإطلاق. هل تسميها أيضًا لغة برمجة ما قبل المدرسة ، تذكر؟ ما سأقوله هو أنك بحاجة إلى معرفة ما يحدث بعد القيام بذلك.
نسخة الكود كما يلي:
دالة derp () {Alert ("one") ؛ }
دالة derp () {Alert ("اثنين") ؛ }
derp () ؛
"اثنان" ، الجواب هو "اثنان". هذا ليس هو الحال بالضرورة ، يمكن أن يكون "واحد". لذلك ، من السهل وضع كل الكود في مساحة الاسم الخاصة بك. فيما يلي طريقة بسيطة لتحديد مساحة الاسم الخاصة بك.
نسخة الكود كما يلي:
var foospace = {} ؛
foospace.derp = function () {Alert ("one") ؛ }
دالة derp () {Alert ("اثنين") ؛ }
foospace.derp () ؛
2. أنت تصنع الحيل ، يمكنك تحديد المتغيرات واحدة تلو الأخرى.
استخدامك لمجموعة لا يمكن تفسيرها من الأرقام كأسماء متغيرة هو نهاية خسارة. البحث عن متغير حرف دون أي معنى في كتلة رمز من 40 سطر هو كابوس للصيانة. يعد خلط الإعلان الأول للمتغير في كتلة رمز من 40 خطًا أيضًا كابوسًا. حتى عندما تواجه مثل هذا المتغير بنفسك ، لا يمكنك إلا أن تسأل نفسك: "أين يتم تعريف هذا؟" ، ثم استخدم مجموعة Ctrl+F بسرعة للعثور على التعريف الأولي لهذا المتغير في الكود المصدري. لا ، لا تفعل هذا ، على العكس من ذلك ، إنه إساءة مع جافا سكريبت ونهج غبي. يجب عليك دائمًا تحديد المتغير في أعلى نطاق استخدامه. لا يمكن القول أنه نظرًا لأن هذا ليس ضروريًا ، لا يمكنك القيام بذلك.
نسخة الكود كما يلي:
وظيفة(){
var a ، // الوصف
ب ؛ //وصف
//عملية…
}
3. أنت لا تفهم النطاق المتغير لجافا سكريبت.
أنت مبرمج عبقري ، أنت تأكل قائمة C ++ وقائمة السحب. أنت تعرف ما هي نطاقات المتغيرات ، لديك سيطرة كاملة على متغيراتك ، وأنت تشاهدها مثل الإمبراطور الأعلى. ومع ذلك ، فإن JavaScript يسحب القرف في قهوتك ويضحك إلى ما لا نهاية.
نسخة الكود كما يلي:
var herp = "one" ؛
{
var herp = "two" ؛
}
تنبيه (هرب) ؛
في هذه الحالة ، تحصل على هربس ليس "واحد" ، ولكن "اثنان". لا يعتمد النطاق الصحيح المتغير الخاص بـ JavaScript على كتل التعليمات البرمجية مثل اللغات الأخرى. تعتمد نطاقات متغير JavaScript على وظائف. كل وظيفة لها نطاق متغير خاص بها ، وجافا سكريبت باردة بهذه الطريقة ، متجاهلة النطاق ملفوف في أقواس لا معنى لها. في الواقع ، فإن JavaScript رائع جدًا بحيث يمكنك حتى تمرير نطاقات متغيرة مثل مساحات الأسماء أو المتغيرات.
4. تعتقد أن الميزات الموجهة للكائنات في JavaScript تم تطعيمها للتو.
JavaScript ، منذ بدايتها ، كانت لغة موجهة نحو الكائن. كل شيء هو كائن في جافا سكريبت ، كل شيء! حتى الرموز الحرفية مثل الأرقام والأحرف يمكن تحويلها إلى كائنات من خلال مُنشئها المتأصل. بالمقارنة مع اللغات الأخرى الموجهة للكائنات ، تختلف JavaScript من حيث أنه لا يحتوي على فئات. يتم تعريف كائنات JavaScript مثل الوظائف ، وحتى الوظائف نفسها هي كائنات. JavaScript لديه خاصية تسمى النموذج الأولي. هذه الخاصية مدمجة في جميع الكائنات. يمكنك تغيير بناء الكائن ، وتعديل الكائن ، وإضافة المزيد من المتغيرات ، والمزيد من الوظائف.
نسخة الكود كما يلي:
var derp ؛ // سوف يحمل مثيل هربس
var herp = function () {
this.opinion = "JavaScript أكثر برودة من الأساسي." ؛
}
herp.prototype.speak = function () {Alert (this.opinion) ؛ }
var derp = new herp () ؛
derp.speak () ؛
إذا بدا أن هذا لا علاقة لك ، أود أن أقدم لك صديقي العزيز Google لك ، وهو أمر جيد في مساعدة الناس على تعلم المعرفة. يعتبر الكائن الموجهة نحو كائن موضوعًا كبيرًا لمقالتي القصير المنخفضة.
5. عندما تستخدم الكلمة الرئيسية "الجديدة" ، فهي مثل رجل أعمى وحصان أعمى.
يجب أن تكون JavaScript صديقتك الأولى لأنك تبدو في حيرة. إذا كنت ترغب في إرضاء JavaScript مثل الشخص الحقيقي ، فأنت بحاجة إلى فهم رموز الكائن. لا تحتاج بشكل أساسي إلى استخدام الكلمة الرئيسية الجديدة إلا عندما تحتاج إلى إنشاء كائن ما ، أو في حالات نادرة يتم فيها تحميل البيانات بطريقة متأخرة. يعد تعيين عدد كبير من العناوين المتغيرة الجديدة في JavaScript عملية بطيئة للغاية ، ولأسباب الكفاءة ، يجب عليك دائمًا استخدام رموز الكائنات.
نسخة الكود كما يلي:
var rightway = [1 ، 2 ، 3] ؛
VAR Wressway = صفيف جديد (1 ، 2 ، 3) ؛
هل تتذكر أنني قلت إن النطاق المتغير لـ JavaScript يعتمد على وظائف؟ هل تتذكر شخصًا يقول أن كائنات JavaScript يتم تعريفها مثل الوظائف؟ إذا لم تستخدم الكلمة الرئيسية الجديدة لإعلان كائن ، فستجعل هذا الكائن نطاقًا عالميًا. لذلك ، من الجيد استخدام الكلمة الرئيسية الجديدة دائمًا لإعلان الكائنات.
نسخة الكود كما يلي:
var derp = "one" ؛
var herp = function () {
this.derp = "two" ؛
}
var foo = herp () ؛
تنبيه (DERP) ؛
إذا كتبت بهذه الطريقة ، فلن يهتم JavaScript ، والإجابة التي تنبثق حقًا هي "اثنان"! هناك العديد من الطرق لمنع الكائنات من القيام بمثل هذا السلوك ، والتي يمكن استخدامها لاستخدام مثيل ، ولكن هناك طريقة أفضل هي استخدام الكلمة الرئيسية الجديدة بشكل صحيح ، مما يجعلها أكثر احترافًا.
أنت الآن تعلم أن رمز JavaScript الخاص بك أمر فظيع ، وإذا كنت تتذكر ما هو مذكور أعلاه ، فسيتحسن الرمز الخاص بك. أرغب في استخدام 3 مفاتيح TAB لإدخال الكود ، أود استخدام السطح السفلي لتوصيل الكلمات ، أود الاستفادة من الحرف الأولي للوظيفة للإشارة إلى أنه كائن. بالطبع ، هذا هو مناقشة أخرى. هناك العديد من الأسباب التي تجعل رمز JavaScript سيئًا ، تمامًا مثل أن لدي الكثير من المهارات ، لذلك يمكنني التعبير عن آرائك ودعمك واعتراضك وإعطائي بعض النصائح في التعليقات.
شكرًا جزيلاً على Rogeliorv و Jared Wein لإشارة الأخطاء في النقطة 5. أنت قوي جدًا.