시스템아 미안해

Chapter1. Values, Types, and Operators 본문

책/Eloquent Javascript

Chapter1. Values, Types, and Operators

if else 2025. 9. 23. 10:11

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는 값 없음. 상황에 따라 구분.
  • 자동 타입 변환은 위험하니 ===를 사용.
  • 논리 연산자는 단축 평가로 기본값을 지정하는 패턴에서 자주 쓰임.