시스템아 미안해
Chapter1. Values, Types, and Operators 본문
JavaScript의 모든 것은 결국 **값(value)**에서 시작한다. 값은 타입(type)을 가지고, 타입에 따라 다르게 동작한다. 이 챕터에서는 JavaScript의 기본 값과 연산 방식을 정리한다.
1. 숫자 (Number)
- JavaScript 숫자는 64비트 부동소수점. 정수/실수 구분 없음.
- 정수는 정확히 표현되지만, 실수는 근사값이라 정밀도 손실이 생길 수 있다.
0.1 + 0.2 === 0.3 // false
- 특별한 숫자 값:
- Infinity, -Infinity
- NaN (Not a Number) → 잘못된 수학 연산의 결과
2. 산술 연산자 (Arithmetic)
- + - * / % 사용
- 연산자 우선순위 존재: * / > + -
- 괄호로 우선순위 명시하는 습관이 안전하다.
100 + 4 * 11 // 144
(100 + 4) * 11 // 1144
3. 문자열 (String)
- 작은따옴표, 큰따옴표, 백틱 모두 사용 가능
- 이스케이프 문자: \n, \\ 등
- 문자열 연결: +
"con" + "cat" // "concat"
- 템플릿 리터럴: ${} 안에서 표현식 사용
`half of 100 is ${100 / 2}` // "half of 100 is 50"
4. 불리언 (Boolean)
- 값은 true / false 두 가지
- 비교 연산자로 생성
3 > 2 // true
"Z" > "A" // true
- 연산자
- && (and)
- || (or)
- ! (not)
- 삼항연산자 ? :
5. 빈 값 (Empty Values)
- null과 undefined → “값 없음”을 표현
- 둘은 의미상 약간 다르지만, 대부분 비슷하게 쓰인다.
6. 자동 타입 변환 (Type Coercion)
- JavaScript는 필요할 때 자동으로 타입을 바꾼다.
- 문제는 예측 불가능한 결과가 많다는 것.
8 * null // 0
"5" - 1 // 4
"5" + 1 // "51"
false == 0 // true
- 권장: 항상 ===와 !== 사용 (암묵적 변환 방지)
7. 단축 평가 (Short-Circuiting)
- || → 왼쪽이 truthy면 그대로 반환, 아니면 오른쪽 반환
- && → 왼쪽이 truthy면 오른쪽 반환, 아니면 왼쪽 반환
null || "user" // "user"
"Agnes" || "user" // "Agnes"
- 기본값 설정 시 자주 사용된다.
핵심 요약
- 숫자는 64비트 부동소수점. 정밀도 손실 유의.
- 문자열은 유니코드 기반, +로 연결하거나 템플릿 리터럴 사용.
- Boolean은 비교/논리 연산자와 함께 조건 제어의 기본.
- null/undefined는 값 없음. 상황에 따라 구분.
- 자동 타입 변환은 위험하니 ===를 사용.
- 논리 연산자는 단축 평가로 기본값을 지정하는 패턴에서 자주 쓰임.
'책 > Eloquent Javascript' 카테고리의 다른 글
| Chapter 6. The secret life of objects (0) | 2025.10.01 |
|---|---|
| Chapter 5. 고차 함수(Higher-Order Functions) (0) | 2025.09.30 |
| Chapter 4. Data Structure: Objects And Arrays (0) | 2025.09.29 |
| Chapter 3. Functions (0) | 2025.09.25 |
| Chapter2. Program Structure (0) | 2025.09.24 |