[자바스크립트] 4. 함수

1. 선언

function hi() {
    console.log('hi');
}
hi();

function log(message) {
    console.log(message);
}
log('hello');

2. parameters

primitive : 값 전달
objective : 참조 전달

function chnageName(obj) {
    obj.name = 'park';
}
const kim = {name : 'kim'};
chnageName(kim);
console.log(kim);

3. Default parameters

mozilla - default parameters
값이 없거나 undefined가 전달될 경우 이름붙은 매개변수를 기본값으로 초기화

function showMessage(message, from='unknown') {
    console.log(`${message} by ${from}`);
}
showMessage('Hi!');

4. Rest parameters

mozilla - rest parameters
배열 형태로 전달

function printAll(...args) {
    for (let i = 0; i < args.length; i++) {
        console.log(args[i]);
    }
    for (const arg of args) {
        console.log(arg);
    }
}
printAll('a','b','c');

5. Local scope

밖에서는 안이 보이지 않고 안에서는 밖을 볼 수 있다.

6. return

7. early return

쓸데 없는 로직 방지 : 조건 맞지 않을 시 빨리 return, 필요한 로직은 뒤에 작성


일급 함수

함수를 객체처럼 사용 가능

1. function expression

const print = function() { // 익명 함수
    console.log('print');
}
print();
const print2 = print;
print2();
const sum2 = sum;
console.log(sum2(2,3));

2. callback

함수를 파라미터로 전달했을 때 특정 시점에 그 함수를 실행

function randomQuiz(answer, printYes, printNo) {
    if (answer === 'love') {
        printYes();
    } else {
        printNo();
    }
}
const printYes = function() {
    console.log('yes');
}
const printNo = function() {
    console.log('no');
}
randomQuiz('love', printYes, printNo);
randomQuiz('live', printYes, printNo);

3. arrow function

const test = () => console.log('test');
const add = (a,b) => a+b;

IIFE

정의와 동시에 실행하는 함수

(function hello() {
    console.log('hello');
})();

좋은 웹페이지 즐겨찾기