본문 바로가기
Daily Morning Study

[모던 자바스크립트 DeepDive] 8일차 - 동적 타이핑

by 만발한매화 2025. 7. 29.
본 문서는 "모던 자바스크림트 DeepDive"를 데일리로 학습하며 기억할 부분과 추가학습한 부분을 공유한다.

 

 

1. 동적 타이핑

  • 정적 타입언어 : 변수선언시 변수에 할당할 데이터 타입 선언 필요 (c, 자바)
    • 변수 타입 변경 불가 - 컴파일시 타입체크 -> 통과불가시 에러 / 실행 중단
  • 동적 타입언어 : 자바스트립트
    • 변수 선언이 아닌 할당에의해 타입이 결정(추론 - type inference)된다.
    • 동적 타이핑 : 재할당으로 동적으로 변할 수 있다.
  • 장점 : 자유할당으로 편하지만 트레이드오프가있다. ('은탄환'은 없다)
  • 단점
    • 값을 확인하기 전에는 타입 확신 불가
    • 유연성은 높지만 신뢰성(reliability)은 떨어진다.
  • 변수사용시 고려할 점
    • 변수는 꼭 필요한 경우만 제한적으로 사용
    • 변수 유효범위인 스코프는 최대한 좁게 만든다
    • 전역 변수는 되도록 사용하지 않는다.
    • 변수 < 상수 를 사용하자
    • 변수 이름은 목적과 의미를 파악할 수 있도록 네이밍 한다.

 

" 좋은 코드는 가독성이 좋은 코드이다."

 

 

 

2. 연산자

  • 피연산자 = 값 = 명사   / 연산자 = 값을 만들어낸다 = 동사
  • 산술 연산자 : 피연산자 대상으로 수학적 계산 수행
    • 계산 불가 : NaN 반환
    • 이항 산술 연산자 : 산순열산. 값변경과 같은 부수효과는 없다.
    • 단항 산술 연산자 : --, ++와 같이 피연산자의 값을 변경하는 부수효과가 있다.
      1. 위치가 중요하다!
        • x-- : 선할당 후 감소, 최초값이 할당되고 이후에 증가된다.
        • --x : 감소 후 할당, 최초값이 아닌 증가된 후에 할당된다.
    • 문자열 연결 연산자 : 문자열 연결을 진행한다.
      1. 단, 만약 1+ true와 같은 문의 경우 압묵적 타입변환(implicit coercion = 타입 강제 변환 type coercion)이 이루어진다.
  • 할당 연산자(assignment operator)
    • 할당문은 값으로 평가되는 표현식인 문으로서 할당된 값으로 평가된다. => 연쇄적으로 할당 가능!! (A=b=c)