코딩테스트/프로그래머스 기초 트레이닝

[Javascript] 종종 쓰는 Math 객체 메소드 - abs() ceil() floor() round() max() min() (그리고 pow() sqrt()까지)

dev_swH 2023. 5. 17. 22:18

(1) abs()

Math.abs() 메소드는 절댓값을 반환하는 함수다.

매개변수로 주어진 숫자가 양수나 0이면 그대로 반환하고

음수면 - 부호를 떼고 양수를 반환한다.

사용 방식 :
Math.abs(숫자)

 

유의할 점:

1. '-1' 과 같이 문자열 자료 형태로 숫자를 넣어도, 숫자를 인식하고 제대로 절댓값을 반환해준다.

2. 빈 객체, 하나 이상의 요소를 가진 배열, 숫자가 아닌 문자열, undefined나 빈 매개변수를 받으면 NaN을 반환한다.

3. null, 빈 문자열, 빈 배열을 제공하면 0을 반환한다.

 

공식 문서에 모든 예시가 잘 나와있다.

Math.abs('-1'); // 1
Math.abs(-2); // 2

Math.abs(null); // 0
Math.abs(''); // 0
Math.abs([]); // 0
Math.abs([2]); // 2

Math.abs([1,2]); // NaN
Math.abs({}); // NaN
Math.abs('string'); // NaN
Math.abs(); // NaN

 

(2) ceil()

Math.ceil() 메소드는 올림 계산을 해주는 함수다.

사용 방식 :
Math.ceil(숫자)

 

예시를 보면 금방 알 수 있다.

Math.ceil(7.004); // 8
Math.ceil(-7.004); // -7

 

(3) floor()

Math.floor() 메소드는 반대로 내림 계산을 해주는 함수다.

사용 방식 :
Math.floor(숫자)

 

이전 포스트에서 썼듯이 Math.trunc()와 계산 방식이 다른데,

쉽게 말해서 floor()는 내림이고 trunc()는 버림이다.

 

이번에도 예시를 보면 바로 알 수 있다.

console.log(Math.floor(5.95));
// Expected output: 5

console.log(Math.floor(-5.05));
// Expected output: -6

 

(4) round()

마지막으로 Math.round() 메소드는 반올림 계산을 해주는 함수다.

사용 방식 :
Math.round(숫자)

 

예시로 설명을 끝내겠다.

console.log(Math.round(5.95), Math.round(5.5), Math.round(5.05));
// Expected output: 6 6 5

console.log(Math.round(-5.05), Math.round(-5.5), Math.round(-5.95));
// Expected output: -5 -5 -6

 

(5) max(), min()

Math.max() 메소드는 입력 받은 0개 이상의 숫자 중에서, 가장 큰 숫자를 반환한다.

(0개라고 하면 뭐야? 하게 되는데 매개변수가 없어도 반환하는 값이 있어서 그렇다.

일반적으로는 무조건 1개 이상은 들어간다고 보면 된다.)

사용 방식 :
Math.max(값0, 값1, ... , 값N)

 

매개변수 없이 Math.max()이라고 작성할 경우 -Infinity를 반환하며,

입력받은 값 중 하나라도 숫자로 변환하지 못할 경우 NaN을 반환한다.

아래는 예시

console.log(Math.max(1, 3, 2));
// Expected output: 3

console.log(Math.max(-1, -3, -2));
// Expected output: -1

const array1 = [1, 3, 2];
console.log(Math.max(...array1));
// Expected output: 3

 

Math.min() 메소드는 반대로 가장 작은 숫자를 반환한다.

max()와 완전히 똑같은 방식이므로 중복되는 설명은 생략.

매개변수 없이 Math.min()이라고 작성할 경우 Infinity를 반환한다.

 

(6) pow(), sqrt()

이 친구들은 사실 프로젝트하면서 쓰는 일은 없었는데,

거듭제곱이 코딩테스트에 나와서 공식 문서를 훑어보는 김에 같이 정리했다.

 

Math.pow()는 거듭제곱한 값을 반환해주는 함수다.

사용 방식 :
Math.pow(밑값, 제곱할 지수)

 

예시를 보면 바로 알 수 있다.

console.log(Math.pow(7, 3));
// Expected output: 343
7 * 7 * 7 = 343

 

그러나 거듭제곱은 ** 연산자로 구할 수 있어서 굳이 메소드를 쓰지 않아도 된다.

console.log(3 ** 4);
// Expected output: 81

console.log(2 ** 3 ** 2);
// Expected output: 512
// 거듭제곱 연산자는 우측 결합성을 가지므로 a ** b ** c 는 a ** (b ** c) 와 같다.

console.log((2 ** 3) ** 2);
// Expected output: 64

 

Math.sqrt()는 매개변수로 주어진 숫자의 제곱근을 구하는 메소드다.

만약 매개변수로 음수가 들어오면 NaN을 반환한다.

사용 방식 :
Math.sqrt(숫자)

 

역시나 예시를 보면 감이 온다.

Math.sqrt(9); // 3