[JS/TIL] 타입 변환과 단축 평가

김재범·2022년 11월 12일
0
post-thumbnail

타입 변환과 단축 평가

타입변환이란?

  • 개발자가 의도적으로 값의 타입을 변환하는 것을 명시적타입 변환 또는 타입 캐스팅이라 한다.

ex)

var x = 10 ;
// 명시적 타입 변환

//숫자를 문자열로 타입 캐스팅
var str = x.toString();
console.log(typeof str, str) ; // string, 10

// x변수의 값이 변경된 것은 아니다.
console.log(typeof x, x) // number, 10
  • 개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되기도 한다.
    이를 암묵적 타입변환 또는 타입강제변환이라 한다.
var x = 10 ;
var str = x + "" ;
console.log(typeof str, str) // string 10
  • 명시적, 암묵적 둘다 기존 원시 값을 직접 변경하는 것은 아님.
    (원시 값은 변경 불가능한 값임)

암묵적 타입변환

  • 문자열, 숫자, 불리언과 같은 원시 타입 중 하나로 자동변환

표준 빌트인 생성자 함수

  • 객체를 생성하기 위한 함수이며 new 연산자와 함께 호출한다.

명시적 타입 변환

  1. 문자열 타입으로 변환
    1) String()
    2) object.prototype.toString()
    3) 문자열 연결 연산자 사용
    ex) 1+ "" -> "1"

  2. 숫자 타입으로 변환
    1) Number()
    2) ParseInt(), ParseFloat() (문자열만 숫자타입으로 변경가능)
    3) + 단항 산술 연산자 사용
    ex) + "0" -> 0
    4) 산술 연산자 사용
    ex) "0"
    x 1 -> 0

  3. 불리언 타입으로 반환
    1) Boolean()
    2) ! 부정논리연산자 두번사용
    ex) !!"x" -> true

단축평가

  • 논리합(||), 논리곱(&&) 연산자는 언제나 2개의 피연산자 중 어느 한 쪽으로 평가된다.

논리곱 연산자는 좌항에서 우항으로 평가 진행된다
(논리 연산의 결과를 결정하는 두번째 피연산자를 반환한다)
ex) "cat" && "dog" -> "dog"

논리합 연산자는 논리연산의 결과를 결정한 첫번째 피연산자를 반환한다
ex) "cat" || "dog" -> "cat"

객체를 가리키기를 기대하는 변수가 null 또는 undefined가 아닌지 확인하고 프로퍼티를 참조할 때

  • 객체는 키와 value로 구성된 프로퍼티의 집합이다. 만약 객체를 가리키기를 기대하는 변수의 값이 객체가 아니라 null 또는 undefiend인 경우 참조하면 타입에러가 발생한다.
	var elem = null
    var value = elem.value  // 타입에러
    
    // 여기서 단축평가를 사용하면 에러발생안함
    var elem = null
    var value = elem && elem.value // null
    

함수 매개변수에 기본값을 설정할 때

  • 함수를 호출할 때 인수를 전달하지 않으면 매개변수에는 undefined가 할당
    이 때 단축평가를 사용해 매개변수의 기본 값을 설정하면 에러 방지
profile
지식을 쌓고 있습니다.

0개의 댓글