1. 함수 (function)
함수는 입력(input)을 받아, 출력(output)을 하는 하나의 작은 기능 단위이다.
함수는 함수의 몸통(function body)이라고 하는 구문(statement)으로 구성된다.
javascript에서 함수는 다른 객체와 같이 속성(property) 및 method를 가질 수 있기에 일급 객체로 볼 수 있다.
여기서 함수와 객체의 차이를 설명하자면, 함수는 호출될 수 있기 때문에 함수는 Function 객체이다.
함수 선언 ( function 문 )
함수를 사용하기 위해서는, 함수를 선언해야 한다.
function name([param[, param[, ... param]]]) {
statements
}
name : 함수명
param : 함수에 전달되는 인수의 이름, 파라미터(parameter) . 함수는 255개까지 인수를 가질 수 있다.
statements : 함수의 몸통을 구성하는 문
위를 좀 더 직관적으로 예를 들어보자,
function plusOne(input1) {
input1 = input1 + 1;
return input1;
}
let minusOne = function (input2) {
input2 = input2 - 1;
return input2;
};
자바스크립트에서 함수는 두가지 방식으로 선언될 수 있다.
첫 번째 함수 plusOne은 함수 선언식
두 번째 함수 minusOne은 함수 표현식을 변수 minusOne에 할당했다. 미묘한 차이는 있지만 변수를 선언하고, 함수를 할당했다 라는 결론은 분명하다.
함수 표현식 ( function expression )이란,
function 키워드는 어떤 표현식(expression) 내에서 함수를 정의하는 데 사용될 수 있습니다.
함수 표현식과 fuction 문의 차이점
주요 차이점은 함수 이름으로, 함수 표현식으로 익명 함수를 만들 경우 이 이름을 생략할 수 있습니다.
또한, 기본값 이외의 값을 반환하려면, 함수는 반환할 값을 지정하는 return 문이 있어야 합니다. return 문이 없는 함수는 기본값을 반환합니다. new 키워드로 호출되는 생성자의 경우에, 기본값은 자신의 this 매개변수 값입니다. 다른 모든 함수의 경우, 기본 반환값은 undefined입니다.
2. return 명령문
return 명령문은 함수 실행을 종료하고, 주어진 값을 함수 호출 지점으로 반환합니다.
return [[expression]];
expression : 반환할 값으로 사용할 표현식. 생략할 경우 undefined를 대신 반환
함수 본문에서 return 명령문에 도달하면 함수의 실행은 그 지점에서 중단됩니다.
값을 제공한 경우 함수를 호출한 곳에 그 값을 반환합니다. 예를 들어, 다음 함수는 숫자 매개변수 x의 제곱을 반환합니다.
function square(x) {
return x * x;
}
var demo = square(3);
// demo는 9
값을 명시하지 않으면 대신 undefined를 반환한 다음 return 명령문 모두 함수 실행을 끊는다.
return;
return true;
return false;
return x;
return x + y / 3;
함수 중단
반복문을 통하여 함수 내 return 사용 시, 코드의 흐름을 보자.
for (var count = 1; ; count++) { // 무한 반복
console.log(count + "A"); // 5까지
if (count === 5) {
return;
}
console.log(count + "B"); // 4까지
}
console.log(count + "C"); // 절대 나타나지 않음
}
counter();
위와 같이, 함수 내부에서 리턴에 도달한다면, 함수의 실행이 종료된다.
함수 실행
작성한 함수를 실행하기 위해서는 변수에 함수가 담겨있다면, 다른 변수와는 다르게 () 괄호를 붙여서 함수를 실행할 수 있다. 또한 입력값을 설정할 수도 있으며, 이를 전달인자(argument), 줄여서 인자라고 부른다.
function square(x) {
return x * x;
}
square(3) // 9
'Code > JavaScript' 카테고리의 다른 글
Javascript 스트링 메소드(String Method)와 문자열 기본 사용법 (0) | 2020.09.13 |
---|---|
Javascript 조건문 if, 비교 연산자, 논리 연산자 (0) | 2020.09.13 |
Javascript 타입(type)에 따른 작동 방식의 차이 // String(), Number() (0) | 2020.09.13 |
Javascript // 타입 (type)과 종류 (0) | 2020.09.13 |
JavaScript 변수 (0) | 2020.09.07 |