
var: 함수 스코프를 가지며 재선언과 재할당이 가능
let: 블록 스코프를 가지며 재선언은 불가능하지만 재할당이 가능
const: 블록 스코프를 가지며 재선언과 재할당이 불가능
var a = 10;
let b = 20;
const c = 30;
number: 숫자 (정수 및 실수)string: 문자열boolean: 참 (true), 거짓 (false)undefined: 값이 할당되지 않은 상태null: 값이 없음을 명시적으로 나타냄symbol: 유일한 값을 가지는 심볼object: 여러 데이터를 하나의 구조로 저장하는 자료형 (배열, 함수 포함)array: 여러 값을 순서대로 저장하는 객체function: 특정 동작을 수행하는 코드 블록let num = 42; // number
let str = "hello"; // string
let isTrue = true; // boolean
let notDefined; // undefined
let empty = null; // null
let uniqueKey = Symbol('key'); // symbol
let obj = { name: "홍길동", age: 25 }; // object
let arr = [1, 2, 3, 4]; // array
function greet() { return "Hi"; } // function
+ (더하기)- (빼기)* (곱하기)/ (나누기)% (나머지)* (거듭제곱)= (대입)+=, =, =, /=, %=, *= (복합 대입 연산자)== (값만 비교)=== (값과 자료형 비교)!= (값만 비교, 다르면 true)!== (값과 자료형 비교, 다르면 true)> (초과), < (미만), >= (이상), <= (이하)&& (AND)|| (OR)! (NOT)??)?? 연산자는 null 또는 undefined인 경우 대체 값을 반환
|| 연산자와 달리 null이나 undefined일 때만 오른쪽 값을 반환하며, 0이나 ""(빈 문자열)은 그대로 유지
let name = null;
let defaultName = "사용자";
let result = name ?? defaultName;
console.log(result); // "사용자"
let age = 0;
let displayAge = age ?? 18;
console.log(displayAge); // 0 (0은 falsy하지만 null이나 undefined가 아니므로 유지됨)
let age = 20;
if (age >= 18) {
console.log("성인입니다.");
}
let age = 15;
if (age >= 18) {
console.log("성인입니다.");
} else {
console.log("미성년자입니다.");
}
let score = 85;
if (score >= 90) {
console.log("A 학점");
} else if (score >= 80) {
console.log("B 학점");
} else {
console.log("C 학점");
}
let fruit = "apple";
switch (fruit) {
case "apple":
console.log("사과입니다.");
break;
case "banana":
console.log("바나나입니다.");
break;
default:
console.log("알 수 없는 과일입니다.");
}
for (let i = 0; i < 5; i++) {
console.log("반복:", i);
}
let count = 0;
while (count < 5) {
console.log("while 반복:", count);
count++;
}
let count = 0;
do {
console.log("do-while 반복:", count);
count++;
} while (count < 5);
let person = { name: "Alice", age: 25 };
for (let key in person) {
console.log(key, ":", person[key]);
}
let numbers = [10, 20, 30];
for (let num of numbers) {
console.log(num);
}