함수(function) : 실행문(코드) 저장해서 사용
-한번에 코드를 저장해서 한번에 실행시키기 위해 사용함
<script>
// 함수 선언(정의)
function info_ITWILL() {
alert("안녕하세요!");
alert("아이티윌 입니다!");
alert("접수는 왼쪽입니다!");
}
// 함수 호출(사용)
info_ITWILL();
info_ITWILL();
</script>
함수명();
function 함수명() { //함수명은 의미있게, 주로 영문+숫자
실행코드1;
실행코드2;
실행코드3;
}
익명함수 — 변수명() 사용
var tmp = function() {
실행코드1;
실행코드2;
실행코드3;
}
=> 변수명() / 참조변수()
⇒ 변수 이름으로 호출
🔥 괄호 있으면 함수
괄호 없으면 변수
sayMyName 이름의 함수를 선언
=> 본인의 이름을 출력하는 함수
function sayMyName() {
document.write("내이름은 땅콩입니다.");
}
sayMyName();
함수에 정보 전달하기
function 함수명(매개변수1, 매개변수2,..., 매개변수n) {
코드 실행;
}
//함수 호출
함수명(값1, 값2,...값n); --매개변수 개수와 똑같이 맞추기
매개변수 : 함수를 실행하기 위해 반드시 필요한 데이터
매개변수 Max - 6개
-매개변수가 많을수록 처리 속도가 증가함.
-증가 폭이 6개 이상부터 급격히 성능 떨어짐.
⇒ 일반적으로 매개변수를 여러 개 쓸 수 있지만 가능하면 6개까지 권장함
*전달해야 할 데이터가 6개 이상이면.. 처리해야 하는 다른 방법이 있음(객체)
매개변수 1개 사용(숫자), 1 ~ 전달 받은 매개변수까지의 합을 출력 함수
function exSum(num) { // var 타입이 없음, 변수명만 써주면됨
// 합 계산
var sum = 0;
for(var i=1; i<=num; i++) {
sum += i; // 값이 계속 바뀌는 i
}
document.write("합 : " + sum +"<br>");
}
exSum(10); // 1~10까지의 합
exSum(55); // 1~55 까지의 합
숫자 2개를 전달해서, 해당 숫자의 합을 출력하는 함수 생성
function exAdd(num1, num2) {
document.write(num1 + "+" + num2 + "=" +(num1 + num2)+"<br>");
}
exAdd(10, 20); // num1=10, num2=20;
숫자 2개를 전달하여, 둘 중에 큰 수를 출력
function exMax(num1, num2) {
if(num1 > num2) {
document.write("최대값: " + num1 + "<br>");
} else {
document.write("최대값: " + num2 + "<br>");
}
}
exMax(55,20)
function exBigger(num1, num2) {
document.write(num1+"과 " + num2 + "중 큰 수는 ");
document.write( num1 > num2 ? num1 : num2 + "입니다.<br>");
}
exBigger(10,20);
function 함수명(x, 매개변수) {
실행코드;
return 값;
}
function -매개변수O 함수명(n1, n2, ...) 매개변수 사용하면 값 전달 받아 사용함. - 리턴 O // 값을 돌려줌 - 리턴 X
-매개변수X 함수명()
- 리턴 O
- 리턴 X
=> 함수(function)는 리턴이 없을 경우 위에서 아래로 모든 코드 실행 (대부분 실행(계산)의 결과를 출력) => 함수(function)는 리턴이 있을 경우 위에서 아래로 실행 (특정 결과를 리턴)
매개변수 1개를 사용하여, 전달받은 숫자의 절대값을 계산후 리턴
-절대값(양수는 그대로, 음수는 양수로 변환)
function exABS(n) {
if(n>0) { //양수
return n;
} else { //음수
// return -n;
return n*(-1);
}
}
var tmp = exABS(100); // 1. 함수 실행결과를 변수에 저장하고,
document.write(" 결과 : " + tmp + "<br>"); // 2. 결과를 출력함.
document.write("결과 : " + exABS(-200)); // 또는, 출력문 안에 함수 호출 : 값을 바로 출력 할 수 있음
리턴문은 if-else 안에 들어있는게 좋지않음
return n*(-1);
코드를 주석처리하면 음수일때 결과가 나오지않음(undefined)
JS라서 실행은 되지만, 다른 언어에선 실행도 안됨
⇒ 함수의 끝에 return 을 쓰면됨!
function exABS(n) {
if(n>0) { //양수
// return n;
n = n;
} else { //음수
// return -n;
// return n*(-1);
// n = n * (-1);
n *= -1;
}
return n; // 절대값 계산이 안됨
}
var tmp = exABS(100);
document.write(" 결과 : " + tmp + "<br>");
document.write(" 결과 : " + exABS(-200));
매개변수 3개 사용, 입력 받은 산술 연산의 결과를 리턴하는 함수
-ex(10, "+", 20); //가운데 해당하는 매개변수는 산술 연산만 담아오기
function ex(num1, op, num2) { //op = operator
var result = 0;
switch(op) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
case "%":
result = num1 % num2;
break;
}
return result;
}
document.write( ex(10, "+", 20) + "<br>");
document.write( ex(40, "/", 50) + "<br>");
함수 강제종료
function test() {
document.write("1");
return; // 리턴의 위치를 바꾸면? -> 아래 코드("2")가 실행이 안됨
// 리턴의 목적이 끝나서 더이상 실행하지 않음
// -> return 문은 실행하는 위치에 따라서 함수를 강제 종료가능하다.
// document.write("2");
}
리턴의 위치에 따라 강제 종료 할 수 있다.
function test2() {
document.write(" 1 ");
document.write(" 2 ");
document.write(" 3 ");
return;
document.write(" 4 ");
return 100;
document.write(" 5 ");
}
test2();
'Front End > JS' 카테고리의 다른 글
[JS] 무한루프 (0) | 2023.09.17 |
---|---|
[JS] var를 사용한 변수의 특징 (0) | 2023.09.17 |
[JS] 반복문(for, while, do-while) (0) | 2023.09.17 |
[JS] prompt를 활용한 제어문(조건문 if / if-else / if-else if) (0) | 2023.09.17 |
[JS] 연산자 (0) | 2023.09.17 |