Computer Science/Web

Javascript] 함수

TwinParadox 2017. 1. 21. 00:30
728x90

### JavaScript Function


- 객체 자료형 중 하나

- 하나의 값처럼 취급해 변수에 할당 가능

- C, Java와는 달리 함수 명은 선택사항이므로 함수명 없이 생성 가능(익명 함수)



## 익명함수


- function() {}와 같이 함수 형태이나, 이름이 없음

- 이름이 없어 변수에 할당해 사용

- 중괄호 안에 함수가 처리할 코드 기술

- 함수의 재정의가 가능, 호출 시 최종적으로 할당된 함수가 호출됨


var 변수명 = function() {};의 형태 : 함수 표현식



## 선언적함수


- 일반적으로 함수를 만드는 방식으로 함수명 존재

- 익명 함수와 같이 중괄호 안에 함수가 처리할 코드 기술

- 함수의 재정의가 가능함, 호출 시 최종적으로 할당된 함수가 호출됨



## 익명함수 vs 선언적함수


1. 실행순서

- 익명 함수 : <script> 태그 내부의 내용을 위에서 아래로 읽어 해석

- 선언적 함수 : 다른 내용을 읽고 해석하기 전에 먼저 읽고 해석



## 매개변수


- 함수에서 정의된 매개변수보다 많이 사용 시 추가적인 매개변수는 무시

- 함수에서 정의된 매개변수보다 적게 사용 시, 부족한 매개변수 'undefined' 입력



## 가변 인자 함수


- 매개변수의 개수가 변할 수 있음

- 정의된 것과 달리 입력된 매개 변수를 모두 활용 가능

- 모든 함수는 매개변수를 arguments 배열에 저장



## 내부 함수


- 함수 안에 함수를 정의

- 협업 과정에서 발생하는 함수명 충돌을 방지할 수 있으나, 미리 함수명을 합의보는 게 효율적

- 외부 함수 내에서 내부 함수가 다른 외부 함수보다 우선

- 함수 내부 정의된 변수는 이를 포함하는 외부 함수만 가능

- 외부 함수의 변수 접근 가능

- 내부함수는 외부함수의 복사본이 아닌 실제 함수의 문맥에 접근함



## 자기 호출 함수


- 다른 개발자에게 영향 주지 않기 위해 활용할 수 있음

- 생성 동시에 실행됨

- 다시 호출 불가

- 최초 한 번의 실행만을 필요로 하는 초기화 부분에 사용



## 콜백 함수


- 객체 자료형으로 사용되는 함수이므로 이를 매개변수로 사용 가능

- 함수를 매개변수로 전달하는 함수



* 클로저

- 종료된 외부 함수의 변수를 참조하는 함수

- 지역 변수를 남겨두는 현상

- 지역변수 

728x90