React/한입크기로 잘라먹는 리액트
[javaScript] 함수, 함수 표현식, 화살표 함수 , 콜백함수
냠냠쿠
2024. 12. 30. 15:28
728x90
1. 함수
- 아래에 함수가 선언되어도 호이스팅으로 인해 호출이 정상적으로 됨
// 함수
let area1 = getArea(10, 20);
console.log(area1);
let area2 = getArea(30, 20);
console.log(area2);
getArea(120, 200);
function getArea(width, height) {
function another() {
// 중첩 함수
console.log("another");
}
another();
let area = width * height;
return area;
}
2. 함수 표현식
- 함수를 만들어서 바로 변수에 담는것도 가능
- 단 funcB()로는 호출이 불가능함
let varB = function funcB () {
console.log("funcB");
};
let varB = function () { // 이름 생략해도 문제 없음 (익명 함수)
console.log("funcB");
};
3. 화살표 함수
- function을 지우고 소괄호와 중괄호 사이에 화살표를 넣어준다.
let varB = function () {
console.log("funcB");
};
let varB = () => {
console.log("funcB");
};
//값을 반환하기만 한다면 아래와 같이 사용 가능
let varB = () => 1;
//매개변수가 필요하다면 괄호 안에
let varB = (value) => value+1;
//값을 바로 반환하지 않는다면
let varB = (value) => {
console.log("추가작업");
return value+1;
};
4. 콜백 함수
- 원하는 타이밍에 사용도 가능
function main(value){
value(); //매개변수에 sub 함수가 있기 때문에 콘솔에 sub 출력
}
function sub() {
console.log("sub");
}
main(sub); //main함수에 sub 함수 넣어서 보냄 (콜백함수)
function main(value) {
console.log("1");
console.log("2");
sub(); //원하는 순서에 실행 가능
console.log("3");
}
function main(value) {
sub();
}
main(function sub(){ //함수 표현식처럼도 사용 가능
console.log("sub");
});
main(() => { //화살표 함수도 사용 가능
console.log("sub");
});
5. 콜백함수의 활용
function repeat(count) {
console.log("repeat");
for(let idx =1; idx <=count; idx++ ){
console.log(idx);
}
}
function repeatDouble(count) {
console.log("repeatDouble");
for(let idx =1; idx <=count; idx++ ){
console.log(idx * 2);
}
}
repeat(5);
repeatDouble(5);
위와 같이 구조가 흡사한 함수를 만들 때 중복코드 발생을 방지 가능
function repeat(count, callback) {
for(let idx =1; idx <=count; idx++ ){
callback(idx);
}
}
//repeat
repeat(5, function(idx){
console.log(idx);
});
//repeatDouble
repeat(5, function(idx){
console.log(idx*2);
});
//화살표 함수도 사용 가능
repeat(5, (idx) => {
console.log(idx);
});
728x90