Post

데이터 형 변환

JAVASCRIPT

해당 포스팅에서는 데이터 형 변환에 대해 다룹니다.

JAVASCRIPT

  • 자바스크립트 장단점
  • 데이터 타입
  • 데이터 형 변환 ✔️
  • 불변성을 유지하려면 어떻게..
  • 프로토타입
  • var, let, const 차이
  • 호이스팅(Hoisting)
  • es6 문법 특징과 차이
  • this
  • 제이쿼리 메서드 중 attr(), prop() 차이
  • 화살표 함수와 일반 함수 차이
  • 스코프(scope)
  • 객체 지향
  • 클로저(closure)
  • 타입스크립트
  • 프로세스
  • 스레드, 싱글 스레드
  • 콜백 함수 / 재귀 함수 차이
  • 콜백 지옥, 콜백 지옥을 해결하는 방법
  • promise / 콜백 지옥
  • ajax
  • 함수 선언식/ 표현식 차이
  • 이벤트 버블링 / 이벤트 캡처 예시
  • 이벤트 위임 (Event Delegation)
  • 렉시컬 환경
  • 프로퍼티
  • stack이 코드 실행할 때 queue에 미뤄두는 것
  • 얕은 복사 / 깊은 복사
  • 동기 / 비동기

데이터 형 변환

데이터 형 변환의 개념

자바스크립트에서 데이터 형 변환은 값의 타입을 다른 타입으로 변환하는 과정을 말합니다. 자바스크립트는 동적 타입 언어이기 때문에 데이터 형 변환이 자주 발생합니다. 형 변환은 매우 유연하지만, 예기치 않은 결과를 초래할 수 있습니다. 명시적 형 변환을 사용하면 코드의 의도를 명확히 할 수 있으며, 예기치 않은 오류를 방지하는 데 도움이 됩니다. 암시적 형 변환이 발생할 수 있는 상황을 이해하고, 필요한 경우 명시적으로 형 변환을 수행하는 것이 좋습니다. 데이터 형 변환은 크게 명시적 형 변환과 암시적 형 변환으로 나눌 수 있습니다.

명시적 형 변환 (Explicit Type Conversion)

명시적 형 변환은 프로그래머가 의도적으로 데이터 타입을 변환하는 것을 의미합니다. 이는 일반적으로 표준 자바스크립트 함수나 메서드를 사용하여 이루어집니다.

숫자 타입으로 변환 (To Number)

Number() 함수
1
2
3
4
5
6
Number("123");    // 123
Number("123abc"); // NaN
Number(true);     // 1
Number(false);    // 0
Number(null);     // 0
Number(undefined); // NaN
parseInt() 함수

문자열을 정수로 변환합니다. 문자열의 시작 부분이 숫자가 아닌 경우 NaN을 반환합니다.

1
2
3
parseInt("123");    // 123
parseInt("123.45"); // 123
parseInt("abc123"); // NaN
parseFloat() 함수

문자열을 부동 소수점 숫자로 변환합니다. 문자열의 시작 부분이 숫자가 아닌 경우 NaN을 반환합니다.

1
2
3
4
5
6
Number("123");    // 123
Number("123abc"); // NaN
Number(true);     // 1
Number(false);    // 0
Number(null);     // 0
Number(undefined); // NaN

암시적 형 변환 (Implicit Type Conversion)

암시적 형 변환은 자바스크립트 엔진이 자동으로 데이터 타입을 변환하는 것을 의미합니다. 이는 연산자나 표현식에 의해 자동으로 발생합니다.

문자열 결합

숫자와 문자열을 더할 때, 숫자는 자동으로 문자열로 변환됩니다.

1
2
let result = "The answer is " + 42; // "The answer is 42"
let result2 = 42 + " is the answer"; // "42 is the answer"
숫자 연산

문자열이 숫자 연산에 사용될 때, 자바스크립트는 문자열을 숫자로 변환합니다.

1
2
3
let result = "42" - 0;  // 42
let result2 = "42" * 1; // 42
let result3 = "42" / 2; // 21
불리언 컨텍스트

자바스크립트에서 조건문은 truthyfalsy 값을 사용합니다

1
2
3
4
5
6
7
if (123) { // 123은 truthy 값입니다.
    console.log("This is true");
}

if ("") { // 빈 문자열은 falsy 값입니다.
    console.log("This is false");
}
객체 변환

객체가 원시 타입으로 변환될 때는 toString() 이나 valueOf() 메서드가 호출됩니다.

1
2
3
4
5
6
7
8
9
10
11
let obj = {
    toString() {
        return "object as string";
    },
    valueOf() {
        return 42;
    }
};

let result = obj + ""; // "object as string"
let result2 = obj * 2; // 84
비교 연산

비교 연산자는 다양한 암시적 형 변환을 수행합니다.

1
2
3
123 == "123"; // true (숫자와 문자열이 동일한 값으로 변환됨)
0 == false;   // true (0은 falsy 값, false와 동일)
null == undefined; // true (두 값은 느슨한 비교에서 동일)
This post is licensed under CC BY 4.0 by the author.