자바스크립트 함수 [eval, parseFloat, parseInt]

▣ 자바스크립트 함수 [eval, parseFloat, parseInt]


■ 이번 글에서는 몇 가지의 함수에 대해서 알아볼 텐데요. 먼저 eval 함수는 [+, -, *, /] 등의 수식으로 되어 있는 문자열을 실수로 바꿔서 출력하는 함수이구요. parseFloat 함수는 문자열을 부동소수점형으로 바꿔서 출력하고, parseInt 는 문자열을 정수로 바꿔서 출력하는 함수입니다. parseInt와 parseFloat가 문자열을 정상적으로 숫자로 출력하지 못할 때는 NaN(Not a Number)를 반환하게 됩니다. 


  기본 개념을 생각하면서 예제를 하나씩 만들어보겠습니다. 먼저 eval 함수의 형식은 [eval(수식 문자열)] 입니다. 



■ aaa, bbb 변수를 각각 선언하고, aaa에는 수식을 문자열("") 형식으로 할당했구요. bbb는 일반 수식을 할당했습니다. [1]과 [3]은 바로 aaa와 bbb 변수를 출력하도록 해봤구요  [2]는 eval (aaa) 함수를 이용해서 출력하도록 해봤습니다. 대충 결과가 예상되시죠?






■ 그냥 바로 aaa를 출력하면 문자열이기 때문에 수식이 그대로 출력되고, eval 함수를 이용하면 문자열 형식의 수식을 계산해서 출력되는 걸 알 수 있습니다. 




 다음은 parseInt, parFloat 함수를 이용해서 예제를 만들어보겠습니다. 이 두 함수의 형식은 [parseInt(문자열), parseFloat(문자열)] 입니다. 그리고 앞에서 개념을 대충 알아봤었는데요. 빠진 내용이 하나 있어서 정리하고 예제를 만들어 볼게요. parseInt 함수는 (문자열) 에 실수값이 있으면 소수점 뒷부분은 잘리고 정수값만 반환합니다. 


■ 내용을 살펴보면....

aaa는 일반 문자열 "15.5"와 20의 합 인데요. 문자열과 숫자의 수식은 모두 문자열로 계산됩니다. 즉, 15.5가 먼저 출력되고, 바로 뒤이어서 20이 출력될 겁니다. (15.520)

bbb는 parseInt 함수는 소수점은 잘라내고 정수만 출력되기 때문에 "15"가 출력되겠죠? 

ccc는 소수점이 잘리고 [15 + 20] 수식이 되기 때문에 35가 출력될 겁니다. 

ddd는  15.5 +20이 돼서 35.5가 출력될 것입니다. 





■ 설명한 내용과 출력 결과를 잘 비교해보시면 쉽게 이해가 될 겁니다. 이해가 안 되시는 분들은 직접 입력해가면서 테스트해보세요. 직접 해보면 이해가 더 빠를 거에요,^^ 수고하셨습니다.