개발 공부/JavaScript

5. Arrow function

무우너대갈 2022. 1. 18. 15:55
반응형

Function 

  - sub program

  - 프로그램을 구성하는 굉장히 기본적인 building block

  - 여러번 재사용 가능

  - 한가지의 태스크, 값 계산에 사용됨

  - 자바스크립트에서 함수는 object


1) Function declare(함수 선언)

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

  - 하나의 함수는 하나의 기능만

  - 함수명 : dosomething, command, verb

 

2) Parameter(매개변수)

  - premitive parameter : 값 전달

  - object parameter : 레퍼런스값 전달

 

3) Default parameters

  - ES6에서 추가됨

  - 사용자가 parameter의 값을 지정하지 않고 전달할 시 디폴트값 설정 가능

  ex. function 함수명(parameter = 'unknown'){}

 

반응형

 

4) Rest parameters

  - ES6에서 추가됨

  - 배열 형태로 전달

  ex. function 함수명(... param){}

 

+ 반복문

  - for (const 변수명 of 매개변수명){

       실행문

    }

  - 매개변수명.forEach((변수명) => 실행문(변수명));

 

5) Local scope

  - 함수 안에서만 사용 가능한 변수

  - 함수 내에서 함수를 선언한 경우에도 해당됨

 

6) Return

  - return 타입이 없는 경우에는 return undefined가 선언되어있는 것과 같음

 

7) Early Return

  - 조건이 맞지 않는 경우 빨리 리턴해 함수 종료

  - 이후에 필요한 로직들을 작성

  ex. if(조건문) {

         return; }

 

8) Anonymous function

  - 함수의 값을 변수에 바로 할당하는 경우에 주로 사용

  - 함수인 부분만 선언하고 함수명이 존재하지 않음

 

9) Named function

  - 함수의 이름이 선언된 함수

  - 디버깅할 때 함수명이 나오게 하기 위함

  - 함수 안에서 또 함수 자신 스스로를 부르는 경우


Function Expression

1) function declaration

  - hoisted가 가능

  - 선언되기 전에 호출되어도 실행 가능

 

2) function expression

  - 선언, 할당된 다음부터 호출 가능


Callback function

  - 함수를 전달해 필요한 경우 호출하는 경우


Arrow function

  - 항상 이름이 없는 anonymous function

  - function 선언과 코드블록 선언 없이 => 작성


IIFE

  - Immediately Invoked Function Expression

  - 선언함과 동시에 호출하려는 경우 사용

  - 함수의 선언을 소괄호로 묶은 후 함수 실행하는 식으로 표현();


+ 배울수록 코틀린과 비슷하다는 생각이 든다... 배우면 배울수록 어디선가 본 듯한 이 문법들,,,

 

++ 오늘의 숙제 

 function calculate(command, a, b)

 command(add, substract, divide, multiply, remainder)

 

당장 생각나는 건 이런 코드인데 오늘 배운 내용을 활용해서 더욱 좋은 코드를 만들 수 있지 않을까,,,? 

아쉬움이 남는다,,,

반응형

'개발 공부 > JavaScript' 카테고리의 다른 글

7. 오브젝트  (0) 2022.01.20
6. 클래스와 오브젝트의 차이점  (0) 2022.01.19
4. operator, if, for, loop  (0) 2022.01.16
3. 데이터타입(let? var?) hoisting  (0) 2022.01.15
2. async와 defer의 차이점은?  (0) 2022.01.14