Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

늘보블로그

함수 1 본문

스터디로그/javascript

함수 1

개발자늘보 2021. 1. 15. 23:27

함수


함수란?

  • 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것
  • 구성요소
    • 매개변수parameter: 입력을 전달받는 변수
    • 인수arguemnt: 입력
    • 반환값return value: 출력
  • 함수 호출: 인수를 매개변수를 통해 함수에 전달하면서 함수의 실행을 명시적으로 지시

함수를 사용하는 이유

  • 코드의 중복을 억제하고 재사용성을 높임 -> 유지보수의 편의성을 높이고 실수를 줄여 코드의 신뢰성 상승

함수 리터럴

  • 함수는 객체 타입의 값이므로 리터럴을 통해 생성 가능함
  • 구성요소: 함수이름, 매개변수 목록, 함수 몸체
  • 일반 객체와의 차이: 일반 객체는 호출할 수 없지만 함수는 호출할 수 있음

함수 정의

  • 함수 정의: 함수를 호출하기 이전에 함수를 전달받을 매개변수와 실행할 문들, 반환한 값을 지정하는 것
  • 함수 정의 방식: 함수 선언문, 함수 표현식, Function 생성자 함수, 화살표 함수
// 함수 선언문
function add(x, y) {
    return x + y;
}

// 함수 표현식
var add = function (x, y) {
    return x + y;
};

// Function 생성자 함수
var add = new Function("x", "y", "return x + y");

// 화살표 함수
var add = (x, y) => x + y;
함수 선언문
  • 함수 리터럴과 형태가 동일하나 함수 이름을 생략할 수 없다는 차이점이 있음
  • 표현식이 아닌 문. -> 변수 할당 불가능
var add = function add(x, y) {
    return x + y;
};

console.log(add(2, 5)); // 7
  • 위 예제가 실행되는 이유는 자바스크립트 엔진이 코드 문맥에 따라 중의적 해석을 하기 때문. 함수는 함수 객체를 가리키는 식별자로 호출하므로 함수 이름 add가 아닌 변수명 add가 호출된 것
  • 함수 선언문이 있을 경우 자바스크립트 엔진은 이를 해석해 함수 객체를 생성함. 이때 식별자가 없을 경우 암묵적으로 함수 이름과 동일한 이름의 식별자를 생성해 함수 객체를 할당함

'스터디로그 > javascript' 카테고리의 다른 글

메모리 누수  (0) 2021.02.08
함수 2  (0) 2021.01.16
Number() vs. parseInt()  (0) 2021.01.09
원시 값과 객체  (0) 2021.01.02
객체리터럴 2  (0) 2020.12.21