-
[모던 자바스크립트 Deep Dive] 11. 원시 값과 객체의 비교 - 12. 함수Front/모던 자바스크립트 Deep Dive 2026. 4. 5. 23:05
11. 원시 값과 객체의 비교
11.1 원시 값이란?
1) 변경 불가능한 값
: 원시 값은 변경 불가능한 값. 읽기 전용 값
-> 변수는 재할당을 통해 변경
2) 문자열과 불변성
: 0개 이상의 문자로 이루어진 집합.
3) 값에 의한 전달
: 값을 전달하는 것이 아니라 '메모리 주소를 전달'한다. 전달된 메모리 주소를 통해 메모리 공간에 접근하면 값을 참조 가능.
11.2 객체
: 동적으로 추가되고 삭제될 수 있는 것. -> 원시 값과는 다른 방식으로 동작하도록 설계됨.
1) 변경 가능한 값
: 객체 타입의 값. 객체는 변경 가능한 값.
2) 참조에 의한 전달
: 참조 값이 복사되어 전달되는 것. -> 두 개의 식별자가 하나의 객체를 공유함.
* 자바스크립트에는 값에 의한 전달만 존재
12. 함수
12.1 함수란?
- 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것.
- 입력 전달(매개 변수), 입력(인수), 출력(반환값)
- 함수 정의를 통해 함수 생성
- 함수 호출을 통해 실행
12.2 함수 사용 이유 (=코드 재사용성)
- 유지보수의 편의성
- 코드의 신뢰성
- 코드의 가독성
12.3 함수 리터럴
12.4 함수 정의
: 함수를 호출하기 이전에 인수를 전달받을 매개변수와 실행할 문들, 그리고 반환할 값을 지정.
1) 함수 선언문
2) 함수 표현식
3) Function 생성자 함수
4) 화살표 함수
12.5 함수 호출
1) 매개변수와 인수
: 함수를 실행하기 위해 필요한 값을 함수 외부에서 함수 내부로 전달할 필요가 있는 경우, 매개변수를 통해 인수를 전달함.
- 인수: 값으로 평가될 수 있는 표현식
- 매개변수: 함수를 정의할 때 선언
2) 인수 확인
- 자바스크립트 함수는 매개변수와 인수의 개수가 일치하는지 확인하지 않음.
- 자바스크립트는 동적 타입 언어. 자바스크립트 함수는 매개변수의 타입을 사전에 지정 불가.
3) 매개변수의 최대 개수
: 엔진마다 최대 개수가 다르나 유지보수성을 위해 가급적 작게 만들어야 함.
4) 반환문
: 함수 호출은 표현식. return 키워드와 반환값으로 이뤄진 반환문 사용. 반환문 생략 시 undefined 반환.
12.6 참조에 의한 전달과 외부 상태의 변경
: 원시 값 - 값에 의한 전달 / 객체 - 참조에 의한 전달
: 값에 의한 호출 / 참조에 의한 전달
12.7 다양한 함수의 형태
1) 즉시 실행 함수
: 단 한 번만 호출. 다시 호출 불가.
2) 재귀 함수
: 자기 자신 호출. 재귀 호출을 멈출 수 있는 탈출 조건 반드시 필요.
3) 중첩 함수
: 함수 내부에 정의된 함수. 내부 함수라고도 함.
4) 콜백 함수
: repeat. 반복 수행 함수. 함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수를 콜백 함수라고 함.
- 매개변수를 통해 함수의 외부에서 콜백 함수를 전달받은 함수를 고차 함수라고 함.
5) 순수 함수와 비순수 함수
: 어떤 외부 상태에 의존하지도 않고 변경하지도 않는 부수 효과의 유무에 따른 함수
'Front > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글
[모던 자바스크립트 Deep Dive] 9. 타입 변환과 단축평가 - 10. 객체 리터럴 (0) 2026.03.29 [모던 자바스크립트 Deep Dive] 7. 연산 - 8. 제어문 (0) 2026.03.21 [모던 자바스크립트 Deep Dive] 4. 변수 - 6. 데이터 타입 (1) 2026.03.15