> 웹 프론트엔드 > JS 튜토리얼 > JavaScript의 유형 변환에 대한 전체 가이드: 암시적 강제와 명시적 강제 변환

JavaScript의 유형 변환에 대한 전체 가이드: 암시적 강제와 명시적 강제 변환

Barbara Streisand
풀어 주다: 2024-12-31 07:27:10
원래의
821명이 탐색했습니다.

A Complete Guide to Type Conversion in JavaScript: Implicit vs Explicit Coercion

*### JavaScript에서 유형 변환
*

JavaScript의 유형 변환은 한 데이터 유형에서 다른 데이터 유형으로 값을 변환하는 프로세스를 의미합니다. JavaScript는 동적으로 유형이 지정되는 언어입니다. 즉, 변수는 특정 데이터 유형에 바인딩되지 않으며 다양한 유형 간에 자동으로 또는 명시적으로 변환될 수 있습니다.

### 유형 변환 유형

JavaScript에는 두 가지 유형의 변환이 있습니다.

1. **암시적 유형 변환(유형 강제)

  1. 명시적 유형 변환**

### 1. **암시적 유형 변환(유형 강제)**

유형 강제라고도 알려진 암시적 유형 변환은 서로 다른 데이터 유형 간에 작업을 수행할 때 JavaScript에 의해 자동으로 발생합니다. JavaScript는 필요할 때 자동으로 한 유형을 다른 유형으로 변환합니다.

#### 암시적 유형 변환의 예:

  • 문자열 연결 문자열에 숫자를 추가하면 JavaScript는 자동으로 숫자를 문자열로 변환합니다.
  let result = '5' + 1;
  console.log(result);  // Output: '51' (String)
로그인 후 복사
로그인 후 복사

-** 부울 변환 **
부울이 아닌 값이 부울 컨텍스트에서 사용되면 JavaScript는 이를 true 또는 false로 변환합니다.

  let isValid = 'hello' == true;  // Implicit coercion
  console.log(isValid);  // Output: true
로그인 후 복사
로그인 후 복사
  • ***평등 비교* ** ==를 사용하여 다양한 유형을 비교할 때 JavaScript는 유형 강제를 수행하여 비교가 작동하도록 합니다.
  let result = '5' == 5;
  console.log(result);  // Output: true (due to implicit coercion)
로그인 후 복사
로그인 후 복사

** 2. 명시적 유형 변환**

유형 캐스팅이라고도 알려진 명시적 유형 변환은 내장된 메서드나 함수를 사용하여 한 유형을 다른 유형으로 수동으로 변환하는 것입니다. JavaScript는 유형 간 변환을 위한 여러 기능을 제공합니다.

명시적 유형 변환의 예:

- **문자열로 변환 **
String() 함수 또는 .toString() 메서드를 사용하여 값을 문자열로 변환할 수 있습니다.

  let num = 123;
  let str = String(num);  // Using String()
  console.log(str);  // Output: '123'

  let bool = true;
  let strBool = bool.toString();  // Using .toString()
  console.log(strBool);  // Output: 'true'
로그인 후 복사
로그인 후 복사

- **숫자로 변환 **
Number() 함수, 단항 연산자 또는 parseInt()/parseFloat()를 사용하여 값을 숫자로 변환할 수 있습니다.

  let str = '123';
  let num = Number(str);
  console.log(num);  // Output: 123

  let bool = true;
  let numBool = +bool;  // Unary plus operator
  console.log(numBool);  // Output: 1

  let floatStr = '12.34';
  let floatNum = parseFloat(floatStr);
  console.log(floatNum);  // Output: 12.34
로그인 후 복사
로그인 후 복사

- **부울로 변환 **
Boolean() 함수를 사용하여 값을 부울로 변환할 수 있습니다.

  let num = 0;
  let bool = Boolean(num);  // Converts to false
  console.log(bool);  // Output: false

  let str = 'hello';
  let boolStr = Boolean(str);  // Converts to true
  console.log(boolStr);  // Output: true
로그인 후 복사
로그인 후 복사

### 3. **상세형 강제행위**

JavaScript의 강제 동작은 혼란스러울 수 있으므로 다양한 작업에서 유형을 변환하는 방법을 살펴보겠습니다.

  • 덧셈( ) 연산자 피연산자 중 하나가 문자열이면 JavaScript는 다른 피연산자를 문자열로 변환하고 문자열 연결을 수행합니다.
  let result = '5' + 1;
  console.log(result);  // Output: '51' (String)
로그인 후 복사
로그인 후 복사
  • 뺄셈(-), 곱셈(*), 나눗셈(/) 연산자 JavaScript는 작업을 수행하기 전에 두 피연산자를 모두 숫자로 변환하려고 시도합니다.
  let isValid = 'hello' == true;  // Implicit coercion
  console.log(isValid);  // Output: true
로그인 후 복사
로그인 후 복사
  • 동등(==) 및 엄격한 평등(===) 연산자
    • == 유형 강제를 사용하여 동일한지 확인합니다.
    • === 유형 강제 없이 동등성을 확인합니다(엄격한 동등성).
  let result = '5' == 5;
  console.log(result);  // Output: true (due to implicit coercion)
로그인 후 복사
로그인 후 복사
  • 논리 연산자 &&, ||, ! 등의 논리 연산자 피연산자를 부울 값으로 강제 변환합니다.
  let num = 123;
  let str = String(num);  // Using String()
  console.log(str);  // Output: '123'

  let bool = true;
  let strBool = bool.toString();  // Using .toString()
  console.log(strBool);  // Output: 'true'
로그인 후 복사
로그인 후 복사

### 4. **허위 및 진실 값**

JavaScript에서 특정 값은 부울로 강제 변환될 때 거짓 또는 진실로 간주됩니다.

  • 잘못된 값: false, 0, ""(빈 문자열), null, 정의되지 않음, NaN.
  • 진실한 값: [], {}, 1, "hello" 등을 포함하여 거짓이 아닌 모든 값

예:

  let str = '123';
  let num = Number(str);
  console.log(num);  // Output: 123

  let bool = true;
  let numBool = +bool;  // Unary plus operator
  console.log(numBool);  // Output: 1

  let floatStr = '12.34';
  let floatNum = parseFloat(floatStr);
  console.log(floatNum);  // Output: 12.34
로그인 후 복사
로그인 후 복사

### 5. **Null 및 정의되지 않음 처리**

  • Null을 숫자로 null은 숫자로 강제 변환되면 0으로 변환됩니다.
  let num = 0;
  let bool = Boolean(num);  // Converts to false
  console.log(bool);  // Output: false

  let str = 'hello';
  let boolStr = Boolean(str);  // Converts to true
  console.log(boolStr);  // Output: true
로그인 후 복사
로그인 후 복사
  • 숫자로 정의되지 않음 정의되지 않음은 숫자로 강제 변환될 때 NaN으로 변환됩니다.
  let result = '5' + 1;
  console.log(result);  // Output: '51'
로그인 후 복사
  • Null에서 부울로 부울 컨텍스트에서는 null이 false로 강제 변환됩니다.
  let result = '5' - 1;
  console.log(result);  // Output: 4 (Number)

  let resultMul = '5' * 2;
  console.log(resultMul);  // Output: 10 (Number)
로그인 후 복사

### 6. **toString() 메서드**

모든 JavaScript 객체는 객체를 문자열로 변환하는 toString() 메서드에 액세스할 수 있습니다. 예를 들어 숫자에 대해 toString()을 호출하면 해당 숫자의 문자열 표현이 반환됩니다.

예:

  let result = '5' == 5;
  console.log(result);  // Output: true (coercion happens)

  let strictResult = '5' === 5;
  console.log(strictResult);  // Output: false (no coercion)
로그인 후 복사

안녕하세요. 저는 Abhay Singh Kathayat입니다!
저는 프론트엔드와 백엔드 기술 모두에 대한 전문 지식을 갖춘 풀스택 개발자입니다. 저는 효율적이고 확장 가능하며 사용자 친화적인 애플리케이션을 구축하기 위해 다양한 프로그래밍 언어와 프레임워크를 사용하여 작업합니다.
제 비즈니스 이메일(kaashshorts28@gmail.com)로 언제든지 연락주세요.

위 내용은 JavaScript의 유형 변환에 대한 전체 가이드: 암시적 강제와 명시적 강제 변환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿