>  기사  >  웹 프론트엔드  >  js 데이터 유형 변환 요약 Notes_javascript 기술

js 데이터 유형 변환 요약 Notes_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:11:441030검색

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 등인 경우도 있으므로 판단이 필요하다는 점을 참고하세요.

예외 처리 예:

코드 복사 코드는 다음과 같습니다.

/ /텍스트 상자의 명령문을 실행하고 eval을 사용하여 명령문이 실행된 후 값을 반환합니다.
function doFunction(str) {

var result = str.replace(new RegExp(""" , "gm"), "");
//명령문이 유효한지 확인
var reg = /s*[A-Za-z] s*('.')s*$/; 🎜>if (result.match( reg)) // 또는 reg.test(result); 메소드를 사용하여
try {
result = eval(result)
결과를 ​​반환합니다. }
catch (Error) {
alert("죄송합니다. 구문을 변환할 수 없습니다. 문법과 철자법에 주의하세요.")
return
}
else Alert("제발 데이터형 변환문의 형식과 구문을 확인하세요!");
}


그 외 데이터 변환 방법에 대한 테스트 예시는 다음과 같습니다.

참고: 테스트 중 환경은 vs2008, ie8... 이며, 이는 페이지에 입력된 문장입니다. 위 표의 왼쪽 열에 있는 변환 예시문을 js에서 eval을 사용하여 처리합니다.
例  句 结  果
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

사용시 기호 등의 수정이 필요할 수 있습니다.

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