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

SungWoo·2024년 10월 20일

자바스크립트 공부

목록 보기
5/42
post-thumbnail

자바스크립트의 모든 값에는 타입이 존재하며 값의 타입은 개발자의 의도에 따라 다른 타입으로 변환할 수 있다.

여기서 개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환이라 하고, 개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되는 것을 암묵적 타입 변환이라 한다.

1. 타입 변환

1) 명시적 타입 변환

표준 빌트인 생성자 함수(String, Number, Boolean)를 사용해 명시적으로 타입을 변환할 수 있다.

ex.

let num = 42;
let str = String(num); // "42"
let bool = Boolean(0); // false
let int = Number("42"); // 42

2) 암묵적 타입 변환

문자열과 숫자를 +로 더하면, 숫자가 문자열로 변환된다.

ex.
let result = '5' + 3 // "53"

-, *, / 연산자는 문자열을 숫자로 변환하려 시도한다.

ex.

1 - '1' // 0
1 * '10' // 10
1 / 'one' // NaN

2. 단축 평가(Short-circuit Evaluation)

1) || (논리합 OR)

왼쪽 피연산자가 true로 평가되면, 전체 표현식은 더 이상 평가되지 않고 true로 결정된다. 이때 왼쪽 값이 그대로 반환된다.

ex.

let result = true || "Hello"; // true
let result2 = false || "Hello"; // "Hello"

2) && (논리곱 AND)

왼쪽 피연산자가 false로 평가되면, 전체 표현식은 더 이상 평가되지 않고 false로 결정된다. 이때 왼쪽 값이 그대로 반환된다.

ex.

let result = false && "Hello"; // false
let result2 = true && "Hello"; // "Hello"

3. 옵셔널 체이닝(?.)

객체의 깊은 속성을 접근할 때 안전하게 값을 가져올 수 있는 방법.

  • 중간의 객체가 null 또는 undefined일 때 에러를 발생시키지 않고 undefined를 반환한다.
  • API 호출 결과로 받은 데이터에서 안전하게 값을 추출할 때 사용할 수 있다.

ex.

let user = { profile: { name: "Sean" } };
console.log(user.profile?.name); // "Sean"
console.log(user.address?.street); // undefined (에러 발생하지 않음)

4. Null 병합 연산자(??)

null또는 undefined일 경우 기본값을 설정할 수 있도록 해주는 연산자.

  • ||와 유사하지만, false, 0, '' 같은 값들은 null로 간주하지 않는다.
  • 즉, null이나 undefined에만 반응하기 때문에 0, false, '' 등을 유효한 값으로 인식할 수 있다.

ex.

let userInput = null;
let defaultText = userInput ?? "Default Value"; // "Default Value"

let anotherInput = "";
let anotherText = anotherInput ?? "Another Default"; // ""
profile
어제보다 더 나은

0개의 댓글