풀이 코드
1.
두 수의 합
const solution = (num1, num2) => num1 + num2;
JavaScript
복사
2.
두 수의 차
const solution = (num1, num2) => num1 - num2;
JavaScript
복사
3.
두 수의 곱
const solution = (num1, num2) => num1 * num2;
JavaScript
복사
4.
몫 구하기
// 피드백 전 코드
const solution = (num1, num2) => parseInt(num1 / num2);
// 피드백 후 코드
const solution = (num1, num2) => Math.floor(num1 / num2);
JavaScript
복사
느낀 점
화살표 함수
문제를 풀면서 화살표 함수라는 표현식을 사용해 보았습니다.
조금 간결하게 알고 싶다면 첫 번째 글을, 더 자세하게 알고 싶다면 두 번째 글을 참고해 주세요.
parseInt 대신 Math.floor
4번 몫 구하기 문제를 풀고 나서, 다른 사람의 풀이를 확인해 보았는데 저럼 parseInt() 를 사용하여 문제를 푼 분의 코드에 다음과 같은 댓글이 달려 있었습니다.
“큰 수에서는 type number에 string이 들어가는 경우도 있기 때문에, 소수점 이하를 절삭하여 정수 값을 return하려는 목적으로 Math.floor 대신에 parseInt를 사용해서는 안 됩니다.”
parseInt()와 Math.floor()의 차이가 궁금해졌고, MDN 공식문서를 통해서 궁금증을 해소할 수 있었습니다.
•
parserInt(): 문자열 인자를 파싱하여 특정 진수의 정수를 반환하는 메서드입니다.
•
Math.floor(): 주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환합니다.
“만약 parseInt 함수가 지정한 radix에서의 숫자가 아닌 문자를 마주치는 경우 해당 문자 이전까지의 문자만 사용해 파싱하며 문제의 문자와 그 이후는 모두 무시합니다. parseInt는 정수 값을 반환하기 위해 소수점 이하 값을 잘라냅니다. 선행 및 후행 공백은 허용됩니다.” - parseInt() MDN 공식문서 일부.
예를 들어 숫자가 6.022e23 과 같이 매우 큰 수일 경우 예기치 못한 결과값이 나올 수 있기 때문에 parseInt()를 사용할 때에는 주의를 기울여야 한다는 것을 알 수 있었습니다.