Default + Rest + Spread
Default
function f(x, y=12) {
// y is 12 if not passed (or passed as undefined)
return x + y;
}
function f(x) {
var y = arguments.length <= 1 || arguments[1] === undefined ? 12 : arguments[1];
console.log(arguments);
// y is 12 if not passed (or passed as undefined)
return x + y;
}
console.log(f(3), f(3, 4) == 15);
Rest parameters
function fun1(...theArgs) {
console.log(theArgs.length);
}
fun1(); // 0
fun1(5); // 1
fun1(5, 6, 7); // 3
function fun1() {
for (var _len = arguments.length, theArgs = Array(_len), _key = 0; _key < _len; _key++) {
theArgs[_key] = arguments[_key];
}
console.log(theArgs.length);
}
fun1(); // 0
fun1(5); // 1
fun1(5, 6, 7); // 3
Spread operator
function myFunction(x, y, z) { }
var args = [0, 1, 2];
myFunction(...args);
function myFunction(x, y, z) { }
var args = [0, 1, 2];
myFunction.apply(null, args);
var parts = ['shoulders', 'knees'];
var lyrics = ['head', ...parts, 'and', 'toes']; // ["head", "shoulders", "knees", "and", "toes"]
var dateFields = readDateFields(database);
var d = new Date(...dateFields);