728x90
함수
- 참조 타입 중 하나
- function 타입
- 함수 정의하는 방법: 함수 선언식, 함수 표현식
- JavaScript의 함수는 일급 객체(First-class citizen)에 해당
- 다른 객체들에 적용할 수 있는 연산을 모두 지원하는 객체(함수)
- 변수에 할당 가능
- 함수의 매개변수로 전달 가능
- 함수의 반환 값으로 사용 가능
- 함수 선언식 (function statement, declaration)
function name(args) {
// do something
}
- 함수의 이름과 함께 정의하는 방식
- name: 함수의 이름
- args: 매개변수
- 호이스팅 발생
- 함수 호출 이후에 선언해도 동작
- 함수 표현식 (function expression)
const myFunction = function (args) {
// do something
}
- 함수를 표현식 내에서 정의하는 방식
- 함수의 이름을 생략하고 익명 함수로 정의 가능
- 호이스팅 발생하지 않음
- 함수 정의 전에 호출 시 에러 발생
- 함수 표현식으로 정의된 함수는 변수로 평가되어 변수의 scope 규칙을 따름
* 기본 인자 (default arguments)
- 인자 작성 시 '=' 문자 뒤 기본 인자 선언 가능
function name(args = 'default') {
// do something
}
- Arrow Function
- 함수를 비교적 간결하게 정의할 수 있는 문법
- functino 키워드 생략 가능
- 함수의 매개변수가 하나 뿐이라면 () 생략 가능
- 함수의 몸통이 표현식 하나라면 {}, return 생략 가능
const arrow = function (name) {
return `hello! ${name}`
}
// 1. function 키워드 삭제
const arrow = (name) => { return `hello! ${name}` }
// 2. () 생략
const arrow = name => { return `hello! ${name}` }
// 3. {}, return 생략
const arrow = name => `hello! ${name}`
728x90
'PROGRAMMING > JavaScript' 카테고리의 다른 글
[JS] AJAX, Concurrency model, Promise, Axios (0) | 2021.11.14 |
---|---|
[JS] 배열 관련 메서드 (0) | 2021.11.12 |
[JS] 조건문, 반복문 (0) | 2021.11.12 |
[JS] 식별자, 변수, 타입, 연산자 (0) | 2021.11.12 |
[JS] DOM 조작 (선택, 변경) (0) | 2021.11.12 |
댓글