sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
extra_vars4 | |
extra_vars5 | |
extra_vars6 |
보통 사칙연산을 할 경우 중간에 데이터가 본의아니게 문자열로 변환 될 경우가 있는데
이때 연산결과가 NaN 이 될 경우가 있다.
이를 위해서 데이터의 형을 유지해 줄 연산이 필요한데
그래서 단순 자연수 연산인 경우에는 parseInt() 를 이용했었다.
함수를 이용하는 방법은 지금까지 써온 일반적인 프로그래밍 습관인데
자바스크립트는 자동 형변환 기능을 이용하여 이를 쉽게 해결 할 수 있다.
(+this._getValue())
value가 무엇이 되었든 자동으로 수치형 데이터로 변환해준다.
다만 exception처리가 없음에 주의한다.
참고로 변환 실패시를 대비하여 다음과 같은 함수를 만들어 사용하곤 한다.
·미리보기 | 소스복사·
- /**
- * string을 int로 변환한다.
- *
- * @param {string} value 값
- * @param {number} def (변환 실패시의 default값)
- * @return {int} 변환 결과
- */
- parseInt: function(/* string */value, def) {
- if (value) {
- var rtnValue = parseInt(value);
- if (isNaN(rtnValue)) {
- return def;
- } else {
- return rtnValue;
- }
- } else {
- return def;
- }
- }
다음과 같이 Integer 여부를 검사하는 유틸도 유용하다.
·미리보기 | 소스복사·
- /**
- * int 여부를 검사한다.
- *
- * @param {number} value 값
- * @return {boolean} int 여부
- */
- isInt: function(/* number */value) {
- if (typeof value == "number") {
- return (value === Math.floor(value));
- } else {
- return false;
- }
- }
내친김에 나머지 데이터 타입도 검사해보자
·미리보기 | 소스복사·
- isNumber: function(v) {
- return typeof v == "number";
- }
- ,
- isString: function(v) {
- return typeof v == "string";
- }
- ,
- isUndefined: function(v) {
- return v === undefined;
- }
- ,
- isArray: function(v) {
- return v != null && v.constructor == Array;
- }
- ,
- isFunction: function(v) {
- return typeof v == "function";
- }
- ,
- isObject: function(v) {
- return v != null && typeof v == "object";
- }
한가지 parseInt() 함수의 또다른 특징이 있는데,
그것은 입력 데이터를 첫번째부터 순서대로 파싱한다는 것이다.
가령 input = "123", input="123a" 는 동일한 결과로 숫자 "123" 을 리턴한다.
하지만 input = "a123" 은 NaN 을 리턴한다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
50 | Iframe 내의 페이지 접근방법 | 황제낙엽 | 2009.11.12 | 59 |
49 | 외부 라이브러리 (.js) 의 바람직한 동적 로딩 (The best way to load external JavaScript) | 황제낙엽 | 2009.10.05 | 124 |
48 | 숫자값으로의 변환 형태 | 황제낙엽 | 2009.09.02 | 18 |
47 | Boolean 데이터 타입 | 황제낙엽 | 2009.09.02 | 16 |
46 | toString 변환 테이블 | 황제낙엽 | 2009.09.02 | 13 |
45 | URI 인코딩을 해야 하는 문자들 | 황제낙엽 | 2009.09.02 | 23 |
44 | 이미지 로드 코드 | 황제낙엽 | 2009.06.27 | 18 |
» | 자동 형변환 (문자열 -> 숫자) | 황제낙엽 | 2009.06.25 | 124 |
42 | 자바스크립트 쿠키 | 황제낙엽 | 2009.06.11 | 15 |
41 | 테이블 엘리먼트 생성 스크립트 | 황제낙엽 | 2009.04.07 | 14 |
40 | unshift() Method | 황제낙엽 | 2009.03.02 | 287 |
39 | 소숫점을 포함한 반올림 | 황제낙엽 | 2008.12.11 | 62 |
38 | int * float 연산 오류 | 황제낙엽 | 2008.12.11 | 95 |
37 | JavaScript Form Validation | 황제낙엽 | 2008.11.24 | 186 |
36 | setTimeout() / setInterval() 메소드 | 황제낙엽 | 2008.11.05 | 111 |
35 | String xml 파싱 | 황제낙엽 | 2008.11.03 | 23 |
34 | innerHTML | 황제낙엽 | 2008.11.03 | 93 |
33 | DOM과 innerHTML 방법에 대한 비교 분석 | 황제낙엽 | 2008.11.03 | 94 |
32 | 익명함수의 사용 | 황제낙엽 | 2008.10.14 | 20 |
31 | Javascript 내장객체 Array (배열) | 황제낙엽 | 2008.10.13 | 57 |