1. 함수
- 반복되는 코드를 미리 기술하고 필요할때 호출하는 기능
- 함수를 정의할때 다음과 같은 구문 사용
function functionName(parameter1, parameter2,...) {
}
- function: 함수를 정의할때 사용하는 키워드
- functionName: 함수 이름은 여러 함수를 구분하기 위함
- parameter: 매개변수. 함수 내에서 사용할 변수에 해당. 함수 호출시 소괄호 안에 매개변수값을 넣어 호출
- {} 는 실제로 실행되는 코드부분
- 정의한 함수를 호출하려면 함수 이름을 사용하고 필요한 인수를 전달.
- 함수 호출시 매개변수에 담을 데이터: 인자(인수)
const result = functionName(arg1, arg2,...);
(1) 간단한 함수 예시
function add(a, b) {
return a+b;
}
const sum = add(2,3);
console.log(sum);
var sum = add;
var result = sum(3,5);
(2) 자바스크립트 예제
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script>
function hi() {
document.write("안녕<br>");
}
hi();
hi();
hi();
function myTable() {
document.write(
"<table bgcolor='yellow' width = '100%' height=400px border=1><tr><td></td></tr></table>"
);
}
function myTop() {
document.write("<a href='#'>top</a>");
}
myTable();
myTop();
myTable();
myTop();
myTable();
myTop();
</script>
</head>
<body></body>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script>
function myPrint(str) {
document.write(str, "<br>");
}
myPrint("안녕");
myPrint("방가워");
myPrint("또봐");
function msgCount(msg, count) {
for (var i = 0; i < count; i++) {
document.write(msg + "<br>");
}
}
msgCount("hi~", 4);
function calChange(change100, change500) {
var rValue = change100 + change500;
return rValue;
}
document.write(calChange(5, 2));
</script>
</head>
<body></body>
</html>
2. 문자열로 구구단 표현

+ 필기 +
${} 문법은 템플릿 리터럴이라고 하며 특별한 문자열 표기하는 방법.
변수를 가지고 새로운 문자열 자료형을 만들때 사용함.
예) ${1+2}sms 1 + 2 결과인 3으로 대체
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script>
var str = "";
var count = 0;
str += "<table border=1>";
for (let i = 0; i < 5; i++) {
str += "<tr>";
for (let j = 0; j < 5; j++) {
str += "<td>";
str += count++;
str += "</td>";
}
str += "</tr>";
}
str += "</table>";
str += "<table border = 1>";
str += "<tr>";
for (let i = 1; i <= 9; i++) {
str += "<td>";
str += i + "단";
str += "</td>";
}
str += "</tr>";
str += "<tr>";
for (let i = 1; i <= 9; i++) {
str += "<td>";
for (let j = 1; j <= 9; j++) {
str += i + " * " + j + "=" + i * j + "<br>";
}
str += "</td>";
}
str += "</tr>";
str += "</table>";
document.write(str);
var i = 10;
str += `${1+2} + ${i} + ${i+3}`;
document.write(str);
</script>
</head>
<body>
</body>
</html>
+ 오류 +
count 초기화 선언하지 않아 화면에 출력되지 않음.
마지막 $부분에 앞을 `표기하지 않고 작은 따옴표 기호를 사용하여 출력되지 않음.
+ (231004 기준) 코드과정 풀이
1. str 변수값을 초기화한다.
2. count 변수값을 초기화한다
3. HTML태그인 테두리가 있는 테이블을 생성하여 str 문자열과 더한 후 대입한다.
4. 테이블의 행 개수를 반복하여 5개를 출력하였다.
5. 그리고, 데이터 행에 들어갈 값을 0부터 5미만 사이의 숫자들을 1씩 증가하여 삽입한다.
6. 반복문이 종료되면 tr태그로 닫는다.
7. 최종적으로 테이블 태그를 닫는다
8. 브라우저에 출력하고 싶다면 document.write(str)을 입력한다.
---------------------------------------
<구구단>
1. 테두리가 있는 테이블을 str 문자열에 더한 후 대입
2. tr태그를 생성한 문자열을 str문자열에 대입
3. 1부터 9까지 반복하는 반복문에 데이터값을 넣기 위해 td태그를 대입. 그리고 현재 i값에 "단" 문자열을 더하여 해당 구구단 생성 마지막으로 td태그를 닫는다.
4. 반복문을 빠져나와 tr태그를 닫고 다시 연다.
5. str 문자열에 i와 j값을 이용하여 계산하는 반복문을 실행한다.
6. td태그를 생성하여 i가 1부터 9까지 반복하는 반복문을 실행한다.
7. 반복문이 끝나면 td태그를 닫는다.
8. 반복문을 빠져나와 tr태그와 table태그를 닫고 브라우저에 화면을 출력한다.
3. Timer 사용하기
- Timer는 코드의 실행을 일정 시간 지연하거나 주기적으로 반복
- Timer 함수에는 setTimeout 함수와 setInterval 함수
(1) setTimeout
- 특정 함수나 코드 블록을 지정된 시간 후에 한 번 실행할 수 있음.
- 지연시간은 밀리초 단위 지정
다음 코드는 2초 후에 "안녕하세요" 메시지 콘솔 출력
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script>
setTimeout(function () {
console.log("안녕하세요!");
}, 2000);
</script>
</head>
<body></body>
</html>
(2) setInterval
- 특정 함수나 코드 블록을 일정시간 간격으로 주기적으로 실행
다음 코드는 1초마다 현재 시간을 콘솔에 출력
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
setInterval(function() {
var currentTime = new Date();
console.log("현재 시간: " + currentTime);
}, 1000);
</script>
</head>
<body>
</body>
</html>
(3) clearInterval
- setTimeout 또는 setInterval 함수로 설정한 타이머를 중지할 수 있는 함수
- setInterval함수는 리턴값으로 식별값 생성.
- 해당 식별값을 변수에 저장해서 clearInterval함수를 이용해 생성한 타이머 삭제
1초마다 실행되는 setInterval로 만든 타이머를 5초 후에 setTimeout안에서 clearInterval함수를 이용해 종료
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script>
var intervalid = setInterval(function () {
var currentTime = new Date();
console.log("현재 시간: " + currentTime);
}, 1000);
setTimeout(function () {
clearInterval(intervalid);
console.log("타이머가 중지되었습니다.");
}, 5000);
</script>
</head>
<body></body>
</html>
(4) 예제
복습용도로 활용하기. (p.32)
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script>
var a = 0;
var b = 0;
var c = 0;
var endStr = "";
var count = 1;
var intervalIdA = setInterval(function () {
a = a + parseInt(Math.random() * 10);
if (a >= 100) {
a = 100;
clearInterval(intervalIdA);
endStr = endStr + `A는 ${count++}등<br>`;
}
document.write("a:" + a + "<br>");
}, 500);
var intervalIdB = setInterval(function () {
b = b + parseInt(Math.random() * 10);
if (b >= 100) {
b = 100;
clearInterval(intervalIdB);
endStr = endStr + `B는 ${count++}등<br>`;
}
document.write("b:" + b + "<br>");
}, 500);
var intervalIdC = setInterval(function () {
c = c + parseInt(Math.random() * 10);
if (c >= 100) {
c = 100;
clearInterval(intervalIdC);
endStr = endStr + `C는 ${count++}등<br>`;
}
document.write("c:" + c + "<br>");
}, 500);
var intervalIdIsEnd = setInterval(function () {
if (count == 4) {
clearInterval(intervalIdIsEnd);
document.write("<br>게임종료:<br>" + endStr);
}
}, 500);
</script>
</head>
<body></body>
</html>