[TIL] JS: Function

송나은·2021년 1월 23일
0

JavaScript

목록 보기
2/23

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)); // 100
console.log(bar(10, 10)); // 100

2. Property

  • Arguments 함수 호출 시 전달된 인수들의 정보를 담고 있는 유사 배열 객체
function sayThanks(name) {
  console.log('Thank you for your purchase '+ name + '! We appreciate your business.');}

sayThanks('Cole');
// print 'Thank you for your purchase Cole! We appreciate your business.'
  • Caller 자신을 호출한 함수
function foo(func) {
  let res = func();
  return res;
}

function bar() {
  return 'caller : ' + bar.caller;
}

console.log(foo(bar)); // caller : function foo(func) {...}
console.log(bar());    // null (browser에서의 실행 결과)
  • Length 함수 정의 시 작성된 매개변수의 갯수.
    (arguments.length는 함수 호출 시 인자의 갯수이다.)
function foo() {}
console.log(foo.length); // 0

function bar(x) {
  return x;
}
console.log(bar.length); // 1

function baz(x, y) {
  return x * y;
}
console.log(baz.length); // 2
  • 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. 함수의 형태

  • 재귀함수: 자기 자신을 호출하는 함수. 반복연산을 간단히 구현할 수 있다.
// 피보나치 수열
// 피보나치 수는 0과 1로 시작하며, 다음 피보나치 수는 바로 앞의 두 피보나치 수의 합이 된다.
// 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, ...
function fibonacci(n) {
  if (n < 2) return n;
  return fibonacci(n - 1) + fibonacci(n - 2);
}

console.log(fibonacci(0)); // 0
console.log(fibonacci(1)); // 1
console.log(fibonacci(2)); // 1
console.log(fibonacci(3)); // 2
console.log(fibonacci(4)); // 3
console.log(fibonacci(5)); // 5
console.log(fibonacci(6)); // 8

// 팩토리얼
// 팩토리얼(계승)은 1부터 자신까지의 모든 양의 정수의 곱이다.
// n! = 1 * 2 * ... * (n-1) * n
function factorial(n) {
  if (n < 2) return 1;
  return factorial(n - 1) * n;
}

console.log(factorial(0)); // 1
console.log(factorial(1)); // 1
console.log(factorial(2)); // 2
console.log(factorial(3)); // 6
console.log(factorial(4)); // 24
console.log(factorial(5)); // 120
console.log(factorial(6)); // 720
  • 콜백함수: 특정 이벤트가 발생했을 때 시스템에 의해 호출되는 함수
<!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(); // My name is Lee
profile
그때그때 공부한 내용과 생각을 기록하는 블로그입니다.

0개의 댓글