js 데이터 형식 변환 요약 노트

javascript 은 다음 과 같은 데이터 형식의 변환 방법 이 있 습 니 다.하 나 는 디지털 xxx*1.0 으로 문자열 xxx+"2 로 변환 하고 한 값 에서 다른 유형의 값 을 추출 하여 변환 작업 을 완성 합 니 다.문자열 의 정수 추출:parseInt();예:parseInt("123 zhang")의 결 과 는 123 입 니 다.문자열 의 부동 소수점 추출:parseFloat();예:parseFloat("0.55zhang")의 결 과 는 0.55 입 니 다.문자열 로 표 시 된 자바 script 코드:eval()을 실행 합 니 다.예:zhang=eval("1+1")의 결과 zhang=2.문자열 로 변환:toString();예:zhang=eval("1+1")의 결과 zhang=2 3 은 전체 값 을 한 가지 유형 에서 다른 데이터 형식(기본 데이터 형식 변환 이 라 고 함)으로 바 꾸 고 기본 데이터 형식 을 바 꾸 는 세 가지 방법 입 니 다.문자 형:String()으로 바 꾸 는 것 입 니 다.예:String(678)의 결 과 는"678"입 니 다.수치 형 으로 변환:Number();예:Number("678")의 결 과 는 678 입 니 다.불 형:Boolean()으로 바 뀌 었 습 니 다.예:Boolean("aaa")의 결 과 는 true 로 이러한 방법 을 사용 할 때 필요 하 다 면 매개 변수 와 방법의 집행 을 판단 하고 이상 처리 하 는 것 입 니 다.참고 문서 에서 볼 수 있 듯 이 다음 과 같은 집행 효율 에 대한 정 리 는 IE 에서 첫 번 째 속도 가 가장 빠 르 고 두 번 째,세 번 째 가 가장 나 쁘 지만 차 이 는 10 만 번 에 불과 하고 수백 밀리초 차이 가 날 뿐이다.FF 에서 첫 번 째 와 두 번 째 는 기본적으로 비슷 하고 세 번 째 가 가장 느리다.속도 차 이 는 기본적으로 무시 할 수 있다.차이 가 작 아서 요.그러나 코드 의 간결 성에 서 첫 번 째 뚜렷 한 쓰기 가 간편 하고 읽 기 쉬 우 며 두 번 째 대상 이 toString 방법 이 없어 서 잘못 보고 하 는 문제 가 발생 하지 않 습 니 다.게다가 그 는 시종 가장 빠르다.따라서 개인 습관 은 첫 번 째 방식 으로 데이터 형식의 전환 을 완성 하지만 예 를 들 어'123456 abcd'로 그 중의 숫자 를 추출 해 야 한다.그러면 당연히 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);
return result;
}
catch (Error) {
alert(" ! 。 。");
return;
}
else alert(" !");
}
데이터 변환 방법 에 관 한 다른 테스트 예 는 다음 과 같다.
예.  문장.
맺다.  열매.
parseInt('1234')
1234
parseInt('1234.00')
1234
parseInt('1234abc')
1234
parseInt('abc1234')
정의 되 지 않 음(변환 실패)
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
주:테스트 할 때의 환경 은 vs 2008,ie8............................................................................
사용 시 기호 수정 등 이 필요 할 수도 있 습 니 다.

좋은 웹페이지 즐겨찾기