1. 함수 선언 Function declaration
function name(param1, param2) { body... return; }
one function === one thing
naming: doSomething, command, verb / e.g. createCardAndPoint -> createCard, createPoint
function is object in JS
function printHello() {
console.log('Hello'); //
}
printHello();
function log(message) {
console.log(message);
}
log('Hello@'); // -> [Hello@]
log(1234); // -> [1234]
2. 파라미터 Parameters
function changeName(obj) {
obj.name = 'coder';
}
const ellie = { name: 'ellie' };
changeName(ellie);
console.log(ellie); // -> [{name: "coder"}]
3. Default parameters (added in ES6)
function showMessage(message, from = 'unknown') {
console.log(`${message} by ${from}`);
}
showMessage('Hi!'); // -> [Hi! by unknown]
4. Rest parameters (added in ES6)
function printAll(...args) {
for (let i = 0; i < args.length; i++) {
console.log(args[i]);
}
for (const arg of args) {
console.log(arg);
}
args.forEach((arg) => console.log(arg));
}
printAll('dream', 'coding', 'ellie');
5. Local scope
let globalMessage = 'global'; // global variable
function printMessage() {
let message = 'hello';
console.log(message); // local variable
console.log(globalMessage);
function printAnother() {
console.log(message);
let childMessage = 'hello';
}
console.log(childMessage); // -> [error]
}
printMessage();
6. Return a value
function sum(a, b) {
return a + b;
}
const result = sum(1, 2); // 3
console.log(`sum: ${sum(1, 2)}`); // -> [sum: 3]
7. Early return, early exit
function upgradeUser(user) {
if (user.point > 10) {
// long upgrade logic...
}
}
function upgradeUser(user) {
if (user.point <= 10) {
return;
}
// long upgrade logic...
}