남고생들의 소소한 개발 일지
[JS] 함수,입출력 본문
오늘은 함수(function)이라는 것에 대해 설명을 하고자 한다
JavaScript 에서의 함수의 형식은 아래와 같다
function 함수명([인자]){
코드
return 반환값;
}
함수는 function 뒤에 함수의 이름이 오고 소괄호가 따라온다. 소괄호에 인자라는 값이 차례로 들어오는데 이 값은 함수를 호출할 때 함수의 로직으로 전달될 변수이다.
함수의 종류 2가지를 설명하고자 한다
첫 번째로는 익명 함수이다
예시로 밑에 코드를 참고하자
var test = function() {
var output = prompt('테스트 문장입니다');
alert(output);
};
test();
위 코드처럼 첫 문장의 우변을 익명 함수라고 한다 우변만 보았을 때, 이 함수는 이름이 없으므로 익명 함수라고 부른다
익명 함수는 주로 위 코드처럼 변수에 넣어 사용한다
두 번째로는 선언적 함수이다
예시로 밑에 코드를 참고하자
function test() {
var output = prompt('테스트 문장입니다');
alert(output);
};
test();
이처럼 function 키워드를 이용하여 함수를 선언하는 경우를 선언적 함수라고 한다. 얼핏 보면 익명 함수와 선언적 함수의 큰 차이는 없어 보인다 하지만 생성하는 시점에 따라 조금의 차이가 있다.
그 차이는 웹브라우저가 script 태그 내부의 내용을 위에서 한 줄씩 읽기 전에 선언적 함수부터 읽는다는 것이다.
test();
var test = function() {alert('테스트입니다')};
위에 코드를 실행하면 오류가 난다.
그 이유는 웹브라우저는 코드를 읽을 때 위에서부터 한 줄씩 차례로 읽는데, 익명 함수를 사용하기 이전에 그 변수를 사용했기 때문이다.
test();
function test() {alter('테스트 입니다')};
위 코드는 오류가 나지 않는다.
그 이유는 웹브라우저가 선언적 함수가 있으면 그 코드부터 읽은 뒤에 차례로 읽어 나가기 때문이다.
내가 설명할 '변수'의 설명은 여기까지이다
이제 입출력에 대해 설명을 하고자 한다.
출력에서의 반환은 기본적으로 'return'이라는 키워드를 사용한다
예시로 밑에 코드를 참고하자
function test(){
return 'test';
}
alert(test());
이 'return'이라는 키워드가 나오면 2가지의 일을 한다.
첫 번째로 함수를 종료시키는 것,
두 번째로 return 뒤에 있는 ;(세미콜론)까지의 데이터를 선언한 함수에 출력 값으로 반환하게 된다.
다른 기능으로도 함수를 중지시키는 역할을 한다.
예시로 밑에 코드를 참고하자
function test(){
return 'test';
return 'study';
return 'JavaScript';
}
alert(test());
위 코드를 실행시키면 결괏값은 test라는 값이 나올 것이다.
나머지 study와 JavaScript의 값을 출력하지 않은 이유는 test를 실행한 후 함수가 종료되었기 때문이다.
내가 준비한 설명은 여기까지이다. 문제점과 수정할 부분이 있다면 댓글로 남겨주길 바란다.
참고자료:https://opentutorials.org/course/743/4729
함수 - 생활코딩
함수 함수(function)란 하나의 로직을 재실행 할 수 있도록 하는 것으로 코드의 재사용성을 높여준다. 함수의 형식 함수의 형식은 아래와 같다. function 함수명( [인자...[,인자]] ){ 코드 return 반환값 } 함수의 정의와 호출 함수는 function 뒤에 함수의 이름이 오고, 소괄호가 따라온다. 소괄호에 인자라는 값이 차례로 들어오는데 이 값은 함수를 호출할 때 함수의 로직으로 전달될 변수다. 인자는 생략 할 수 있다. 함수를 호출
opentutorials.org
'프로그래밍 > JavaScript' 카테고리의 다른 글
| [JS] 객체 (0) | 2019.10.10 |
|---|---|
| [JS] 배열 (0) | 2019.10.08 |
| [JS] 반복문 (2) (0) | 2019.10.06 |
| [JS] 반복문 (0) | 2019.10.06 |
| [js]조건문(2) (0) | 2019.10.04 |