04.
자바스크립트 배우기 : 데이터 제어하기
소개
안녕하세요! 웹스토리보이입니다.
이 강의는 자바스크립트 초급부터 고급까지 아우르는 자바스크립트 핵심 개념을 다루는 기본서 강의입니다.
일반적인 자바스크립트 강의와는 목표와 방식이 다릅니다.
여기에서는 자바스크립트를 어떻게 단순하게 이해하고, 현실적으로 활용할 수 있는지를 고려하여 만들어진 내용입니다.
자바스크립트를 배우면서 때로는 이해하기 어려운 부분이나 무엇을 해야 하는지 혼란스러운 부분이 있을 수 있습니다.
그런 어려움을 극복하고 불필요한 시간 낭비를 줄이기 위해 이 강의는 차별화된 접근 방식을 채택하였습니다.
또한, 개인적으로도 어려움을 겪었던 부분들을 고려하여 설명하였습니다.
이 강의의 주요 목표는 자바스크립트를 학습하면서, 이론 뿐만 아니라 실제로 어떻게 활용할 수 있는지를 강조하는 것입니다.
이를 위해 강의는 크게 네 가지 주요 영역으로 구성되었습니다.
데이터 저장, 데이터 불러오기, 데이터 실행, 그리고 데이터 제어입니다.
이렇게 체계적으로 기초를 다지고 나서 실제 상황에 유용하게 활용할 수 있는 실용적인 예제를 다룰 것입니다.
이를 통해 프로그래밍 실력을 크게 향상시킬 수 있는 기회를 가지게 될 것입니다.
이 강의를 통해 자바스크립트의 세계에 더욱 가깝게 다가갈 수 있길 바랍니다.
인덱스
01. if문
if문은 조건에 따라 코드를 실행하는 제어문입니다.
{
if (조건) {
document.write("실행되었습니다.");
}
// 조건
// true : true, "문자열", 1, 2, "1", "2", [], {}
// false : fasle, 0, null, undefined ""(빈문자열)
}
if 문은 JavaScript에서 조건문을 작성하는 데 사용됩니다.
조건문은 특정 조건이 참(true)인지 거짓(false)인지에 따라 코드 블록을 실행할지를 결정합니다.
if 문을 사용하면 프로그램의 흐름을 제어할 수 있으며, 여러 가지 조건에 따라 다른 동작을 수행할 수 있습니다.
- 조건에 true, "문자열", 1, 2, "1", "2", [], {}가 들어가면 true를 의미합니다.
- 조건에 fasle, 0, null, undefined ""(빈문자열)이 들어가면 false를 의미합니다.
02. if-else문
if-else문은 조건(true, false)에 따라 코드를 실행하는 제어문입니다.
{
let num = 100;
if(num == 100){
document.write("true");
} else {
document.write("false");
}
}
if 문을 사용하여 변수 num의 값이 10인지 확인하고, 그에 따라 다른 메시지를 출력합니다.
- let num = 10; → 변수 num을 10으로 초기화합니다.
- if (num == 10) → num이 10과 같은지 확인합니다.
- document.write("true"); → 조건이 참이면 "true"를 출력합니다.
- document.write("false"); → 조건이 거짓이면 "false"를 출력합니
03. 다중 if문
다중 if 문은 여러 개의 조건을 실행하는 제어문입니다.
{
const num = 100;
if(num == 90){
document.write("실행되었습니다.(num = 90)");
} else if(num == 95){
document.write("실행되었습니다.(num = 95)");
} else if(num == 100){
document.write("실행되었습니다.(num = 100)");
} else if(num == 105){
document.write("실행되었습니다.(num = 105)");
} else {
document.write("실행되었습니다.");
}
// 실행되었습니다.(num = 100)
}
다중 if 문은 여러 개의 조건을 순차적으로 검사하고, 해당하는 조건이 참일 때에만 해당 코드 블록을 실행하는 구조입니다.
이를 통해 여러 가지 경우에 따라 다른 동작을 수행할 수 있습니다.
다음은 조건문을 사용하여 num 변수의 값에 따라 다른 메시지를 출력하는 예제입니다.
- num 변수 선언과 초기화 → num이라는 변수를 선언하고 초기값으로 100을 할당합니다.
- 첫 번째 if 문 → num이 90과 같은지 확인합니다. 만약 num이 90과 같다면 "실행되었습니다.(num = 90)"을 출력하고 다음
조건은 검사하지 않고 종료됩니다.
- 두 번째 else if 문 → num이 95와 같은지 확인합니다. num이 95와 같다면 "실행되었습니다.(num = 95)"을 출력하고
다음 조건은 검사하지 않고 종료됩니다.
- 세 번째 else if 문 → num이 100과 같은지 확인합니다. num이 100과 같다면 "실행되었습니다.(num = 100)"을
출력하고 다음 조건은 검사하지 않고 종료됩니다. 이 경우에 해당하므로 이 부분이 실행됩니다.
- 네 번째 else if 문 → num이 105와 같은지 확인합니다. num이 105와 같다면 "실행되었습니다.(num = 105)"을
출력하고 다음 조건은 검사하지 않고 종료됩니다.
- else 문 → 위의 모든 조건이 만족되지 않을 때 실행되며, "실행되었습니다."를 출력합니다. 이 부분은 실행되지 않습니다.
04. 중첩 if문
중첩 if문은 하나의 if문 안에 다른 if문이 포함된 제어문입니다.
{
const num = 100;
if(num == 100){
document.write("실행되었습니다.1");
if(num == 100){
document.write("실행되었습니다.2");
if(num == 100){
document.write("실행되었습니다.3");
}
}
} else {
document.write("실행되었습니다.4");
}
// 실행되었습니다.1
// 실행되었습니다.2
// 실행되었습니다.3
}
중첩된 if 문을 사용하여 num 변수의 값을 여러 번 검사하고 다른 메시지를 출력하는 예제입니다.
- num 변수 선언과 초기화: → num 변수를 선언하고 초기값으로 100을 할당합니다.
- 첫 번째 if 문 → num 변수의 값을 100과 비교하고, 값이 동일하면 "실행되었습니다.1"을 출력합니다.
- 두 번째 중첩된 if 문 → 두 번째 if 문은 첫 번째 if 문 내에 중첩되어 있습니다. 이 if 문은 또 다시 num 변수의 값을
100과 비교하고, 값이 동일하면 "실행되었습니다.2"를 출력합니다.
- 세 번째 중첩된 if 문 → 세 번째 if 문은 두 번째 if 문 내에 중첩되어 있습니다. 이 if 문은 다시 한 번 num 변수의 값을
100과 비교하고, 값이 동일하면 "실행되었습니다.3"을 출력합니다.
- else 블록: → 만약 첫 번째 if 문의 조건이 거짓이라면 (즉, num이 100이 아닌 경우), else 블록이 실행되고
"실행되었습니다.4"를 출력합니다.
05. if문 생략
if문은 생략하여 사용할 수 있습니다.
{
const num = 100;
// if(num == 100){
// document.write("true");
// }
// 01 약식으로 표현
if(num == 100) document.write("true");
// if(num == 100){
// document.write("true");
// } else {
// document.write("false");
// }
// 02 약식으로 표현
if(num == 100) document.write("true");
else document.write("false");
}
JavaScript에서 삼항 연산자와 조건부 연산자는 동일한 연산자를 가리키는 두 가지 다른 이름입니다.
- 01 → 이 부분은 약식으로 표현된 것으로, '{}' 중괄호를 생략하고 한 줄로 간결하게 작성되었습니다.
- 02 → 이 부분은 약식으로 표현된 if-else 문으로, '{}' 중괄호를 생략하고 두 줄로 간결하게 작성합니다.
06. 삼항 연산자
삼항 연산자는 조건식을 간결하게 표현할 수 있는 연산자입니다.
{
// 조건식
const num = 100;
if(num == 100){
document.write("true");
} else {
document.write("false");
}
// 삼항 연산자
num == 100 ? document.write("true") : document.write("false");
}
JavaScript에서 삼항 연산자와 조건부 연산자는 동일한 연산자를 가리키는 두 가지 다른 이름입니다.
공식적으로는 조건부 연산자(Conditional Operator)라고 부르지만, 삼항 연산자(Ternary Operator)라는 이름으로 자주 사용합니다.
삼항 연산자(Ternary Operator)는 JavaScript에서 조건에 따라 값을 선택하는 간단한 방법을 제공합니다.
삼항 연산자는 조건 ? 참일 때의 값 : 거짓일 때의 값 형태로 사용됩니다. if-else 문을 간결하게 표현할 수 있는 방법입니다.
- 01 → 조건문을 이용한 코드: 조건문과 if/else 블록을 사용하여 조건에 따라 코드를 분기시킵니다. 코드 구조가 명확하고 이해하기 쉽습니다.
- 02 → 삼항 연산자를 이용한 코드: 삼항 연산자를 사용하여 조건식, 참일 때 실행할 코드, 거짓일 때 실행할 코드를 한 줄에 작성합니다.
코드가 간결하고 표현력이 풍부하지만, 조건식이 길어지거나 복잡해지면 이해하기 어려울 수 있습니다.
조건문과 삼항연산자 어떤걸 사용할까?
조건문과 삼항연산자 모두 동일한 기능을 수행하지만, 각각 장단점이 있습니다.
상황에 따라 적절한 코드를 선택하는 것이 중요합니다.
- 코드가 명확하고 이해하기 쉬운 것이 중요하다면 조건문을 이용하는 코드를 사용하는 것이 좋습니다.
- 코드가 간결하고 표현력이 풍부한 것이 중요하다면 삼항 연산자를 이용하는 코드를 사용하는 것이 좋습니다.
- 조건식이 길거나 복잡한 경우에는 삼항 연산자를 사용하기보다는 조건문을 사용하는 것이 좋습니다.
07. switch문
switch 문은 여러 조건을 간결하게 처리할 수 있는 제어문입니다.
{
const num = 100;
switch(num){
case 90:
document.write("실행되었습니다.(90)");
break;
case 95:
document.write("실행되었습니다.(95)");
break;
case 100:
document.write("실행되었습니다.(100)");
break;
case 105:
document.write("실행되었습니다.(105)");
break;
default:
document.write("실행되었습니다.");
}
// 실행되었습니다.(100)
}
JavaScript의 switch 문은 하나의 표현식을 평가하고, 그 결과에 따라 여러 가능한 경우(case) 중 하나를 실행하는 제어 구조입니다.
if-else 문과 유사하지만, switch 문은 특정 값에 따라 분기하는 경우 더 간결하고 읽기 쉽게 코드를 작성할 수 있습니다.
다음은 switch 문을 사용하여 num 변수의 값을 비교하고 해당하는 case에 따라 다른 메시지를 출력하는 예제입니다.
- num 변수 선언과 초기화 → num 변수를 선언하고 초기값으로 100을 할당합니다.
- switch 문 → switch 문은 num 변수의 값을 확인하고, 해당하는 case로 분기합니다.
- 첫 번째 case 문 (90) → num이 90과 일치하지 않으므로 해당 코드 블록은 실행되지 않습니다.
- 두 번째 case 문 (95) → num이 95와 일치하지 않으므로 해당 코드 블록은 실행되지 않습니다.
- 세 번째 case 문 (100) → num이 100과 일치하므로 해당 코드 블록이 실행되고 "실행되었습니다.(100)"이 출력됩니다.
- 네 번째 case 문 (105) → num이 105와 일치하지 않으므로 해당 코드 블록은 실행되지 않습니다.
- default 문 → 어떤 case 문과도 일치하지 않을 때 실행되며, "실행되었습니다."가 출력됩니다.
if-else 문과 switch의 언제 사용하면 좋을까?
if 문과 switch 문은 모두 조건에 따라 코드의 흐름을 제어하는 데 사용됩니다.
그러나 둘 사이에는 몇 가지 차이점이 있으며, 특정 상황에서 각각의 장점이 있습니다.
if 문은 다음과 같은 경우에 사용됩니다.
- 조건이 복잡하거나 여러 조건을 포함해야 할 때.
- 조건이 범위나 논리 연산을 포함할 때.
- 다중 분기와 중첩된 조건을 처리할 때.
switch 문은 다음과 같은 경우에 사용됩니다.
- 조건이 명확한 값(예: 상수, 열거형)일 때.
- 여러 값에 대해 동일한 작업을 수행해야 할 때.
- 분기할 값이 많고, 코드의 가독성을 높이고 싶을 때.
비교 항목 |
if 문 |
switch 문 |
사용 목적 |
범위 조건이나 복잡한 조건을 평가할 때 사용 |
값이 명확히 구분되는 경우 사용 |
조건 평가 방식 |
조건식이 참인지 거짓인지 평가 |
표현식의 값이 특정 값과 일치하는지 평가 |
범위 조건 |
숫자 범위나 복잡한 논리를 처리하기에 적합 |
명확하게 구분되는 값들에 대해 분기할 때 적합 |
결론은 적절한 경우 및 상황에 맞게 if 문과 switch 문을 선택하여 사용하면 코드의 가독성과 유지보수성을 높일 수 있습니다.
08. while문
while 문은 주어진 조건이 참인 동안 반복적으로 실행하는 반복문입니다.
{
let num = 1;
while(num<=10){
document.write(num);
num++;
}
// 1 2 3 4 5 6 7 8 9 10
}
while 문은 JavaScript에서 반복문을 구현하는 한 가지 방법입니다. 조건이 참(true)인 동안 특정 코드 블록을 반복해서 실행합니다.
while 문은 반복 횟수가 미리 정해져 있지 않고, 조건에 따라 반복을 제어해야 할 때 유용합니다.
다음은 while 문을 사용하여 변수 num이 1에서 10까지의 숫자를 출력하는 예제입니다.
- let num = 1; → 코드는 변수 num을 선언하고 초기값으로 1을 할당합니다. 이 변수는 반복문에서 사용됩니다.
- while (num <= 10) { → while 문을 시작합니다. 조건으로 num이 10 이하인 동안 (num <= 10)
반복문을 실행하라고 지정합니다. 즉, 조건이 참인 동안 반복됩니다.
- document.write(num); → 현재 num 변수의 값을 웹 페이지에 출력합니다. 초기값은 1이므로 처음에는 "1"이 출력됩니다.
- num++; → num 변수를 1씩 증가시킵니다. 이것은 반복문이 한 번 실행될 때마다 num의 값을 1씩 증가시킵니다.
- 다음으로 조건을 검사합니다. num이 10보다 작거나 같으면 반복문이 계속 실행됩니다.
- document.write(num); → num의 현재 값이 출력되고, 다시 num++으로 num이 증가됩니다.
- 이 프로세스가 반복되고, num이 10 이하인 동안에는 계속해서 숫자가 출력됩니다.
- num이 11이 되면 조건이 거짓이 되고 while 반복문이 종료됩니다.
09. do while문
do while 문은 주어진 조건이 참인 동안 반복적으로 실행하는 반복문입니다.
{
let num = 1;
do {
document.write(num);
num++;
} while(num<=10);
// 1 2 3 4 5 6 7 8 9 10
}
do...while 반복문을 사용하여 변수 num이 1부터 10까지의 숫자를 웹 페이지에 출력하는 예제입니다.
- let num = 1; → 코드는 변수 num을 선언하고 초기값으로 1을 할당합니다. 이 변수는 반복문에서 사용됩니다.
- do { → do...while 반복문을 시작합니다. 이 부분은 무조건 한 번 실행됩니다.
- document.write(num); → num 변수의 값을 웹 페이지에 출력합니다. 초기값은 1이므로 먼저 "1"이 출력됩니다.
- num++; → num 변수를 1씩 증가시킵니다. 이것은 반복문이 한 번 실행될 때마다 num의 값을 1씩 증가시킵니다.
- while (num <= 10); → 조건 검사 부분입니다. while 키워드 뒤에 따라오는 조건은 코드 블록 실행 이후에
검사됩니다. num이 10 이하인 동안 반복문을 계속 실행하라고 지정합니다.
- 이제 반복문이 처음부터 다시 실행됩니다. num이 2가 되고 "2"가 출력됩니다. 그런 다음 num이 3, 4, 5, ..., 10까지 증가하면서 각
숫자가 출력됩니다.
- num이 11이 되면 조건이 false가 되고 반복문이 종료됩니다.
while문과 do while의 차이점은?
while문과 do-while문의 차이점은 조건 검사의 위치에 있습니다.
이로 인해 두 반복문이 동작하는 방식에 차이가 생기게 됩니다.
조건 검사 위치 :
- while문 → 조건 검사를 반복문의 시작 부분에서 수행합니다.
- do-while문 → 조건 검사를 반복문의 끝 부분에서 수행합니다.
반복 횟수 :
- while문 → 조건이 참일 경우에만 반복문이 실행됩니다. 따라서 반복문이 최소 한 번도 실행되지 않을 수 있습니다.
- do-while문 → 반복문이 최소 한 번은 실행됩니다. 조건 검사를 나중에 하기 때문에, 처음 한 번은 무조건 실행됩니다.
10. for문
for 문은 반복 작업을 수행하는 데 사용되는 제어문입니다.
{
for( let i=1; i<=10; i++ ){
document.write(i);
}
// 1 2 3 4 5 6 7 8 9 10
}
for문은 컴퓨터 프로그래밍에서 반복 작업을 수행하는 데 가장 많이 사용되는 반복문 중 하나입니다.
특정 범위의 값을 순환하면서 해당 값마다 반복적으로 코드를 실행하는 데 사용됩니다.
다음은 for문을 사용하여 변수 i가 1부터 10까지의 숫자를 웹 페이지에 출력하는 예제입니다.
for문은 초기화, 조건, 증감을 한 줄에 표현하여 반복 작업을 수행하는데 매우 효율적입니다.
- for (let i = 1; i <= 10; i++) { → for 반복문을 시작합니다. 이 부분은 반복문의 초기화, 조건, 증감
부분을 한 줄에 표현합니다.
- let i = 1; → 변수 i를 선언하고 초기값으로 1을 할당합니다. 이 변수는 반복문에서 사용됩니다.
- i <= 10; → 조건으로, i가 10 이하인 동안 반복문을 실행하라고 지정합니다.
- i++ → 반복문이 한 번 실행될 때마다 i 값을 1씩 증가시킵니다.
- { → 반복문의 시작을 나타내는 중괄호를 엽니다.
- document.write(i); → 현재 i 변수의 값을 웹 페이지에 출력합니다. 초기값은 1이므로 먼저 "1"이 출력됩니다.
- } → 반복문의 끝을 나타내는 중괄호를 닫습니다.
- 이제 반복문이 처음부터 다시 실행됩니다. i가 2가 되고 "2"가 출력됩니다. 그런 다음 i가 3, 4, 5, ..., 10까지 증가하면서 각 숫자가
출력됩니다.
- i가 11이 되면 조건이 false가 되고 반복문이 종료됩니다.
11. 중첩 for문
중첩 for문은 하나의 for문 안에 다른 for문이 포함된 반복문입니다.
{
for( let i=1; i<=2; i++ ){
for( let j=1; j<=5; j++ ){
document.write(i, j);
}
}
// 11 12 13 14 15 21 22 23 24 25
}
두 개의 중첩된 for문을 사용하여, 외부 반복문의 변수 i가 1에서 2까지,
내부 반복문의 변수 j가 1에서 5까지 변하는 동안 각각의 조합을 출력합니다.
- for (let i = 1; i <= 2; i++): i를 1로 초기화하고, i가 2 이하인 동안 반복하며, 매 반복마다 i를 1씩 증가시킵니다.
- for (let j = 1; j <= 5; j++): j를 1로 초기화하고, j가 5 이하인 동안 반복하며, 매 반복마다 j를 1씩 증가시킵니다.
- document.write(i, j): 현재 i와 j 값을 출력합니다.
12. break문
반복 작업 수행을 종료합니다.
{
for(let i=1; i<10; i++){
if( i == 5 ){
break;
}
document.write(i);
}
// 1 2 3 4
}
break문은 JavaScript에서 반복문(for, while, do...while) 또는 switch 문에서 사용되며,
해당 반복문을 종료하거나 switch 문의 실행을 중단하는 데 사용됩니다.
다음은 for 반복문을 사용하여 1부터 9까지의 숫자를 출력하고 break를 설정한 예제입니다.
- for (let i = 1; i < 10; i++) { → for 반복문을 시작합니다. 이 부분은 반복문의 초기화, 조건, 증감
부분을 한 줄에 표현합니다.
- let i = 1; → 변수 i를 선언하고 초기값으로 1을 할당합니다. 이 변수는 반복문에서 사용됩니다.
- i < 10; → 조건으로, i가 10보다 작은 동안 반복문을 실행하라고 지정합니다.
- i++ → 반복문이 한 번 실행될 때마다 i 값을 1씩 증가시킵니다.
- { → 반복문의 시작을 나타내는 중괄호를 엽니다.
- if (i == 5) { → 조건문을 시작합니다. 현재 반복 회차에서 i가 5와 같은지를 검사합니다.
- break; → 만약 i가 5와 같다면 break 문을 사용하여 현재 반복문을 즉시 종료합니다.
- } → 조건문의 끝을 나타내는 중괄호를 닫습니다.
- document.write(i); → 현재 i 변수의 값을 웹 페이지에 출력합니다.
- 이제 반복문이 처음부터 다시 실행됩니다. i가 2가 되고 "2"가 출력됩니다. 그런 다음 i가 3, 4까지 증가하면서 각 숫자가 출력됩니다.
- i가 5가 되면 조건문에서 break 문을 만나게 되고, 반복문이 즉시 종료됩니다.
13. continue문
현재 반복 작업 수행을 건너뛰고 다음 반복문을 실행합니다.
{
for(let i=1; i<10; i++){
if( i == 5 ){
continue;
}
document.write(i);
}
// 1 2 3 4 6 7 8 9
}
continue문은 JavaScript에서 반복문(for, while, do...while) 내에서 사용되며,
반복문의 현재 회차를 중지하고 다음 회차로 건너뛰는 데 사용됩니다.
다음은 for 반복문을 사용하여 1부터 9까지의 숫자를 출력하고 continue를 설정한 예제입니다.
- for (let i = 1; i < 10; i++) { → for 반복문을 시작합니다. 이 부분은 반복문의 초기화, 조건, 증감
부분을 한 줄에 표현합니다.
- let i = 1; → 변수 i를 선언하고 초기값으로 1을 할당합니다. 이 변수는 반복문에서 사용됩니다.
- i < 10; → 조건으로, i가 10보다 작은 동안 반복문을 실행하라고 지정합니다.
- i++ → 반복문이 한 번 실행될 때마다 i 값을 1씩 증가시킵니다.
- { → 반복문의 시작을 나타내는 중괄호를 엽니다.
- if (i == 5) { → 조건문을 시작합니다. 현재 반복 회차에서 i가 5와 같은지를 검사합니다.
- continue; → 만약 i가 5와 같다면 continue 문을 사용하여 현재 반복 회차를 중지하고 다음 회차로 넘어갑니다.
- } → 조건문의 끝을 나타내는 중괄호를 닫습니다.
- document.write(i); → 현재 i 변수의 값을 웹 페이지에 출력합니다.
- 이제 반복문이 처음부터 다시 실행됩니다. i가 2가 되고 "2"가 출력됩니다. 그런 다음 i가 3, 4까지 증가하면서 각 숫자가 출력됩니다.
- i가 5가 되면 조건문에서 continue 문을 만나게 되고, 현재 회차는 중지되고 다음 회차로 넘어갑니다.
- 반복문은 6부터 9까지의 숫자를 출력하고, i가 10이 되면 조건이 거짓이 되어 반복문이 종료됩니다.