Freecodecamp: يجب عدم تشجيع "var".

تم إنشاؤها على ١٣ أغسطس ٢٠١٦  ·  3تعليقات  ·  مصدر: freeCodeCamp/freeCodeCamp

هناك مشكلة في النطاق والوظائف العالمية للتحدي.
وكيل المستخدم هو: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 .
يُرجى وصف كيفية إعادة إظهار هذه المشكلة ، وتضمين روابط إلى لقطات الشاشة إن أمكن.

رمز بلدي:

// Declare your variable here
var myGlobal = 10;

function fun1() {
  // Assign 5 to oopsGlobal Here

}

// Only change code above this line
function fun2() {
  var output = "";
  if (typeof myGlobal != "undefined") {
    output += "myGlobal: " + myGlobal;
  }
  if (typeof oopsGlobal != "undefined") {
    output += " oopsGlobal: " + oopsGlobal;
  }
  console.log(output);
}

نحتاج إلى بدء استخدام es6 let و const . إعلان المتغير var احتمال حدوث خطأ.

discussing

التعليق الأكثر فائدة

تضمين التغريدة

وقت استخدام وعدم استخدام var ليس دائمًا متروكًا للمطور الفردي ولكن في معظم الأحيان يعتمد ذلك على الفريق.

على الرغم من أنني لم أجد وقتًا لا يمكن فيه استبدال var بـ let أو const لقد تحدثت إلى مهندس في OpenTable ، والذي قام مؤخرًا بإعادة تشكيل قاعدة الرموز الخاصة بهم لاستخدامها ES2015 ، وقد ذكر أن هناك حالة واحدة كان فيها let أو const هو سبب الخلل و var كان لا بد من استخدامه لكنه لم يتذكر التفاصيل الدقيقة لـ لماذا كان ذلك.

لا أعتقد أن var يجب أن يُثبط عزيمته. من الأفضل شرح الطريقة التي يعمل بها var والسماح للمطور بالاختيار بمجرد المضي قدمًا في رحلتهم نحو التنوير.

هناك أيضًا بعض الغرابة مع let و const التي إذا لم تكن على دراية بها يمكنك من خلال بعض الحلقات (انظر: المنطقة الميتة المؤقتة ). لا يؤدي هذا إلى استبعاد استخدام let و const ، على الرغم من أن هذا أمر مزعج. هذا يعني فقط أن التملص من شيء ما لا يقل أهمية عن معرفة الشيء.

ال 3 كومينتر

سيتم تغطية ميزات ES6 بما في ذلك let و const بالتفصيل في مواضيع المناهج الجديدة التي يتم تطويرها حاليًا (انظر هنا ). ستتطرق هذه التحديات أيضًا إلى المشكلات التي يمكن أن تنتج عن تحديد النطاق / الرفع عند استخدام var .

في الوقت الحالي ، يعتبر هذا التحدي بمثابة مقدمة لتحديد النطاق وبعض المشكلات التي يجب البحث عنها عند استخدام var ، ولا يزال يحتوي على معلومات مفيدة حيث من المحتمل أن يصادف المخيمون تعليمات برمجية من مصادر أخرى (أقدم) تقوم بذلك. استخدم var (مثل الشفرة القديمة ، إلخ) ، ولذا فهي مقدمة مفيدة للقضايا التي تمت مناقشتها.

قد تكون هناك حجة لإزالة الخط

يجب أن تعلن دائمًا عن متغيراتك باستخدام var.

أو تغييره مع بعض التحذير فيما يتعلق بالتعرف على let و const لاحقًا ، لكنني أعتقد أن هذا التحدي جيد بالنسبة للمقدمة الأولى للموضوع.

أفكار cc @ FreeCodeCamp / issue-moderators؟

تضمين التغريدة

وقت استخدام وعدم استخدام var ليس دائمًا متروكًا للمطور الفردي ولكن في معظم الأحيان يعتمد ذلك على الفريق.

على الرغم من أنني لم أجد وقتًا لا يمكن فيه استبدال var بـ let أو const لقد تحدثت إلى مهندس في OpenTable ، والذي قام مؤخرًا بإعادة تشكيل قاعدة الرموز الخاصة بهم لاستخدامها ES2015 ، وقد ذكر أن هناك حالة واحدة كان فيها let أو const هو سبب الخلل و var كان لا بد من استخدامه لكنه لم يتذكر التفاصيل الدقيقة لـ لماذا كان ذلك.

لا أعتقد أن var يجب أن يُثبط عزيمته. من الأفضل شرح الطريقة التي يعمل بها var والسماح للمطور بالاختيار بمجرد المضي قدمًا في رحلتهم نحو التنوير.

هناك أيضًا بعض الغرابة مع let و const التي إذا لم تكن على دراية بها يمكنك من خلال بعض الحلقات (انظر: المنطقة الميتة المؤقتة ). لا يؤدي هذا إلى استبعاد استخدام let و const ، على الرغم من أن هذا أمر مزعج. هذا يعني فقط أن التملص من شيء ما لا يقل أهمية عن معرفة الشيء.

شكرا لك على المدخلات. كلاهما نقاط جيدة. أعتقد أن هذا كله يعتمد على الرأي. ومع ذلك ، سأقف إلى جانب بياني ، وسأذهب إلى حد الوعظ لاستخدام البيانات غير القابلة للتغيير ، واستخدام مكتبات مثل immutable.js أو mori لمنع حدوث طفرات غير متوقعة في البيانات. ✌️

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات