Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

늘보블로그

타입 변환 2 본문

스터디로그/javascript

타입 변환 2

개발자늘보 2020. 12. 17. 23:46

타입 변환


  • 타입 변환: 기존 원시 값을 사용해 다른 타입의 새로운 원시 값을 생성하는 것
    • 원시 값은 변경 물가능한 값immutable value이므로 변경 불가능함
var x = 10;
var str = x + "";
  • 위 코드 실행시 자바스크립트 엔진은 x + '' 표현식 평가를 위해 x 변수의 숫자 값을 바탕으로 새로운 문자열 값 '10'을 생성함. 이 값은 일회용이므로 이후 GC에 의해 메모리 해제됨
  • 명시적 타입 변환(타입 캐스팅): 개발자의 의도적인 값의 타입 변환
  • 암묵적 타입 변환(타입 강제 변환): 자바스크립트 엔진에 의한 값의 자동 타입 변환
  • 명시적 타입 변환은 개발자의 의도가 명확하고, 암묵적 타입 변환은 가독성이 더 좋을 수 있음
  • 코드 실행 결과를 예측하는 것이 중요

암묵적 타입 변환

  • 암묵적 타입 변환 발생 시 자바스크립트 엔진은 원시 타입 중 하나로 타입을 자동 변환
  • 종류
    • 문자열 타입으로의 변환: + 연산자의 피연산자 중 문자열이 있을 경우. (ex: 1 + '2')
    • 숫자 타입으로의 변환: 산술 연산자, 비교 연산자, + 단항 연산자(ex: +'1')
      • 산술 연산자에 의한 변환 시 빈 문자열, 빈 배열, null, false는 0 / true는 1 / 객체, 배열, undefined는 NaN으로 변환됨
    • 불리언 타입으로의 변환: 제어문 or 삼항 조건 연산자의 조건식. 조건식 평가 결과 불리언 값이 아닐 경우 자바스크립트 엔진은 Truthy(참으로 평가되는 값)/Falsy(거짓으로 평가되는 값) 값으로 구분하여 암묵적 타입 변환 수행
    • Falsy 값: false, undefined, null, 0, -0, NaN, 빈 문자열

명시적 타입 변환

  • 방법: 1) 표준 빌트인 생성자 함수(String, Number, Boolean)을 new 연산자 없이 호출 2) 빌트인 메서드 3) 암묵적 타입 변환 이용
  • 종류
    • 문자열 타입으로의 변환: String 생성자 함수, Object.prototype.toString, 문자열 연결 연산자(+)
    • 숫자 타입으로의 변환: Number 생성자 함수, parseInt&parseFloat(문자열만 가능), + 단항 산술 연산자, * 산술 연산자
    • 불리언 타입으로의 변환: Boolean 생성자 함수, 부정 논리 연산자의 두 번 사용(!!)

단축 평가

  • 단축 평가: 표현식을 평가하는 도중에 평가 결과가 확정된 경우 나머지 평가 과정을 생략하는 것. 반환 값은 확정된 평가 결과(피연산자) 값
  • 단축 평가 규칙
논리합 연산자(` `) 단축 평가 표현식 평가 결과
`true anything` true
`false anything` anything
논리곱 연산자(&&) 단축 평가 표현식 평가 결과
true && anything true
false && anything anything
  • if문을 단축 평가로 대체할 수 있음
  • 활용: 타입에러 방지
    • 객체를 가리키기를 기대하는 변수가 null or undefined인지 확인 후 프로퍼티 참조
    • 함수 매개변수에 기본값을 설정할 때

옵셔널 체이닝 연산자

  • 옵셔널 체이닝 연산자(?.)는 좌항의 피연산자가 null or undefined인 경우 undefined를 반환, 그렇지 않으면 우항의 프로퍼티를 참조함(ES11에서 도입)
  • 기존의 논리곱 연산자(&&)를 사용한 확인 방법을 대체 가능
  • 기존 방법과의 차이: Falsy 값(false, undefined, null, 0, -0, NaN, '')이라도 null or undefined가 아니면 우항의 프로퍼티를 참조함
  • 활용: 객체를 가리키기를 기대하는 변수가 null or undefined인지 확인 후 프로퍼티 참조

null 병합 연산자

  • null 병합 연산자(??)는 좌항의 피연산자가 null or undefined인 경우 우항의 피연산자를, 그렇지 않으면 좌항의 피연산자를 반환함(ES11에서 도입)
  • 기존의 논리합 연산자(||)를 사용한 확인 방법을 대체 가능
  • 기존 방법과의 차이: Falsy 값(false, undefined, null, 0, -0, NaN, '')이라도 null or undefined가 아니면 우항의 프로퍼티를 참조함
  • 활용: 함수 매개변수에 기본값을 설정할 때

'스터디로그 > javascript' 카테고리의 다른 글

객체리터럴 2  (0) 2020.12.21
객체리터럴 1  (0) 2020.12.18
타입 변환 1  (0) 2020.12.16
제어문  (0) 2020.12.15
연산자  (0) 2020.12.04