기초 문법과 데이터 타입

2025. 3. 30. 18:48Web 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