함수란 JavaScrip트에서 가장 중요한 개념으로서, 입력(input)을 받아 출력(output)을 내보내는 과정이라고 할 수 있다.
기본적이 함수의 형태 구조 👉 function(){};
여기에 함수명과 parameter, 반환값, argument, 함수호출을 포함해서 만들면
이런 모양이 됨!!
function howMuch(x , y) {
return x + y;
}
howMuch(2500,3000);
---> 5500
- 함수는 이러한 과정을 문(statement)으로 구현하고 코드를 {} 이러한 블록으로 감싸 하나의 실행 단위로 정의한 것이다.
- 함수는 인수(argument)를 매개변수인(parameter)가 전달받아 return(반환값)을 출력해주는 구조다.
- 함수는 값이고, 여러 개 존재 가능하며, 재사용성에 용이하디. 이렇게 여러 개 존재하며 여러 곳에 재사용을 용이하게 하기 위해서 식별자인 함수 이름을 사용해야 한다.
- 함수는 정의힌다고 호출되지 않음 식에서 보면 알 수 있듯이 인수를 매개변수에 전달 해줘야 값을 반환시킬 수 있음!
매개변수(parameter), 인자(argument)
parameter는 선언할 때, argument는 실행할 때 --> 파선아실 로 외움ㅎㅎ
함수는 함수선언을 통해 함수를 정의할 수 있다. 또한, 함수는 함수 정의를 통해 생성한다.
함수 선언문
function woony(x,y){
return x + y;
}
function woony(){ console.log('woony');} 여기선 woony()로 함수를 호출할 수 있다.
하지만, 원래 함수 이름은 함수 몸체 내부에서만 참조할 수 있기 때문에, 몸체 외부에서는 함수 이름으로 함수를 호출할 수 없다. 함수를 제대로 호출하기 위해서는 함수를 가리키는 식별자가 필요하다. 따라서, woony도 함수 몸체 내부에서만 유효한 식별자인 함수이름으로 원래라면 호출 할 수 없지만, 자바스크립트 엔진이 암묵적으로 식별자를 생성시켜주고 거기에 함수 객체를 할당한다.
함수 표현식
let woony = function(x,y){
reurn x + y;
};
Function 생성자 함수
let woony = new Function('x','y','return x + y');
화살표 함수(Arrow Function)
let woony = (x,y) => x + y;
🌞 선언과 정의의 차이?
ex) int x; --> x라는 변수가 사용될 것이라고 선언! x=4; --> x변수는 4라고 정의한 것!
선언은 변수나 함수가 있음을 알려주는 것!, 정의는 변수나 함수가 무엇인지 알려주는 것!