티스토리 뷰
매개변수 없이 함수에 전달된 값 받아오기
함수 정의문에서 arguments를 사용하면 매개변수를 사용하는 것처럼 함수의 인수값을 받아올 수 있다.
arguments는 전달된 인수를 배열에 담아 저장한다.
하지만 arguments의 배열은 배열처럼 생겼지만 실제로 배열은 아니다.
이렇게 배열처럼 생겼지만 배열은 아닌 배열들을 '유사 배열' 또는 'array-like'이라고 부른다.
이렇게 인수의 갯수를 알 수 없는 가변 인자 함수의 경우 arguments 객체를 통해 인수를 확인할 수 있고
인수는 유사배열 안에 순차적으로 저장된다.
가변인자함수는 매개변수를 통해 인수를 전달받는 것이 불가능하므로 arguments객체를 통해 인수를 전달받는다.
하지만 arguments는 유사배열이라서 배열의 메서드를 사용하려면 "Function.prototype.call"을 사용해야하는 번거로움이 있다.
[기본형]
function 함수명(){
arguments; //[인수1, 인수2, 인수3...]
}
함수명(인수1, 인수2, 인수3...)
Rest parameter : 나머지 매개변수
Rest parameter는 매개변수 앞에 세 개의 점(...)을 붙여서 정의한 매개변수를 말한다.
Rest parameter는 함수에 전달된 인수의 목록을 배열로 전달받는다.
... 쩜쩜쩜이 Rest parameter의 문법이다!
[기본형]
function 함수명(...rest){
매개변수; //[인수1, 인수2, 인수3, 인수4...]
}
함수명(인수1, 인수2, 인수3, 인수4...)
rest parameter로 고정된 인수와 가변인수 함께 받아오기
함수에 전달된 인수들은 parameter와 restparameter에 순차적으로 할당된다. 예를 들어 함수를 실행할 때마다 어떤 값은 고정으로 받아야 하고 어떤 값들은 가변인수로 받아올 수도 있고 안 받아올 수도 있을 때 rest parameter를 사용하면 편리하게 쓸 수 있다.
rest parameter는 이름 그대로 먼저 선언된 매개변수에 할당된 인수를 제외한 나머지 인수들이 모두 배열에 담긴다.
그래서 rest parameter는 반드시 마지막 parameter여야한다.
또 rest parameter는 함수를 정의했을 때 선언한 매개변수의 개수를 나타내는 함숙색체의 length property에 영향을 주지 않는다.
[기본형]
function 함수명(매개변수1, ...rest){
매개변수; //[인수1, 인수2, 인수3, 인수4...]
}
함수명(인수1, 인수2, 인수3, 인수4...)
💡예제_function05.html💡
사용자에게 국어와 수학 점수를 묻고 평균 값을 구하는 함수
함수 표현식
앞에서 배운 일반함수는 함수명을 선언하고 그 이름을 사용해 호출한다.
이 방법은 함수의 이름만 알면 어디서나 호출하여 실행할 수 있어 많이 사용하는 방법이다.
이 밖에도 함수 이름을 지정하지 않고 사용하거나, 함수를 호출하지 않고 바로 실행하는 방법도 있다.
함수표현식의 종류는 익명함수, 즉시실행함수, ES6버전 최신문법인 화살표함수가 있다.
익명함수
이름이 없는 함수. 즉, 익명함수를 선언할 때에는 함수명을 짓지 않는다.
그 대신 이름을 대신해줄 변수에 참조하여 변수명으로 호출할 수 있다.
[기본형]
let 변수명 = function(){코드...};
변수명(); ←함수호출
즉시 실행함수
일반적으로 함수는 선언하고 필요할 때마다 호출해서 실행하는 방법을 많이 사용한다.
하지만 한번만 실행하는 함수라면 함수를 정의하면서 동시에 실행시킬 수 있다.
즉시실행함수는 함수를 실행하는 순간 자바스크립트 해석기에서 함수를 바로 해석한다.
[기본형]
(function(매개변수){
자바스크립트 코드;
}(인수));
화살표 함수
ES6버전부터는 => 화살표 표기법을 사용하여 함수 선언을 좀 더 간단하게 작성할 수 있다.
=> 가 function 키워드를 대신한다고 생각하면 된다.
보통 '화살표 함수'라고 부르고 익명함수에서만 쓸 수 있다. (이름이 있는 일반함수에서는 못 쓴다.)
[기본형]
1.매개변수가 없을 경우
let 변수명 = () => [자바스크립트 코드;]
2.매개변수가 1개인 경우 매개변수 자리에 ()를 생략할 수 있다.
let 변수명 = 매개변수 => [자바스크립트 코드;]
3.매개변수가 2개 이상인 경우 ()생략이 불가능
let 변수명 = (매개변수1, 매개변수2) => [자바스크립트 코드;]
4. 실행할 자바스크립트가 1줄인 경우 {}생략 가능. 이 때 return도 생략된 걸로 간주한다.
let 변수명 = () => 자바스크립트 코드;

함수 스코프
함수의 스코프란 함수가 선언된 위치에 따라 '전역' 또는 '지역'으로 나눠지는 유효범위를 뜻한다.
함수레벨 스코프 - 블록레벨 스코프
[기본형]
'java script' 카테고리의 다른 글
| 이벤트객체/addEventListener()/버블링/캡처링 (0) | 2025.06.04 |
|---|---|
| getAttribute(),setAttribute()메서드/배열의고차원함수-forEach(),map(),filter(),find(),reduce(),isArray() (0) | 2025.06.02 |
| var_let_const (0) | 2025.05.26 |
| 배열객체 (0) | 2025.05.26 |
| 반복문-while문/for문/중첩for문/객체-Date,Math (3) | 2025.05.16 |
- Total
- Today
- Yesterday
- html
- HTML기초
- 플레이스홀더
- list-style-type
- order과 align-self
- CSS
- UIUX
- of-type
- uxui디자이너되기
- 컴퓨터학원수강내용정리day10
- nth-last-of-type
- 디자인소스사이트목록
- uiux기초
- 시안만들기
- 하위정렬속성
- 링크의종류
- flex태그배우기
- 컴퓨터학원수강내용정리day05
- 형태구조선택자
- 제외선택자not
- is선택자
- 컴퓨터학원수강내용정리day1
- 컴퓨터학원수강내용정리day2~4
- 피그마기초
- UIUX디자이너
- uiux서비스기획
- 문자결합연산자
- has선택자
- 절대경로상대경로
- javascript기초 #uiux #증감연산자 #전위연산 #후위연산 #대입연산=
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |