함수
함수
함수 이용 시 중복 없이 유사한 작동 하는 코드 여러 번 호출 가능.
함수 선언
함수 선언 방식 이용 시 함수 만들 수 있음 (함수 선언문 이라고 부르기도 함)
` function name(variable) {
// body
}
`
function 키워드, 이름 (name), 매개변수(variable), 함수 본문 (body) 차례로 써주면 선언 가능 매개 변수 여러개 시 콤마로 구분
호출 시 name()
지역 변수
함수 내부에서 변수 선언시 지역 변수(내부 변수)라 부름 함수 내부에서 함수 외부 변수 접근, 수정 가능 지역 변수가 외부변수와 동일한 이름 가질 시 지역 변수가 외부 변수 가림
- 전역 변수 함수 외부에 선언된 변수 근래 작성 코드는 대부분 전역변수 사용하지 않거나 최소한으로 사용 프로젝트 전반에서 사용되는 데이터는 전역 변수가 유용한 경우도 있음
매개변수
인수라 불리기도 함 임의 데이터 함수 안에 전달 가능
- 알고리즘
- 함수 호출
- 전달된 인자 지역 변수에 복사
- 복사된 지역 변수 사용
기본값
매개변수에 값 전달하지 않을 시 그 값은 undefined undefined 되지 않게 할 시 ‘기본값’ 설정
`
function name(variable = default value) {}
`
매개변수에 값 전달 안 해도 default value 로 설정
- 매개변수 기본값 평가 시점 매개변수 없을 경우 함수 호출 시 마다 기본값 평가
매개변수 기본값 설정할 수 있는 다른 방법
기본값 설정 대신 함수 실행 도중에 기본값 설정하는게 맞는 경우 생김 body 에서 매개변수 평가 후 정의 or 연산자 (||) 이나 null 연산자(??) 사용 가능
반환 값
함수 호출 시 return 지시자로 특정 값 반환 가능 함수 어디서든 사용 가능 실행 흐름이 return 지시자 만날 시 함수 흐름 중단 되고 그 함수 호출한 곳에 값 반환 함수 하나에 여러 개 return 문 가능 return 만 명시 가능
-
return 문이 없거나 지시자만 있는 함수는 undefined 반환
-
return 과 값 사이에 줄 삽입 금지
함수 이름 짓기
함수 이름 대개 동사 읽는 사람이 함수 이름만 보고 어떤 기능 하는지 힌트 얻을 수 있어야 함 동사를 접두어로 붙여 이름 만드는게 관습 팀 내에서 합의 된 접두어만 사용
- 함수는 동작 하나만 담당 함수 이름에 언급된 동작만 수행 독립적인 두 개의 동작은 독립된 함수 두 개에서 나눠 수행 한 장소에 두 동작 필요 시 제 3의 함수 만들어 그곳에서 두 함수 호출
함수 == 주석
함수 길어질 시 함수 잘게 쪼갤때가 됐다는 신호 함수 간결하게 만들 시 테스트, 디버깅 쉬워짐 잘 만들어진 함수는 그 자체로 주석 역할 가능 이름만 보고도 어떤 동작 할 수 있는 지 알 수 있는 코드를 자기 설명적코드
요약
-
함수로 중복 없이 유사한 작동 하는 코드 여러 번 호출 가능
-
함수 선언으로 함수 만들 고 함수 호출로 함수 이용
-
지역 변수는 함수 내부 변수
-
전역 변수는 함수 외부 변수
-
지역 변수와 전역 변수 이름 겹칠 시 전역 변수가 가려짐
-
매개 변수(인수)로 임의 데이터 함수 안에 전달 가능
-
전달된 매개 변수는 지역 변수에 복사돼서 이용됨.
-
매개변수에 undefined 방지 위해 기본값 설정 가능
-
기본값 설정 외에 함수 내부에서 기본 값 설정 가능
-
함수는 return 지시자로 특정 값 반환 가능
-
함수 이름은 동사를 접두어로 붙여 이름 만드는게 관습
-
잘 만들어진 함수는 그 자체로 주석이 될 수 있음
출처 : https://ko.javascript.info/function-basics