강의 내용
1. 변수와 데이터 타입
JavaScript에서 데이터를 저장하고 관리하는 방법을 학습합니다.
변수 선언
// let: 재할당 가능한 변수
let name = "홍길동";
let age = 25;
// const: 재할당 불가능한 상수
const PI = 3.14159;
const birthYear = 1998;
// var: 옛 방식 (사용 지양)
var oldVariable = "과거 방식";
// 변수 재할당
name = "김철수"; // 가능
age = 26; // 가능
// PI = 3.14; // 오류! const는 재할당 불가
데이터 타입
// 원시 타입 (Primitive Types)
let text = "Hello World"; // 문자열 (String)
let number = 42; // 숫자 (Number)
let isTrue = true; // 불린 (Boolean)
let nothing = null; // null
let undefined; // undefined
let symbol = Symbol('id'); // 심볼 (Symbol)
// 참조 타입 (Reference Types)
let array = [1, 2, 3, 4, 5]; // 배열
let object = { // 객체
name: "홍길동",
age: 25,
isStudent: true
};
// 타입 확인
console.log(typeof text); // "string"
console.log(typeof number); // "number"
console.log(typeof isTrue); // "boolean"
console.log(typeof array); // "object"
console.log(Array.isArray(array)); // true
2. 연산자
JavaScript의 다양한 연산자들을 알아봅시다.
// 산술 연산자
let a = 10;
let b = 3;
console.log(a + b); // 13 (덧셈)
console.log(a - b); // 7 (뺄셈)
console.log(a * b); // 30 (곱셈)
console.log(a / b); // 3.333... (나눗셈)
console.log(a % b); // 1 (나머지)
console.log(a ** b); // 1000 (거듭제곱)
// 비교 연산자
console.log(a > b); // true
console.log(a < b); // false
console.log(a >= b); // true
console.log(a === 10); // true (값과 타입 모두 같음)
console.log(a == "10"); // true (값만 같음)
console.log(a !== b); // true
// 논리 연산자
let x = true;
let y = false;
console.log(x && y); // false (AND)
console.log(x || y); // true (OR)
console.log(!x); // false (NOT)
// 할당 연산자
let num = 10;
num += 5; // num = num + 5; (15)
num -= 3; // num = num - 3; (12)
num *= 2; // num = num * 2; (24)
num /= 4; // num = num / 4; (6)
3. 조건문
프로그램의 흐름을 제어하는 조건문을 학습합니다.
if 문
let score = 85;
// 기본 if 문
if (score >= 90) {
console.log("A학점");
}
// if-else 문
if (score >= 90) {
console.log("A학점");
} else {
console.log("A학점 아님");
}
// if-else if-else 문
if (score >= 90) {
console.log("A학점");
} else if (score >= 80) {
console.log("B학점");
} else if (score >= 70) {
console.log("C학점");
} else {
console.log("재수강 필요");
}
// 삼항 연산자
let result = score >= 80 ? "합격" : "불합격";
console.log(result); // "합격"
switch 문
let day = "월요일";
switch (day) {
case "월요일":
console.log("새로운 주의 시작!");
break;
case "화요일":
case "수요일":
case "목요일":
console.log("평일입니다.");
break;
case "금요일":
console.log("불금!");
break;
case "토요일":
case "일요일":
console.log("주말입니다!");
break;
default:
console.log("올바르지 않은 요일입니다.");
}
4. 반복문
반복적인 작업을 효율적으로 처리하는 반복문을 알아봅시다.
for 문
// 기본 for 문
for (let i = 0; i < 5; i++) {
console.log("카운트:", i);
}
// 배열 반복
let fruits = ["사과", "바나나", "오렌지"];
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
// for...of (배열의 값)
for (let fruit of fruits) {
console.log("과일:", fruit);
}
// for...in (객체의 키)
let person = { name: "홍길동", age: 25, city: "서울" };
for (let key in person) {
console.log(key + ": " + person[key]);
}
while 문
// while 문
let count = 0;
while (count < 3) {
console.log("카운트:", count);
count++;
}
// do-while 문
let input;
do {
input = prompt("올바른 비밀번호를 입력하세요:");
} while (input !== "1234");
// break와 continue
for (let i = 0; i < 10; i++) {
if (i === 3) {
continue; // 3일 때 건너뛰기
}
if (i === 7) {
break; // 7일 때 반복 중단
}
console.log(i);
}
5. 함수
코드를 재사용하고 구조화하기 위한 함수를 만들어봅시다.
함수 선언과 호출
// 함수 선언식
function greet(name) {
return "안녕하세요, " + name + "님!";
}
// 함수 호출
let message = greet("홍길동");
console.log(message); // "안녕하세요, 홍길동님!"
// 함수 표현식
const add = function(a, b) {
return a + b;
};
console.log(add(5, 3)); // 8
// 화살표 함수 (ES6)
const multiply = (a, b) => {
return a * b;
};
// 간단한 화살표 함수
const square = x => x * x;
console.log(square(4)); // 16
실용적인 함수 예제
// 계산기 함수들
function calculator(operation, a, b) {
switch (operation) {
case '+':
return a + b;
case '-':
return a - b;
case '*':
return a * b;
case '/':
return b !== 0 ? a / b : "0으로 나눌 수 없습니다";
default:
return "올바르지 않은 연산자입니다";
}
}
// 배열 관련 함수
function findMax(numbers) {
if (numbers.length === 0) return null;
let max = numbers[0];
for (let i = 1; i < numbers.length; i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}
return max;
}
// 사용 예제
console.log(calculator('+', 10, 5)); // 15
console.log(findMax([3, 7, 2, 9, 1])); // 9