기록

JavaScript Engine - 1 본문

JS/etc

JavaScript Engine - 1

mnmhbbb 2022. 3. 21. 13:19

코드가 실행되기 전에 어떻게 돌아갈지 정확하게 알기 위해 다음 강의를 듣고 정리한 내용

출처: https://youtu.be/NS1cIsWlFGI

 

1. 함수와 함수 호출

// 함수 선언
const add = (a, b) => a + b;
console.log(add(3, 5)); // 8

function calculator(func, a, b) {
    return func(a, b);
}

console.log(calculator(add, 3, 5)); // 8
// func 파라미터 자리에 함수 호출이 아니라 함수를 넣어야 함
// 만약 헷갈린다면, 머릿 속으로 함수 호출을 넣었을 때, 그 함수 호출 넣은 자리에 그 함수 리턴값을 넣어보면 됨
// 그 함수의 리턴값이 없으면 함수 호출 자리에 undefined를 넣은 셈

// 화살표 함수는 return 부분을 주의해야 한다.
// x => {return x * x} 는
// x => x * x 와 같이 중괄호와 return을 생략할 수 있다.
// 함수 바디가 한 줄의 구문일 때 가능하다.

// 고차함수일 경우는 다음과 같다.
const onClick1 = () => () => {
    console.log('hello');
};
const onClick2 = () => {
    return () => {
        console.log('hello');
    };
};

// 다만 객체 반환 시 return을 생략할 때는 소괄호를 사용한다.
// () => { return { a: 1 }; }
// () => ({ a: 1})
Comments