본문 바로가기

Language/JavaScript

함수의 정의와 선언 방법 (4가지)

함수

  • 입력(파라미터=인수)하여 결과를 뽑는 구조.
  • 호출시 소괄호() 생략할 수 없으므로 주의 (생략시, 함수 정의 내용 그대로 출력)




▶ 디폴트 함수




 스스로 함수 ( 개발자가 스스로 정의하는 함수 )


형태1. function 명령 사용 ( 기본적 )



* 반환값 (return)

- 일반적으로 말미에 기술

- 함수 도중 기술 시 : 이후 코드가 실행되지 않으므로 주의, 꼭 조기 분기 명령(if/switch 등) 함수와 함께 사용

- 반환값 생략 : 상관없으나 undefined(미정의값) 반환




형태2. 냉장객체 Function



* 가인수? 함수 정의로 선언된 인수

* 실인수? 함수 호출시 선언되 인수


형태1인 더 깔끔하고, 따옴표로 인수나 함수를 둘러싸지 않으니 이게 더 좋은거 아닌가? 맞음

But, 중요한 특징! 인수나 함수를 '문자열'로 정의할 수 있는 점. (다만 남용X, 함수는 기본적으로 형태1,3번을 사용한다고 기억하자)



* 꼭 형태2번으로 이용하고 싶다면 다음 경우는 피하자 : 성능저하의 원인

  • while/for 등의 반복 블록 안
  • 자주 호출되는 함수

: Function 생성자는 호출될때마다 코드 해석부터 함수 객체의 생성까지 모두~~ 전부~~ 실시하기 때문에.




형태3. 함수 리터럴('문자') = 익명함수 = 무명함수



JavaScript에서' 함수'는 데이터형의 일종

= 숫자와 문자열처럼 표현 가능

= 변수에 대입할 수 있다는 이야기

= 다른 함수의 인수로도 전달 가능

= 반환값(return)으로도 함수 전달 가능


* 익명함수=무명함수? 형태1과 달리 함수명 없이 선언.


* 형태1(function 명령 직접 사용)과 차이점

  • function 명령 -> 함수명을 직접 정의
  • 함수 리터럴 -> 이름없는 함수로 정의한 뒤 변수에 대입



형태4. 애로우함수 (ES2015, ES6) 



"간결"

function 키워드는 기술하지 않는다!


"더 간결하게!"

  • 함수내용이 한 문장인 경우
    • 함수를 감싸는 {...} 괄호 생략!
    • return 명령 생략!

  • 인수가 한개인 경우
    • 인수를 감싸는 (...) 괄호 생략!
    • But, 인수가 없는 경우는 ()만 입력해줘야 함. (생략 불가)



* 애로우 함수로 '객체'를 반환할 때 표기법 주의!

객체를 표현하는 { ... } 괄호가 함수 영역인 것으로 잘 못 인식하기 때문에 한번 더 감싸주어야 한다. ( ... )


let func = () => ( { 프로퍼티명 : '값' } ) ;


'Language > JavaScript' 카테고리의 다른 글

Date Format  (0) 2018.02.18
자바스크립트 프로젝트 시작 준비 (요약)  (0) 2017.12.27
자바스크립트 개발 도구  (0) 2017.12.20
[jQuery] 기본형태(시작)  (0) 2017.12.20
콜백(callback) 함수  (0) 2017.09.07