JavaScript에는 다음과 같은 데이터 유형 변환 방법이 있습니다.
하나, 숫자 xxx*1.0으로 변환
문자열 xxx ""로 변환
둘, 하나의 값 추출 다른 유형의 값과 변환이 수행됩니다.
. 문자열에서 정수 추출:parseInt();
예:parseInt("123zhang")의 결과는 123입니다.
. ;
예:parseFloat("0.55zhang")의 결과는 0.55
입니다. 문자열로 표시되는 자바스크립트 코드를 실행합니다: eval()
예: zhang=eval(" 1 1")은 zhang =2
입니다. 문자열로 변환: toString();
예: zhang=eval("1 1") zhang=2
3의 결과는 변환됩니다. 한 유형의 전체 값을 다른 데이터 유형으로 변환합니다(기본 데이터 유형 변환이라고 함),
기본 데이터 유형 변환의 세 가지 방법:
. 문자 유형으로 변환: String(); 678) Number("678")의 결과는 "678"
입니다. 숫자 유형으로 변환: Number() 예: Number("678")의 결과는 678
입니다. Boolean(); 예: Boolean("aaa ")이 true
이러한 메서드를 사용할 때 필요한 경우 매개변수 및 메서드 실행에 대한 예외를 판단하고 처리해 보세요.
참고문서에서 볼 수 있듯이 실행 효율성을 요약하면 다음과 같습니다.
IE에서는 첫 번째 방법이 가장 빠르고, 두 번째 방법이 두 번째, 세 번째 방법이 가장 안 좋지만 차이점은 딱 하나입니다. 100,000번, 그 차이는 수십 수백 밀리초에 불과합니다.
FF에서는 첫 번째와 두 번째 유형이 기본적으로 동일하며, 세 번째 유형이 가장 느립니다.
속도 차이는 기본적으로 무시할 수 있습니다. 그 차이가 매우 작기 때문입니다.
그러나 코드의 단순성으로 볼 때 첫 번째 방법은 작성하기 쉽고 읽기 쉽습니다.
그리고 두 번째 방법에는 객체에 toString 메서드가 없기 때문에 오류가 없습니다. 게다가 그는 언제나 가장 빨랐다.
그래서 저는 데이터형 변환을 완료하기 위해 첫 번째 방법을 사용하는 것에 익숙합니다.
그러나 그 안에 있는 숫자를 추출하기 위해 "123456abcd"가 필요한 경우에는 당연히parsetInt,parseFloat와 같은 함수를 사용해야 합니다.
하지만 변환 결과가 NaN 등인 경우도 있으므로 판단이 필요하다는 점을 참고하세요.
예외 처리 예:
例 句 | 结 果 |
---|---|
parseInt('1234') | 1234 |
parseInt('1234.00') | 1234 |
parseInt('1234abc') | 1234 |
parseInt('abc1234') | undefined(转换失败) |
parseFloat('1234.123') | 1234.123 |
parseFloat('1234.123a') | 1234.123 |
parseFloat('a1234.123') | NaN |
Number('1234.123') | 1234.123 |
Number('1234.123aa') | NaN |
String(eval('12 10')) | 22 |
Boolean('0'),Boolean('567'),Boolean(567) | true |
Boolean(null),Boolean(false),Boolean(0),Boolean(''),Boolean() | false |
this.toString() | [object] |
(typeof(this)).toString() | object |
eval('12 34') | 46 |
eval('12 34') '' | 46 |
eval('12 34')*1.0 | 46 |
typeof(eval('12 34')*1.0) | number |
typeof(eval('12 34') '') | string |
사용시 기호 등의 수정이 필요할 수 있습니다.