Note of Learn ES6
function greet (greeting, name) { console.log(greeting + “, ” + name);}greet();
Output is undefined, undefined
Now set default arguments of name with “John”
function greet (greeting, name = “John”) { console.log(greeting + “, ” + name);}greet();
Output is undefined, John
If we pass in “Hello”
function greet (greeting, name = “John”) { console.log(greeting + “, ” + name);}greet(“Hello”);
Output is Hello, John
If we pass in “Hello”
and “Bill”
, the default value we’ve set to name would be overridden
function greet (greeting, name = “John”) { console.log(greeting + “, ” + name);}greet(“Hello”, “Bill”);
Output is Hello, Bill
function receive (complete) {
complete();
}receive();
This will cause TypeError: undefined is not a function
function receive (complete) {
complete();
}receive(function () {
console.log("complete");
});
Output is complete
We could assign this function as a default function
function receive (complete = function () {
console.log("complete");
}) {
complete();
}receive();
Output is complete
Remember arrow function?
function receive (complete = () => console.log("complete")) {
complete();
}receive();
Output is complete
These default value remind me about python.
If you are crazy about arrow function, you may do this(but don’t, it’s not a good implementation)
let receive = (complete = () => console.log("complete")) => complete();receive();
Output is complete
This kind of code is disaster.