Practice makes perfect

[JavaScript] JavaScript - 함수 Part_1 본문

web/JavaScript

[JavaScript] JavaScript - 함수 Part_1

kerpect 2020. 7. 8. 11:34

함수 

 

※ method 와 함수의 차이

 

- 함수 : 범용적으로 누구든지 필요로하면 호출하여 사용할 수 있도록 정의되어 있는 것.

- method : 참조자형으로, 객체(object)에 특화 되어있는 특징이나 기능을 정의하고 있는 것

 

 

1. 함수의 개요 


- 익명함수 : 이름을 가지고 있지 않은 함수.
- 선언적 함수 : 이름을 가지고 있는 함수.
 

● 익명함수의 정의 (구조 - R과 동일)  = 이름을 가지고 있지 않은 함수.

 

 

 함수의 호출 방법 

 

변수의 이름으로 함수를 호출합니다. 

 

 

 

내가 정의한 코드는 소스코드가 보여줍니다. 

 

소스코드(x) - 내장함수는 보이지 않습니다.

 

선언적 함수의 정의 = 이름을 가지고 있는 함수

 

 

 2. 함수의 재정의  

: 함수를 한번 더 선언해야할 상황. 

 

① 익명함수의 재정의

 

 

(마지막에 선언한 변수 출력)

 

같은 이름의 변수를 선언하여도 error를 내지 않습니다. 실행상에 있어서는 크게 문제는 없지만 Javascript는 중복을 확인 하지 않기 때문에 주의해야합니다. 

 

 

변수 선언을 하기전에 출력을 먼저하게 되면 error 로 아무것도 출력하지 않습니다

 

 

 

② 선언적 함수의 재정의

 

웹브라우저는 script 태그 내부의 내용을 한 줄 한 줄 읽기전에 선언적함수를 읽습니다. 

 

 

(마지막의 선언된 함수가 출력 = 둘째줄 -> 셋째줄 -> 첫째줄 순서로 실행)

- 문제점 : 동일한 이름으로 선언되었을 때, 앞에 넣었던 기능은 수행하지 않을 수 있기 때문에 주의해야 합니다. 

 

 

 

 3. 매개변수

: 함수에 값을 줘서 실행을 시킵니다. 값을 전달하는 변수를 매개변수라고 합니다. 줄 때는 값으로 주지만 함수가 받을 때는 변수로 받습니다. 준만큼 받아야합니다. 갯수가 동일해야합니다. 매개 변수는 계산을 하기 위해 정의합니다. 매개 변수는 사용된 해당 함수 안에서만 사용됩니다.

 

 

● 두번째 매개변수는 무시( alert 매개변수를 1개만 받습니다. )

 

 

 

● 두번째 매개변수는 undefined

 

● 매개변수 불일치 사용 예
Array() 함수는 기본적으로 매개변수에 아무것도 입력하지 않게 설계

- 내부적으로 처리하게 되어있기도 합니다. (전부 그런것 x) 

 

 

 

 

4. 가변 인자 함수 

- 매개변수의 개수가 변할 수 있는 함수.
- 자바스크립트는 매개 변수의 개수를 정의된 것과 다르게 사용해도 괜찮지만, 매개 변수 선언된 형태와 다르게

  사용했을 때도 매개변수를 모두 활용하는 함수를 뜻합니다. 

 

 

① arguments 변수 사용 예제

 

② 입력 매개 변수를 모두 더해 리턴하는 함수

 

return :

1) 함수를 벗어나서 호출한 쪽으로 복귀

2) 값을 같이 가지고 복귀하고 싶을 때, 값을 전달 받아서 호출한 쪽으로 복귀하면서 전달 

 

 

 

5. 내부 함수 

 

- 제곱을 구하는 함수

 

 

 

선언적 함수의 재정의에 의해서 앞의 잘수행되던 함수가 문제가 생겨서 0의 값이 나오고 뒤의 정의 된 함수는 정상적으로 수행되었습니다. 

 

 

문제 해결) 내부의 함수를 정의하면, 밖에 같은 이름의 변수가 정의 된다고 하더라도 문제 없이 출력됩니다.