Javascript
화살표 함수
화살표 함수(Arrow Function) =>
ECMA Script6 이후 함수 도입
비교연산자랑 헷갈리지 말자
기존 함수와 비교 해보자 (일반함수, 익명함수)
🍖 일반함수 : 직접호출
function add1(a, b){
console.log(a);
console.log(b);
return a+b;
}
console.log(add1); // 함수구문이 출력
console.log(add1(2,3)); // 2랑 3이랑 5 출력
return을 통해 함수구문 내부에서 결합된 값을 호출한 대상으로 돌려준다.
(함수구문 외부로 반출이 가능)
🍖 익명함수 : 간접호출
const add2 = function(c, d){
console.log(c);
console.log(d);
return c+d;
}
console.log(add2(10, 20)); // 10, 20, 30 출력
🍖 화살표 함수 적용
- function 단어 제거
- {} 대신에 => 를 사용
- (return 문만 존재시) return 단어 제거
const add3 = (c, d) => c+d;
console.log(add3(10, 20)); // 30 출력
완전 간단해졌다!
🍖 화살표 함수 - 매개변수가 하나만 존재할 때
const add4 = (g) => g+9;
console.log(add4(6, 32)); // 15
const add5 = g => g+9;
console.log(add4(6, 32)); // 15
이렇게 괄호를 뺄 수 있다! (g) → g
단, 함수구문이 return 문만 존재하지 않은 경우 중괄호를 생략하면 안된다!
const calc1 = (a, b, c) => {
let sum = (a+b)*c;
console.log(sum);
return `최종 결과값 : ${sum}`;
}
console.log(calc1(12, 14, 2)); // 최종 결과값 : 52
또한 매개변수가 없어도 () 를 적어야한다!
const func2 = () => {
console.log(`func2의 호출에 의한 함수 실행`);
}
func2();
호이스팅
Hoisting : 함수의 호출문 위치에 따라서 함수구문을 호출가능한가?
func1(); // func1의 호출에 의한 함수 실행
function func1(){
console.log(`func1의 호출에 의한 함수 실행`);
}
함수 선언보다 실행을 먼저했는데 실행이 가능함!
일반함수는 호이스팅이 적용되기 때문에 스크립트 구문의 상단으로 올라감
하지만 이러면 순서가 꼬일 수 있어서 치.명.적
그래서 익명함수는 호이스팅을 막아주는 역할을 담당
func3(); // Uncaught ReferenceError: Cannot access 'func2' before initialization
const func3 = function(){
console.log(`func3의 호출에 의한 함수 실행`);
}
'🧠 저장 > Javascript' 카테고리의 다른 글
Javascript - 프로토타입, 클래스, 상속 (0) | 2022.09.14 |
---|---|
Javascript - 이벤트 (0) | 2022.09.13 |
Javascript - 배열과 객체, 전개연산자 (0) | 2022.09.01 |
Javascript - var, let, const 비교 (0) | 2022.08.30 |
Javascript - 템플릿, 삼항조건연산자 (0) | 2022.08.30 |