JS 003: Constant Declarations in Loops

by Nico D

JavaScript

var version = 1;
var exampleNumber = 1;
const log = function(message) {
  if (version < exampleNumber) {
    version = exampleNumber;
    document.write("<br/>");
  }
  const title = 'EXAMPLE ' + exampleNumber + ': ';
  document.write(title + message + "<br/>");
};
//////////////////////
exampleNumber = 1;
try {
  var funcs = [];
  for (const i = 0; i < 10; i++) {
    funcs.push(function() {
      log(i);
    });
  }
} catch (e) {
  log("ERROR => " + e.message);
}
//////////////////////
exampleNumber = 2;
try {
  var funcs2 = [],
    object = {
      a: true,
      b: true,
      c: true
    };

  // doesn't cause an error
  for (const key in object) {
    funcs2.push(function() {
      log(key);
    });
  }

  funcs2.forEach(function(func) {
    func();
  });
} catch (e) {
  log("ERROR => " + e.message);
}