🧾 함수(function)
반복적으로 수행되는 일이 있다면 함수로 만든다.
=> 즉 할일을 만들어 준다.
함수를 만들어주면 필요할 때 또 쓸 수 있기 때문이다.
🚀 함수 선언
function anne(parameter) { // statements } // 매개변수(parameter) // -> 매개변수의 최대 개수는 엔진마다 다르다.
기본적으로 함수는 undefined를 한다. 다른 값을 반환하기 위해서 함수는 반환값을 지정하는 return 문이 있어야 한다.
function add(num1, num2) { return num1 + num2; } const sum = add(3, 4); console.log(sum); // 7
함수를 변수에 할당할 수도 있다.
function add(num1, num2) { return num1 + num2; } --- // 변수 doSomething에 함수add 할당 const doSomething = add; --- // 변수 result에 add함수를 할당받은 doSomething 할당 // 인수 3,4 를 가지고 있음 const result = doSomething(3, 4); console.log(result); // 7
print함수는 무언가를 출력하는 함수이다.
인자가 없다면 아무런 인풋도 받지않는다.function print(a, b) { console.log(`$(a) $(b)`); // `$()` 사용 } print(8, 10); // 8 18 출력
🎈 응용하기
function add(num1, num2) { return num1 + num2; } --- function divide(num1, num2) { return num1 / num2; } --- function surprise(operator) { const result = operator(2, 3); // = add(2, 3) const result2 = operator(2, 3); // = divide(2, 3) console.log(result); // console에 5출력 } surprise(add); // add 라면 5 | divide 라면 2/3값
🧾 화살표함수(Arrow Function)
전통적인 함수표현(function)의 간편한 표현방법이다. 하지만, 화살표 함수는 몇 가지 제한점이 있고 모든 상황에 사용할 수는 없다.
- this나 super에 대한 바인딩이 없고, methods 로 사용될 수 없다.
- new.target키워드가 없다.
일반적으로 스코프를 지정할 때 사용하는 call, apply, bind methods를 이용할 수 없다.- 생성자(Constructor)로 사용할 수 없다.
- yield를 화살표 함수 내부에서 사용할 수 없다.
Internet Explorer에서는 지원하지 않는다.let a = 2; let b = 4; /* function (){ return a + b + 100; } */ () => a + b + 100;