쇼핑몰의  주문을 받는 한 페이지를 만들고 있습니다.  방문자가  수량을

입력을 하고   상품을 입력을 합니다.  

 

상품의 종류는 : 옷

상품의 개수는 : 1개

가격은  : 1000원 

 

상품의 종류는 : 신발

상품의 개수는 : 1개

가격은 : 1000원

 

이런 데이터를 입력을 받는  필드를  만들었다고  가정을 합니다.  위의

데이터를 입력을 하고  결과를 전송을 합니다.

 

합계금액은  2000원이 나와야 합니다.  합니다  하지만 주문 내역에는

10001000 이라는 내역이 전송이 되어 왔습니다.

 

왜  그럴까요?  그러고 어떤 경우에는  결과 값에 NaN 이라는 알수 없는 문자

만 적혀 있습니다.   왜 그런지를 몰라서 상당히 당황한 경우가 있습니다.

 

당현히  자바스크립트를  처음 배우는 단계에서 많이 격는 문제 입니다.

 

첫번째 문제에 대해서 알아보도록 하겠습니다.    변수에 할당된  데이터 값이  숫자형으로  인식을 하지 않고  문자열로 인식을 하게 되면 이런 문제가 발생을 하는 경우가 있습니다.  

 

여러분도  아시겠지만   자바스크립트에서는  문자열을  " + " 하게 되면   해당 문자를  합쳐 주게 됩니다.    "안녕 " + "하세요"  = "안녕하세요" 식으로  결과 물이 나옵니다.    필드 값을 문자열로  인식을 하게 되면서  "1000" + "1000" = "10001000"  으로  결과 물이 나오게 됩니다.

 

다음으로  NaN 이라는 문자는 왜 표시가 될까요?   계산하는 식에서 숫자가 나와 하는되  다른 문자 입력이 되거나 해당 필드에 갑이 없어서 변수가 초기화 되어 있지 않고 아무런  데이터가 없는 경우에 계산을 할여구 할때  발생을 하는 경우가 입니다.

 

이런 문제를  해결을 하기 위해서는  parseint( ) 와 parseFloat() 함수를 이용을 하시면 됩니다.   

 

parseint("1000" ) + parseint("1000" ) = 2000  이라는 결과를 얻을수가 있습니다. 

 

parseint( ): 정수로 변환을 하여 주고 parseFloat() : 실수를 변환을 할때  사용을 하시면 됩니다.

 

그리고 NaN 는  검증을 할수 있는 코드를  추가를  하여 주시면 됩니다.

 

if(isNaN("확인변수")

{

// NaN 이 나올때 필요한 조치를 취하는 코드를  작성을 하여 주시면 됩니다.

}

 

 

 

 

+ Recent posts