2016-05-04 10 views
6

मैं ES6 के बारे में पढ़ रहा हूं कीवर्ड बनाम मौजूदा var कीवर्ड।चलो बनाम var प्रदर्शन

मुझे कुछ प्रश्न हैं। मैं समझता हूं कि "स्कोपिंग" चलो और var के बीच एकमात्र अंतर है लेकिन बड़ी तस्वीर के लिए इसका क्या अर्थ है?

function allyIlliterate() { 
    //tuce is *not* visible out here 

    for(let tuce = 0; tuce < 5; tuce++) { 
     //tuce is only visible in here (and in the for() parentheses) 
    }; 

    //tuce is *not* visible out here 
}; 

function byE40() { 
    //nish *is* visible out here 

    for(var nish = 0; nish < 5; nish++) { 
     //nish is visible to the whole function 
    }; 

    //nish *is* visible out here 
}; 

अब मेरे सवालों का:

  1. वर से अधिक करने देगा posses किसी भी स्मृति (/ प्रदर्शन) लाभ?

  2. ब्राउज़र समर्थन के अलावा, मुझे कारणों का उपयोग क्यों करना चाहिए?

  3. क्या यह मेरे कोड वर्कफ़्लो में var से अधिक का उपयोग करना शुरू करना सुरक्षित है?

धन्यवाद, आर

+0

क्या आपने कोशिश करने और खोजने के लिए कोई बेंचमार्किंग किया है? यही वह जगह है जहां सबूत है। – tadman

+0

मैंने बेंचमार्किंग की कोशिश नहीं की है लेकिन बीमार है क्योंकि आपने एक अच्छा सवाल उठाया है – TechnoCorner

+3

यह सुनिश्चित नहीं है कि इसे डुप्लिकेट क्यों चिह्नित किया गया था। "डुप्लीकेट" लिंक पर प्रदर्शन का कोई कवरेज नहीं है। लेकिन आपके प्रश्न का उत्तर देने के लिए, [यह निर्भर करता है] (https://kpdecker.github.io/six-speed/)। यदि आप नोड v6 में ES6 'let' और' const' कीवर्ड का उपयोग कर रहे हैं, तो यह स्पष्ट रूप से धीमा है। कुछ मुद्दे क्रोम 49 और 52 में भी आते हैं, लेकिन फ़ायरफ़ॉक्स 46 और 49 में ES6 'let' और' const' बनाम 'var' के बीच प्रदर्शन में कोई अंतर नहीं है। – timolawl

उत्तर

5

देना node.js. में वर तुलना में बहुत धीमी है वैसे भी संस्करण v6.3.0। कभी-कभी यह नाटकीय है। यदि आप var के साथ var को प्रतिस्थापित करते हैं तो नीचे दिया गया कोड लगभग तीन गुना धीमा है:

function collatz() { 
    var maxsteps = 0; 
    var maxval = 0; 

    var x = 1; 
    var n; 
    var steps; 

    while (x < 1000000) { 
     steps = 0; 
     n = x; 
     while (n > 1) { 
      if (n & 1) 
       n = 3*n + 1; 
      else 
       n = n/2; 
      steps += 1; 
     } 
     if (steps > maxsteps) { 
      maxsteps = steps; 
      maxval = x; 
     } 
     x += 1; 
    } 
    console.log(maxval + ' - ' + maxsteps + ' steps'); 
} 

collatz(); 
संबंधित मुद्दे