기초 문법과 데이터 타입
2025. 3. 30. 18:48ㆍWeb Development/JavaScript
2. 기초 문법과 데이터 타입
변수와 상수
JavaScript에서 데이터를 저장하기 위해 변수와 상수를 사용합니다. ES6(ECMAScript 2015)부터 var, let, const 세 가지 방식으로 선언이 가능합니다.
var, let, const의 차이점:
1. var:
- 함수 스코프(function scope)를 가짐
- 재선언 및 재할당 가능
- 호이스팅(hoisting)될 때 undefined로 초기화됨
var name = "홍길동";
var name = "김철수"; // 재선언 가능
name = "이영희"; // 재할당 가능
2. let:
- 블록 스코프(block scope)를 가짐
- 재선언 불가, 재할당 가능
- 호이스팅될 때 초기화되지 않음(TDZ, Temporal Dead Zone)
let age = 25;
// let age = 30; // 오류: 재선언 불가
age = 30; // 재할당 가능
3. const:
- 블록 스코프를 가짐
- 재선언 불가, 재할당 불가(상수)
- 선언과 동시에 초기화 필요
- 객체나 배열의 내부 값은 변경 가능
const PI = 3.14159;
// PI = 3.14; // 오류: 재할당 불가
// 객체의 내부 값은 변경 가능
const person = { name: "홍길동" };
person.name = "김철수"; // 가능
// person = { name: "이영희" }; // 오류: 재할당 불가
권장 사항:
- 기본적으로 const를 사용하여 변수 값이 변경되는 것을 방지
- 값을 변경해야 할 경우에만 let 사용
- var는 가급적 사용하지 않음(레거시 코드에서 주로 발견)
기본 데이터 타입
JavaScript에는 다음과 같은 기본(원시, primitive) 데이터 타입이 있습니다:
1. 숫자(Number):
- 정수와 실수를 모두 포함하는 하나의 타입
- 특수 값: Infinity, -Infinity, NaN(Not a Number)
const integer = 42;
const float = 3.14;
const negative = -10;
const scientific = 2.5e5; // 250000
2. 문자열(String):
- 텍스트 데이터를 표현
- 작은따옴표(''), 큰따옴표(""), 또는 백틱(``)으로 표현
const singleQuote = '안녕하세요';
const doubleQuote = "JavaScript";
const backtick = `템플릿 리터럴`;
3. 불리언(Boolean):
- true 또는 false 값만 가짐
- 조건문에서 주로 사용
const isActive = true;
const isLoggedIn = false;
4. null:
- 의도적으로 "값이 없음"을 나타내는 특수 값
const emptyValue = null;
5. undefined:
- 값이 할당되지 않은 상태를 나타냄
let notDefined;
console.log(notDefined); // undefined
6. Symbol (ES6에서 추가):
- 고유하고 변경 불가능한 값
- 주로 객체 속성의 식별자로 사용
const uniqueId = Symbol("id");
7. BigInt (ES2020에서 추가):
- 매우 큰 정수를 다룰 수 있는 타입
const bigNumber = 9007199254740991n;
8. typeof 연산자로 타입 확인:
console.log(typeof 42); // "number"
console.log(typeof "hello"); // "string"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object" (JavaScript의 유명한 버그)
console.log(typeof Symbol("id")); // "symbol"
console.log(typeof 42n); // "bigint"
'Web Development > JavaScript' 카테고리의 다른 글
함수의 정의와 호출 (0) | 2025.03.30 |
---|---|
반복문 (0) | 2025.03.30 |
제어문 (0) | 2025.03.30 |
연산자 (0) | 2025.03.30 |
JavaScript 소개 (0) | 2025.03.30 |