JavaScript는 웹 페이지를 동적이고 인터랙티브하게 만들기 위해 탄생한 프로그래밍 언어입니다.
과거에는 브라우저에서만 사용되었지만, Node.js의 등장으로 이제는 서버(백엔드), 데스크톱 앱, 모바일 앱 등 거의 모든 영역에서 사용되는 범용 언어가 되었습니다.
웹에서의 역할:
| 키워드 | 특징 | 스코프(Scope) | 재할당 | 재선언 |
|---|---|---|---|---|
let | (ES6+) 블록 스코프를 가지는 변수. 권장되는 기본 변수 선언 방식. | 블록 {} | 가능 | 불가능 |
const | (ES6+) 블록 스코프를 가지는 상수. 한 번 할당하면 값을 변경할 수 없음. | 블록 {} | 불가능 | 불가능 |
var | (구식) 함수 스코프를 가지는 변수. 호이스팅 등 예기치 않은 문제 발생 가능. | 함수 | 가능 | 가능 |
const로 선언하고, 재할당이 꼭 필요한 경우에만 let을 사용합니다. var는 사용하지 않는 것이 좋습니다.| 구분 | 타입 | 설명 |
|---|---|---|
| 원시 타입 | string | 문자열 (따옴표 '' 또는 "" 사용) |
number | 숫자 (정수, 실수 모두 포함) | |
boolean | true 또는 false | |
null | "값이 없음"을 의도적으로 명시한 값 | |
undefined | 값이 할당되지 않은 상태 | |
symbol | (ES6+) 고유하고 변경 불가능한 값 | |
| 객체 타입 | object | 여러 값을 key: value 쌍으로 저장하는 데이터 구조 |
함수 선언문 (Function Declaration):
function add(a, b) {
return a + b;
}
함수 표현식 (Function Expression):
const subtract = function(a, b) {
return a - b;
};
화살표 함수 (Arrow Function) - (ES6+):
function 키워드와 return을 생략하여 코드를 매우 간결하게 만들어 줍니다. 현대 JavaScript에서 가장 널리 사용되는 방식입니다.const multiply = (a, b) => a * b;
// 코드가 여러 줄일 경우
const divide = (a, b) => {
if (b === 0) {
return "Error: Cannot divide by zero";
}
return a / b;
};
+, -, *, /, % (나머지), ** (거듭제곱, ES7+)=, +=, -=== (동등 연산자): 타입을 강제로 변환하여 값을 비교. ('1' == 1 → true) 사용 비권장.=== (일치 연산자): 타입과 값을 모두 비교. ('1' === 1 → false) 사용 권장.!=, !==, >, <, >=, <=&& (AND), || (OR), ! (NOT)(조건) ? 값1 : 값2if / else if / else 문:
const score = 85;
if (score >= 90) {
console.log('A');
} else if (score >= 80) {
console.log('B');
} else {
console.log('C');
}
switch 문:
const fruit = 'Apple';
switch (fruit) {
case 'Apple':
console.log('Price is 1000 won.');
break;
case 'Banana':
console.log('Price is 1500 won.');
break;
default:
console.log('Not in stock.');
}
const로 선언하고, 재할당이 필요할 때만 let을 사용합니다. var는 사용을 피합니다.string, number, boolean 등)과 객체 타입으로 나뉩니다.=== (일치 연산자)를 사용하는 것이 안전합니다.