JavaScript, TS
함수 표현식
개발하는지호
2023. 11. 27. 01:09
//기본적인 함수 정의 함수 선언문 방식
/**
* JS Doc
* 두 수를 받아서 덧셈 결과를 반환
*
* @param {number} a
* @param {number} b
* @returns {number} 덧셈 결과를 반환합니다.
* @author 'jiho' //git
*/
function add(a, b) {
const result = a + b; //지역 변수 이면서 임시 변수
return result;
}
add
// console.log(result); -> 밖에서 안으로는 참조 불가능 역으로는 가능.
//
console.log(add(3, 5));
console.log(add('dff',4));
//뺄샘 기능
/** --> 이런 형태는 내가 만든 함수를 내 것이라고 말할 수 있고 방식을 설명할 수 있다.
*
* @param {number} a
* @param {number} b
* @returns {number}
* @author jiho
*/
function gap(a, b) {
return a - b;
}
console.log(gap(5, 3));
// 두 번째 함수 생성 방식 = '함수 표현식' 방식
// JS에서 함수는 일급 객체(First Citizen)으로 취급되기 때문
const mtp = function (a, b) {
return a * b;
}
// 함수를 mtp라는 변수에 담았기 때문에 mtp라는 이름으로 표현 가능 원래 있던 multiply 함수 표현 삭제
console.log(mtp(3, 5));
//ES(ECMAScript)6(2015년)에서 등장한 문법, 화살표 함수
const sub = (a,b) => { return a - b; }
console.log(sub);
console.log(sub(5, 3));
// 만약 구현부의 로직이 1줄일 경우 {}, return 키워드 생략
const sub2 = (a, b) => a - b;
console.log(sub2(5, 3));
//파라미터가 없으면
const hello = () =>console.log('hello!');
hello();
//파라미터가1개면?
const square = (x) => x * x;
const square2 = x => x * x;
console.log(square(5));
* 추가 지식
export 하고 import 등 모듈을 할 때
const a = () => {} 형태는 전달 될때는 a 로 되지만, 다시 사용하기 위해서는
const b = a(); 이렇게 해야 한다. ㅋㅋ 의문이다.