IT/javascript

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

반응형

스터디 자료: https://poiemaweb.com/js-type-coercion

 

9. 타입 변환과 단축 평가

 

명시적 타입 변환(타입 캐스팅)

  • 개발자에 의해 의도적으로 값의 타입을 변환
var x = 10; 

// 명시적 타입 변환 
var str = x.toString(); // 숫자를 문자열로 타입 캐스팅한다.
console.log(typeof str); // string

 

암묵적 타입 변환(타입 강제 변환)

  • 동적 타입 언어인 자바스크립트는 개발자의 의도와는 상관없이 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되기도 한다.
var x = 10; 

// 암묵적 타입 변환 
// 숫자 타입 x의 값을 바탕으로 새로운 문자열 타입의 값을 생성해 표현식을 평가한다. 
var str = x + ''; 

console.log(typeof str, str); // string 10 

// 변수 x의 값이 변경된 것은 아니다. 
console.log(x); // 10

 

암묵적 타입 변환

자바스크립트 엔진은 표현식을 평가할 때 문맥, 즉 컨텍스트(Context)에 고려하여 암묵적 타입 변환을 실행한다.

명시적 타입 변환

  • 문자열 타입으로 변환
    1. 문자열 연결 연산자를 이용하는 방법
    2. Object.prototype.toString 메소드를 사용하는 방법
    3. String 생성자 함수를 new 연산자 없이 호출하는 방법
  • 숫자 타입으로 변환
    1. Number 생성자 함수를 new 연산자 없이 호출하는 방법
    2. parseInt, parseFloat 함수를 사용하는 방법(문자열만 변환 가능)
    3. 단항 연결 연산자를 이용하는 방법
    4. 산술 연산자를 이용하는 방법
  • 불리언 타입으로 변환
    1. Boolean 생성자 함수를 new 연산자 없이 호출하는 방법
    2. ! 부정 논리 연산자를 두번 사용하는 방법

단축 평가

논리곱 연산자 &&와 논리합 연산자 ||는 이와 같이 논리 평가를 결정한 피연산자의 평가 결과를 그대로 반환한다. 이를 단축 평가(Short-Circuit evaluation)라 부른다. 단축 평가는 아래의 규칙을 따른다.

사용

객체가 null인지 확인하고 프로퍼티를 참조할 때

var elem = null; 

console.log(elem.value); // TypeError: Cannot read property 'value' of null 
console.log(elem && elem.value); // null

 

함수의 인수(argument)를 초기화할 때

// 단축 평가를 사용한 매개변수의 기본값 설정 
function getStringLength(str) { 
    str = str || ''; 
    return str.length; 
} 

getStringLength(); // 0 
getStringLength('hi'); // 2 

// ES6의 매개변수의 기본값 설정 
function getStringLength(str = '') { 
    return str.length; 
}

getStringLength(); // 0 
getStringLength('hi'); // 2

 

 

반응형

'IT > javascript' 카테고리의 다른 글

자바스크립트의 자료형 8가지  (0) 2020.10.28