parseInt() 함수는 문자열 인자를 파싱하여 특정 진수(수의 진법 체계에서 기준이 되는 값)의 정수를 반환합니다.
진수의 기본값이 10이 아닙니다.
parseInt 는 1. number→string 2. 10진수 추론을 위해 string 앞 글자가 0x나 0X인지 비교
주어진 숫자를 내림합니다.
주어진 숫자의 소수점을 제거하고 정수부분을 반환합니다.
trunc은 truncate의 약자로 자르다의 뜻을 가지고있습니다.
예시 코드 1
a1 = parseInt( "12.34" ); // 12
b1 = parseInt( "56.78" ); // 56
a2 = Math.floor( "12.34" ); // 12
b2 = Math.floor( "56.78" ); // 56
a2 = Math.trunc( "12.34" ); // 12
b2 = Math.trunc( "56.78" ); // 56
예시 코드 2
c1 = parseInt( "-12.34" ); // -12
d1 = parseInt( "-56.78" ); // -56
c2 = Math.floor( "-12.34" ); // -13
d2 = Math.floor( "-56.78" ); // -57
c3 = Math.trunc( "-12.34" ); // -12
d3 = Math.trunc( "-56.78" ); // -56
여기서 floor의 결과를 보면 -12, -56이 아닌 -13, -57이 나오는 걸 볼 수 있다.
예시 코드 3
e1 = parseInt( "12 34 56" ); // 12
e11 = parseInt( "12adf 34 56" ); // 12
e2 = Math.floor( "12 34 56" ); // NaN
e3 = Math.trunc( "12 34 56" ); // NaN
parseInt는 NaN이 아닌 결과를 알 수 있다.
만약 parseInt 함수가 지정한 radix에서의 숫자가 아닌 문자를 마주치는 경우 해당 문자 이전까지의 문자만 사용해 파싱하며 문제의 문자와 그 이후는 모두 무시 한다.
코딩테스트를 볼때 Math.trunc을 추천합니다.