>  기사  >  웹 프론트엔드  >  자바스크립트에서 유형 강제를 수행하는 방법

자바스크립트에서 유형 강제를 수행하는 방법

青灯夜游
青灯夜游원래의
2021-05-18 14:28:503713검색

강제 변환 방법: 1. String(), Number() 또는 toString() 함수를 사용하여 문자열과 숫자 사이의 표시 유형을 변환합니다. 2. Boolean() 함수를 사용하여 값을 부울 값으로 변환합니다. . 사용 "+" 및 "-" 연산자는 문자열과 숫자 간의 암시적 유형 변환을 수행합니다.

자바스크립트에서 유형 강제를 수행하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

1. 문자열과 숫자 사이의 명시적 캐스트 유형 변환

문자열과 숫자 사이의 변환은 두 개의 내장 함수인 String(..)Number(..)을 통해 이루어집니다.
String(..) 및 Number(..) 외에도 문자열과 숫자 사이의 명시적 변환을 달성하는 다른 방법이 있습니다.

let a = 42;
let b = a.toString();
let c = "3.14";
let d = +c;
b; // "42"
d; // 3.14

a.toString()은 명시적이지만 암시적 변환을 포함합니다. toString()은 42와 같은 기본 값에서는 작동하지 않기 때문에 JavaScript 엔진은 자동으로 42에 대한 래퍼 객체를 생성한 다음 해당 객체에 대해 toString()을 호출합니다. 이 명시적 변환에는 암시적 변환이 포함되어 있습니다.

2. 부울 값으로의 명시적 변환

let a = "0";
let b = [];
let c = {};
let d = "";
let e = 0;
let f = null;
let g;
Boolean( a ); // true
Boolean( b ); // true
Boolean( c ); // true
Boolean( d ); // false
Boolean( e ); // false
Boolean( f ); // false
Boolean( g ); // false

부울(..)은 명시적이지만 일반적으로 사용되지는 않습니다. 불리언으로 명시적으로 형변환하는 가장 일반적인 방법은!!

let a = "0";
let b = [];
let c = {};
let d = "";
let e = 0;
let f = null;
let g;
!!a; // true
!!b; // true
!!c; // true
!!d; // false
!!e; // false
!!f; // false
!!g; // false

3입니다. 문자열과 숫자 사이의 암시적 형변환

(1)+operator

이것이 바로 숫자 추가에 사용되며, 또한 사용할 수 있습니다. 문자열 연결의 경우

+의 피연산자 중 하나가 문자열(또는 ToPrimitive 추상 연산을 호출하여 문자열을 얻은 경우)이면 문자열 연결을 수행하고, 그렇지 않으면 숫자 추가를 수행합니다. 배열의 valueOf() 작업은 간단한 기본 값을 가져올 수 없기 때문에 대신 toString()을 호출합니다. 따라서 아래 예의 두 배열은 "1,2"와 "3,4"가 됩니다. + 이들을 연결하고 "1,23,4"를 반환합니다.

let a = "42";
let b = "0";
a + b; // "420"

let c = 42;
let d = 0;
c + d; // 42

let x = [1,2];
let y = [3,4];
x + y; // "1,23,4"

문자열 변환에는 + 연산자를 사용할 수 있으며, + 숫자와 빈 문자열 ""을 사용하여 문자열

let a = 42;
let b = a + "";
b; // "42"

a + ""(암시적) 및 이전 문자열(a )(명시적)로 변환할 수 있습니다. ) 주의할 점은 미묘한 차이가 있습니다.

ToPrimitive 추상 연산 규칙에 따라 + ""는 a에서 valueOf() 메서드를 호출한 다음 ToString 추상 연산을 통해 반환 값을 문자열로 변환합니다. String(a)는 ToString()을 직접 호출합니다. 최종적으로 문자열을 반환하지만 a가 숫자가 아닌 객체라면 결과가 다를 수 있습니다

let a = {
    valueOf: function() { return 42; },
    toString: function() { return 4; }
};
a + "";         // "42"
String( a );    // "4"

(2) 문자열을 숫자로 캐스팅하는 경우

-숫자 빼기 연산자이므로 - 0은 숫자에 a를 캐스팅합니다. * 1 및 /1도 사용할 수 있습니다. 이 두 연산자는 숫자에만 적용되기 때문입니다. 그러나 이러한 사용은 덜 일반적입니다

let a = [3];
let b = [1];
a - b; // 2

[권장 학습: javascript 고급 튜토리얼]

위 내용은 자바스크립트에서 유형 강제를 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.