변수, 데이터 타입, 연산자
자바스크립트는 동적 타입 언어로, 변수, 다양한 데이터 타입, 그리고 여러 종류의 연산자를 제공합니다.
이 절에서는 이러한 기본적인 요소들에 대해 자세히 알아보겠습니다.
변수 선언
자바스크립트에서는 세 가지 방법으로 변수를 선언할 수 있습니다. var
, let
, const
1. var
- 함수 스코프 또는 전역 스코프
- 호이스팅(hoisting)됨
- 재선언 및 재할당 가능
2. let (ES6+)
- 블록 스코프
- 호이스팅되지만 TDZ(Temporal Dead Zone) 적용
- 재선언 불가, 재할당 가능
3. const (ES6+)
- 블록 스코프
- 호이스팅되지만 TDZ 적용
- 재선언 및 재할당 불가
- 객체나 배열의 내용은 변경 가능
데이터 타입
자바스크립트는 7가지 기본 데이터 타입을 가지고 있습니다.
1. Number : 정수와 실수를 모두 표현
2. String : 텍스트 데이터
3. Boolean : true 또는 false
4. Null : 의도적인 빈 값
5. Undefined : 값이 할당되지 않은 상태
6. Symbol (ES6+) : 유일한 식별자
7. Object : 키-값 쌍의 집합
동적 타이핑
자바스크립트는 동적 타입 언어입니다.
즉, 변수의 타입이 런타임에 결정되고 변경될 수 있습니다.
이러한 동적 타이핑은 유연성을 제공하지만, 예기치 않은 타입 관련 오류를 발생시킬 수 있습니다.
이를 방지하기 위해 다음과 같은 방법을 사용할 수 있습니다.
- 엄격한 코딩 규칙 적용
- TypeScript와 같은 정적 타입 검사 도구 사용
- 런타임 타입 검사 수행
연산자
자바스크립트는 다양한 연산자를 제공합니다.
1. 산술 연산자 : +
, -
, *
, /
, %
, **
(거듭제곱)
2. 할당 연산자 : =
, +=
, -=
, *=
, /=
, %=
3. 비교 연산자: ==
, ===
, !=
, !==
, <
, >
, <=
, >=
4. 논리 연산자 : &&
(AND), ||
(OR), !
(NOT)
5. 삼항 연산자 : 조건 ? 표현식1 : 표현식2
연산자 우선순위
연산자는 우선순위에 따라 실행됩니다.
괄호 ()
, 멤버 접근 .
, 함수 호출 ()
등이 가장 높은 우선순위를 가지며, 할당 연산자 =
가 가장 낮은 우선순위를 가집니다.
타입 변환
자바스크립트에서는 두 가지 방식의 타입 변환이 있습니다.
1. 명시적 변환 : 개발자가 의도적으로 타입을 변환
2. 암묵적 변환 : 자바스크립트 엔진이 자동으로 타입을 변환
암묵적 변환은 편리할 수 있지만, 예기치 않은 결과를 초래할 수 있으므로 주의가 필요합니다.
자바스크립트의 변수, 데이터 타입, 연산자는 언어의 기본적인 구성 요소입니다. 이들을 올바르게 이해하고 사용하는 것은 효과적인 자바스크립트 프로그래밍의 기초가 됩니다.
변수 선언 시 let
과 const
를 주로 사용하고, var
는 레거시 코드를 위해 알아두는 것이 좋습니다. 블록 스코프를 제공하는 let
과 const
는 더 예측 가능한 코드를 작성하는 데 도움이 됩니다.
데이터 타입을 다룰 때는 동적 타이핑의 특성을 항상 염두에 두어야 합니다. 특히 큰 규모의 프로젝트에서는 TypeScript와 같은 정적 타입 시스템을 도입하는 것을 고려해볼 수 있습니다.
연산자 사용 시 ==
와 ===
의 차이를 명확히 이해하고, 가능한 ===
를 사용하여 타입까지 비교하는 것이 안전합니다. 또한, 연산자 우선순위를 잘 이해하고 필요한 경우 괄호를 사용하여 의도를 명확히 표현하는 것이 좋습니다.
마지막으로, 타입 변환 시 가능한 명시적 변환을 사용하여 코드의 의도를 명확히 하고, 암묵적 변환으로 인한 예기치 않은 결과를 방지하는 것이 중요합니다.