사용하지않는공간

[JS] 화살표 함수

반나무 2021. 2. 20. 12:20

function name(param1, param2) { body... return; }

함수는 한가지의 일을 하는거로 하는게 좋음

함수의 이름은 동사로 짓는게 좋음

JS에서 function은 object이기 때문에 변수에 할당하거나 param로 전달도 가능

function printHello(){
	colsole.log("Hello");
}

printHello();

 

1. 디폴트 매개변수

 

2. Rest 매개변수 ...[args] 배열 형태로 저장된다.

function printAll(...args){
	
    // 1. 기본 for문
	for(let i=0; i<args.length; i++){
    	console.log(args[i]);
    }
    
    // 2. of for문
    for(const arg of args){
    	console.log(arg);
    }
    
    // 3. foreach문
    args.forEach((arg) => console.log(arg));
}

printAll("Hello", "Hi", "안녕");

 

3. 지역변수

4.

5. Early return, early exit

// 이런건 별로
function upgradeUser(user){
	if(user.point > 10){
    }
}


// 이게 더 낫다
function upgraderUser(user){
	if(user.point <= 10){
    	return;
    }
}

Function expression

// 익명 함수
const print = function () {
	console.log("print");
};

콜백 함수 : 함수가 함수를 요청한다 느낌?

function randomQuiz(answer, printYes, printNo){
	if(answer === "love u"){
    	printYes();
    } else {
    	printNo();
    }
}

// 익명 함수
const printYes = function () {
	console.log("yes");
}

// 네임드 함수
const printNo = function print() {
	console.log("no");
}

randomQuiz('love u',printYes, printNo);

화살표 함수(항상 익명 함수)

// 원본
const simplePrint = function () {
	console.log("simplePrint");
}

// 화살표 함수
const simplePrint = () => console.log("simplePrint");

// 복잡한건 블록으로 잡아서 처리가능 -> 그러면 return이 필요함
const add = (a,b) => {
	return a + b;
}

IIFE : Immediately Invoked Function Expression

함수가 바로 실행됨.

(function hello(){
	console.log('IIFE');
})();
반응형