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
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
106 | HTTP Content-Type 정리 | 황제낙엽 | 2013.09.30 | 507 |
105 | DOM과 innerHTML 방법에 대한 비교 분석 | 황제낙엽 | 2008.11.03 | 507 |
104 | 상속과 Super 로의 접근 | 황제낙엽 | 2012.09.18 | 506 |
103 | 라이노 (Rhino) 관련 링크 모음 | 황제낙엽 | 2008.07.21 | 506 |
102 |
CORS(Cross-Origin Resource Sharing) - 1
![]() | 황제낙엽 | 2017.03.07 | 504 |
101 | Ajax (XMLHttpRequest) 샘플 | 황제낙엽 | 2017.08.01 | 502 |
100 | |= 비트 OR 대입 연산자 (복합대입연산자) | 황제낙엽 | 2017.03.15 | 502 |
99 | Boolean 데이터 타입 | 황제낙엽 | 2009.09.02 | 501 |
98 | XMLHttpRequest.setRequestHeader | 황제낙엽 | 2013.09.30 | 500 |
97 |
YUI Compressor in Java
![]() | 황제낙엽 | 2011.07.04 | 500 |
96 | setTimeout() / setInterval() 메소드 | 황제낙엽 | 2008.11.05 | 499 |
95 | YUI Logger(Yahoo) 를 동적으로 로드하는 북마크릿 | 황제낙엽 | 2010.10.03 | 498 |
94 | 숫자값으로의 변환 형태 | 황제낙엽 | 2009.09.02 | 496 |
93 | innerHTML | 황제낙엽 | 2008.11.03 | 495 |
92 | Javascript delete | 황제낙엽 | 2012.06.11 | 494 |
91 | Alert 에서의 개행처리 | 황제낙엽 | 2012.03.09 | 492 |
90 | 테이블 엘리먼트 생성 스크립트 | 황제낙엽 | 2009.04.07 | 490 |
89 | User Agent 관련 Reference URL | 황제낙엽 | 2011.02.22 | 489 |
88 |
XMLHttpRequest 제대로 활용하기
![]() | 황제낙엽 | 2017.08.01 | 485 |
87 |
자바스크립트 타입 비교 테이블 + 테이블 작성 스크립트
[1] ![]() | 황제낙엽 | 2017.06.23 | 483 |