var _toConsumableArray = ...; function add(a, b) { return a + b; } // var nums = [1, 2]; console.log( add.apply(undefined, _toConsumableArray(nums)) ); function add(a, b) { return a + b; } // var nums = [1, 2]; console.log( add(...nums) ); Call
function add(a, b) { return a + b; } var nums = [1, 2]; console.log( add.apply(undefined, nums) ); function add(a, b) { return a + b; } var nums = [1, 2]; console.log( add(...nums) ); Type tracking
var team1 = ["React", "Ember"]; var team2 = ["Angular", "Polymer"]; var players = [...team1, ...team2]; Internal type tracking var team1 = ["React", "Ember"]; var team2 = ["Angular", "Polymer"]; var players = [].concat(team1, team2);
var byte = 1; var kilo = 1000; var mega = 1000000; var giga = 1000000000; var byte = 1; var kilo = byte * 1000; var mega = kilo * 1000; var giga = mega * 1000; Immutable constants
Simple conversion var multiplesOfFive = []; for (let i = 0; i < 5; i++) { multiplesOfFive.push(i * i); } var multiplesOfFive = []; for (var i = 0; i < 5; i++) { multiplesOfFive.push(i * i); }
var pages = []; for (var i = 0; i < 5; i++) { (function (i) { getPage(i, function (items) { pages[i] = items; }); })(i); } References inside a closure var pages = []; for (let i = 0; i < 5; i++) { getPage(i, function (items) { pages[i] = items; }); }
var pages = []; for (var i = 0; i < 5; i++) { var _ret = (function (i) { getPage(i, function (items) { pages[i] = items; }); if (i >= 2) return { v: "TOO MANY" }; })(i); if (typeof _ret === "object") { return _ret.v; } } References inside a closure with a return var pages = []; for (let i = 0; i < 5; i++) { getPage(i, function (items) { pages[i] = items; }); if (i >= 2) return "TOO MANY"; }
var pages = []; for (var i = 0; i < 5; i++) { var _ret = (function (i) { getPage(i, function (items) { pages[i] = items; }); if (i % 2) return "continue"; })(i); if (_ret === "continue") continue; } References inside a closure with a continue var pages = []; for (let i = 0; i < 5; i++) { getPage(i, function (items) { pages[i] = items; }); if (i % 2) continue; }
var pages = []; for (var i = 0;; i++) { var _ret = (function (i) { getPage(i, function (items) { pages[i] = items; }); if (i % 2) return "continue"; if (i === 5) return "break"; })(i); switch (_ret) { case "continue": continue; case "break": break; } } References inside a closure with a continue and a break var pages = []; for (let i = 0;; i++) { getPage(i, function (items) { pages[i] = items; }); if (i % 2) continue; if (i === 5) break; }
var pages = []; pageLoop: for (var i = 0;; i++) { var _ret = (function (i) { getPage(i, function (items) { pages[i] = items; }); if (i % 2) return "continue|pageLoop"; if (i === 5) return "break|pageLoop"; return { v: "pages!" }; })(i); switch (_ret) { case "continue|pageLoop": continue pageLoop; case "break|pageLoop": break pageLoop; default: if (typeof _ret === "object") return _ret.v; } } References inside a closure with a label, continue, break and return… var pages = []; pageLoop: for (let i = 0;; i++) { getPage(i, function (items) { pages[i] = items; }); if (i % 2) continue pageLoop; if (i === 5) break pageLoop; return "pages!"; }