في الآونة الأخيرة ، عند النظر إلى رمز الواجهة الأمامية الأجنبية ، وجدت أن الميزات الجديدة لـ ES6 أصبحت شائعة جدًا ، خاصةً Let ، والتطبيقات شائعة جدًا.
على الرغم من أن استخدام LET هو نفسه VAR ، فقد تحسن كثيرًا من حيث بناء الجملة والدلالات والأداء. دعنا نقارنها من هذين الجانبين أدناه
بناء الجملة >>
لـ (var i = 0 ؛ i <2 ؛ i ++) {console.log ('Outer i:'+i) ؛ لـ (var i = 0 ؛ i <2 ؛ i ++) {console.log ('Inner i:'+i) ؛}}هذه حلقة متداخلة شائعة ، وكلها تحدد المتغير I للعد ، ونتيجة التنفيذ هي كما يلي:
الخارجي I: 0
الداخلية أنا: 0
الداخلية أنا: 1
يمكنك أن ترى أن الحلقة الخارجية قد انقطعت لأن قيمة I يتم تعديلها بواسطة الحلقة الداخلية. الحل المعتاد هو استخدام متغيرات أخرى في الحلقة الداخلية ، ولكن قد يسبب خطأ إذا كنت بطريق الخطأ
الآن قم بتغيير var للسماح
من أجل (دع i = 0 ؛ i <2 ؛ i ++) {console.log ('OUTER I:'+i) ؛ من أجل (دع i = 0 ؛ i <2 ؛ i ++) {console.log ('Inner i:'+i) ؛}}نتيجة الإخراج هي:
الخارجي I: 0
الداخلية أنا: 0
INNER I: 1outer I: 1
الداخلية أنا: 0
الداخلية أنا: 1
إنه أمر طبيعي ، فإن الطبقات الداخلية والخارجية ليس لها أي تأثير ، لأن السماح يجعل نطاق المتغير فقط داخل كتلة خاصة به.
مثال 2
console.log (a) ؛ var a = 'hi' ؛
نتيجة الإخراج غير محددة. تنفيذ السجل (أ) قبل إعلان المتغير. لماذا لا يوجد خطأ؟ لأن التأثير الفعلي لهذين الخطين من الكود هو:
var a ؛ console.log (a) ؛ a = 'hi' ؛
عند تحليل رمز JS ، سيتم مطالب الإعلان المتغير إلى موضع البداية ، وهو أمر محير أيضًا
بعد استخدام Let بدلاً من ذلك ، لن تكون هناك مشكلة ، وسيتم الإبلاغ عن خطأ مباشرة.
console.log (a) ؛ // unitive referenererror: A غير محدد A = 'hi' ؛
اختبار بسيط للأداء
var start = + new date () ؛ for (var i = 0 ؛ i <1000000 ؛ i ++) {var num = 123 ؛ var str = 'abc' ؛ var obj = {key: 'value'} ؛ var arr = ['bill' ، 'dell'] ؛متوسط نتيجة التنفيذ بموجب Firefox هو 53 مللي ثانية
التغيير للسماح
"استخدم Strict'var start = + new Date () ؛ for (var i = 0 ؛ i <1000000 ؛ i ++) {let num = 123 ؛ دع str = 'abc' ؛ دع obj = {key: 'value'} ؛ let arr = ['bill' ، 'dell'] ؛النتيجة المتوسطة هي 5 مللي ثانية ، والتسريع واضح
ما سبق هو مزايا القواعد الجديدة لـ JavaScript6 دعك قدم لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!