Wecode #2 TIL JavaScript Function

황인용·2019년 12월 6일
0

wecode TIL

목록 보기
2/12

JavaScript Function(함수)

함수(Function)이란 어떤 작업을 수행하기 위해 필요한 문(statement)들의 집합을 정의한 코드 블록.

Javascript에서 함수는 다른 객체처럼 속성 및 메서드를 가질 수 있기에 일급객체이다.

따라서 다른 객체와 함수를 구별하는 것은 함수는 호출될 수 있고 필요에 따라 호출하여 해당 작업을 반복수행가능하다.


▶ 함수몸체 : 함수는 블록('{ }')으로 감싸져있으며, 그 안에는 실행되는 문으로 채워져 있다.

▶ 함수명(함수이름)

▶ 매개변수 : 함수의 작업 실행을 위해 추가적인 정보가 필요할 경우, 매개변수를 지정한다. 매개변수는 함수 내에거 변수와 동일하게 동작한다

▶ return : 함수는 인수를 통해 들어온 값을 함수몸체에 있는 실행되는 문에 의해 최종적으로 어떠한 결과 값을 반환할 수 있다. return문을 통해 반환되는 값을 return value라 한다

함수 선언식(Funciton Declarations)

일반적으로 프로그래밍 언어 함수 선언과 비슷한 형식
▶ 문법

// 문법
function 함수명() {
  구현 로직
}
// 예시
function funcDeclarations() {
  return 'A function declaration';
}
funcDeclarations(); // 'A function declaration'

함수표현식(Function expression)

함수의 일급객체 특성을 이용하여 함수 리터널 방식으로 함수를 정의하고 변수에 할당할 수 있는데 이러한 방식을 함수 표현식(Function expression)이라 한다
▶ 문법

// 문법
var 함수명 = function () {
  구현 로직
}
// 예시
var funcExpression = function () {
    return 'A function expression';
}
funcExpression(); // 'A function expression'

호이스팅(Hoisting)

함수안에 있는 선언들을 먼저 모두 끌어올려서 해당 함수 유효 범위의 최상단에 선언하는 것을 말함.

자바스크립트는 Parser가 함수 실행 전 해당 함수를 전체적으로 한번 흝는다.

함수안에 존재하는 변수/함수 선언에 대한 정보를 메모리에 저장하고 기억해 두었다가 호출했을 시 실행시킨다

▶ 소스예제

//#예제 1 : 함수선언에서의  호이스팅
foo();
function foo() {
    console.log('hello');
};
> hello

//#예제 2 : 함수표현에서의  호이스팅
foo();
var foo = function() {
    console.log('hello');
};
> Syntax Error 

함수의 Parameter(매개변수) / Argument(인자)

▶ Parameter : 함수를 정의하는 코드에서 괄호안에 정의하고 있는 변수 (=매개변수)

▶ Arguments : 함수를 호출하는 곳에서 함수에 전달하는 값(=인자)

function add(x,y) { // add라는 명의 함수, x, y의 parameter
       var total = x + y;
       retrun total; 
}

console.log(10, 20) // argument(인자) 10, 20
profile
dev_pang의 pang.log

0개의 댓글