
Function 함수
1. 함수 정의
- 함수 선언문: 중괄호로 문들을 감싸고 return으로 결과값을 반환한다.
function square(number) {
return number * number;
}
let square = function(number) {
return number * number;
let foo = function(a, b) {
return a * b;
};
let bar = foo;
console.log(foo(10, 10));
console.log(bar(10, 10));
2. Property
- Arguments 함수 호출 시 전달된 인수들의 정보를 담고 있는 유사 배열 객체
function sayThanks(name) {
console.log('Thank you for your purchase '+ name + '! We appreciate your business.');}
sayThanks('Cole');
function foo(func) {
let res = func();
return res;
}
function bar() {
return 'caller : ' + bar.caller;
}
console.log(foo(bar));
console.log(bar());
- Length 함수 정의 시 작성된 매개변수의 갯수.
(arguments.length
는 함수 호출 시 인자의 갯수이다.)
function foo() {}
console.log(foo.length);
function bar(x) {
return x;
}
console.log(bar.length);
function baz(x, y) {
return x * y;
}
console.log(baz.length);
- Name 함수명
- proto 프로토타입 객체에 접근하는 접근자.
- Prototype
3. Arrow Function
const plantNeedsWater = function(day) {
if(day === 'Wednesday'){
return true;
} else {
return false;
}
};
const plantNeedsWater = (day) => {
return day === 'Wednesday' ? true : false;
};
const plantNeedsWater = day => day === 'Wednesday' ? true : false;
4. 함수의 형태
- 재귀함수: 자기 자신을 호출하는 함수. 반복연산을 간단히 구현할 수 있다.
function fibonacci(n) {
if (n < 2) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
console.log(fibonacci(0));
console.log(fibonacci(1));
console.log(fibonacci(2));
console.log(fibonacci(3));
console.log(fibonacci(4));
console.log(fibonacci(5));
console.log(fibonacci(6));
function factorial(n) {
if (n < 2) return 1;
return factorial(n - 1) * n;
}
console.log(factorial(0));
console.log(factorial(1));
console.log(factorial(2));
console.log(factorial(3));
console.log(factorial(4));
console.log(factorial(5));
console.log(factorial(6));
- 콜백함수: 특정 이벤트가 발생했을 때 시스템에 의해 호출되는 함수
<!DOCTYPE html>
<html>
<body>
<button id="myButton">Click me</button>
<script>
var button = document.getElementById('myButton');
button.addEventListener('click', function() {
console.log('button clicked!');
});
</script>
</body>
</html>
setTimeout()
function doSomething() {
var name = 'Lee';
setTimeout(function () {
console.log('My name is ' + name);
}, 100);
}
doSomething();