함수는 기본적인 javascript에서 사용되는 블록요소인데 여기서 함수는 작업을 수행하거나 값을 계산하는 문장 집합 같은 자바스크립트 절차를 얘기한다.
사전적인 의미로 얘기를 하자면 함수란 자신의 외부 코드가 '호출' 할 수 있는 하위 프로그램 즉 어디서나 쓸 수 있게 만드는 프로그램이라고 생각하면 된다. 함수 역시 명령문의 시퀸스로 구성이 된다.
출처 : https://ko.wikipedia.org/wiki/%ED%95%A8%EC%88%98
함수에 값을 전달하면 함수는 값을 '반환'하는 것이다.
대략 이런 느낌으로 진행이 된다.
일단 함수(function)을 사용하기 위해서는 함수를 "정의" 해줘야 한다.
function ThisisFunc(param) {
statements
}
이렇게 보통 함수를 정의를 해주는 데
ThisisFunc
함수의 이름을 정의하고
param
함수의 전달할 인수 부분이 해당되는 부분이고
statements
함수 본문을 구성할 명령문
이렇게 해당 부분을 정의라고 해준다.
function ThisisFunc(param) {
param.model = "XE";
}
// 함수 선언 및 함수정의를 하는 걸 얘기한다.
let myphone = {iphone: "apple", model: "XR", year: 2020};
let x, y;
x = myphone.iphone; // x 의 값은 "apple" 입니다.
ThisisFunc(myphone);
y = myphone.model; // y 의 값은 "XE" 입니다.
// (make 속성은 myphone에서 변경되었습니다.)
함수를 정의를 해줬다면 이제 함수를 호출해줘야 한다.
함수 호출
함수를 정의하는 것은 함수를 실행하는 것이 아니다! 그렇기에 함수를 정의하는 것은 간단히 함수의 이름과 기능을 만들어주는 거고 함수가 호출 될 때 무엇을 할지 지정해주는 것을 함수 호출이라고 한다. 매개변수를 가지고 지정된 행위를 해야한다. 예를 들어, 만약 여러분이 어떤 함수를 정의 했다면 이렇게 활용해야 한다
function square(n) {
return n*n
}
// 정의
console.log(square(5));
// 호출
함수의 범위
함수 내에서 정의된 변수는 TDZ에 걸려서 함수의 범위에서만 활용이 가능하다. 그러나 전역변수로 설정된 함수는 모든 접근이 가능하다.
전역변수는 모든 전역변수를 액세스 할수 있고 다른 함수내에서 정의된 함수는 부모함수와 부모함수가 액세스 할수 있는 다른 변수에 정의된 모든 변수를 가져올 수 있다.
화살표 함수 표현(arrow function expression)은 기존의 함수표현을 엄청나게 간단하게 정의하고 호출할 수 있는 대안이다!!! 특징은 5가지가 있는데
기본적인 호출 및 사용 방법은!! 더 간단한 방법을 사용한다:)
const materials = [
'Hydrogen',
'Helium',
'Lithium',
'Beryllium'
];
console.log(materials.map(material => material.length));
// expected output: Array [8, 6, 7, 9]
이거 하나만 해도 뚝딱하고 함수가 나오게 된다.
오늘은 함수에 대해 알아봤습니다:)