함수
입력 받아서 코드블록 내부의 코드를 실행한 후 함수의 실행 결과를 반환하는 일련의 과정
함수 사용한다는 건 특정한 코드 실행 과정을 하나의 묶음으로 묶어 필요할때 마다 호출해 실행
특정한 코드실행 과정을 묶어 함수를 생성하는 것을함수를 정의한다
라고 함
선언
let
사용한 것 처럼 함수 정의는 function 키워드
사용표현
let
키워드 사용해 변수 선언 후 함수 할당
하는 형태로 코드 작성// 함수선언문 으로 정의한 함수
function 함수명 (매개변수) {
//실행할 내부코드
};
// 함수표현식 으로 정의한 함수
let 함수명 = function (매개변수) {
//실행할 내부코드
};
함수선언식과 함수표현식의 명확한 차이가 너무 궁금하다
그리고 요즘은 화살표 함수
를 많이 쓴다고 하는데
이거 넘나 신세계
화살표 함수 참고 링크
함수 내부에 있는 코드는 함수 호출했을 때만 실행
함수 호출 이란, 함수를 실행시키는 명령을 전달하는 것
()
에 붙이면 됨()
붙이면 됨함수를 정의할 때 선언
함수 코드 블록 안에서 변수처럼 취급
함수 정의 할 때 소괄호 ()
안에 매개변수 추가(여러개도 가능)
ex. (num1, num2)
함수 내부에서만 사용 가능
아무것도 할당되지 않은 매개변수는 undefined 로 초기화됨
호출
할 때 소괄호()
안에 값을 넣음으로 매개변수에 값 할당구구단 n단을 출력하는 함수를 정의하고 호출
// 함수선언문 으로 정의한 함수
function multiplication (num) { // num 이라는 매개변수 지정
for (let i = 1; i <= 9; i++) { // 반복문으로 초기값, 조건식, 증감식
console.log (num*i) // 실행할 코드
};
muliplication(2); // 전달인자로 결과값 호출
// 2단 2*1 ~2*9 까지 출력
매개변수보다 작은 전달인자 전달 시 아무것도 전달되지 않은 매개변수는 undefined
로 초기화
매개변수보다 많은 전달인자 전달 시 매개변수 갯수만큼만 호출
⇒ JS 내부에 arguments라는 특별한 지역 변수에 마치 배열같이 저장돼서 초과된 인자는 무시하고 오류는 발생하지 않는다.
매개변수는 함수 내부에서만 사용 가능
함수 내부에서 선언한 변수도 함수 내부에서만 사용 가능
매개변수와 함수 내부에서 선언한 변수는 자신이 선언된 위치에 따라 유효범위 결정
return문
만나면 값을 반환한 후 함수 종료function add (x, y) {
return x + y; // return문
}
let result = add(3, 2); // 함수 호출의 결과를 변수에 할당 가능
console.log(result); // 5