function add(x, y) {//x,y=매개변수=인자값=파라미터(parameter)
return x + y;
}
add(1,2);//1,2=인수
✓ 일급객체 조건
✅ 다른 함수에 매개변수로 제공할 수 있다
let A = function(func) {
func();
}
A(function() {
console.log('hello'); // "hello"
});
✅ 함수에서 반환 가능하다
function A() {
return function() {
console.log('hello'); // "hello"
}
}
let test = A();
test();
✅ 변수에 할당 가능하다
let A = function() { return "hello"; };
console.log(A()); // "hello"
typescript를 이용하여 함수 사용
-함수 작성시 반환타입을 추론하도록
-함수의 매개변수와 인수의 타입이 호환 가능하게 작성
-인수의 타입을 잘못 전달할떄 에러 발생
// 함수 선언식
function world(name: string): string {
return 'hello ${name}';
}
// 함수 표현식
let world2 = function (name: string): string {
return 'hello ${name}';
}
// 화살표 함수 표현식
let world3 = (name: string): string => {
return 'hello ${name}';
}
// 단축형 화살표 함수 표현식
let world4 = (name: string): string => 'hello ${name}';
• 기본 매개변수(parameter)
함수에 주어진 인자의 수와 매개변수의 수가 일치해야함
• 선택적 매개변수(optional parameter)
변수명 뒤에 '?'을 붙여서 선택적으로 사용 가능
인수가 없다면 undefined
function buildName(firstName: string, lastName?: string) {
if (lastName) return firstName +" "+ lastName;
else return firstName;
}
• 기본-초기화 매개변수(default parameter)
값을 제공하지 않거나 undefined로 했을때 매개변수의 값 할당
function buildName(firstName: string, lastName = "world") {
return firstName +" "+ lastName;
}
let result1 = buildName("Hello"); // "Hello world"
• 나머지 매개변수(Rest parameter)
생략부호(...)뒤의 인자 배열을 빌드해 사용 가능
나머지 매개변수는 매개변수의 수를 무한으로 취급
아무것도 넘겨주지 않을 수도 있음
function buildName1(firstName: string,...restOfName:string[]){
return firstName +" "+ restOfName.join(" ");
}