영벨롭 개발 일지

[JavaScript]Math 객체 다루기: min, max, random, round, ceil, floor 본문

Programming Language/JavaScript

[JavaScript]Math 객체 다루기: min, max, random, round, ceil, floor

영벨롭 2022. 3. 20. 19:38

[ Math 객체 ]

 

 Math 객체는 수학에서 자주 사용하는 상수와 함수들을 미리 구현해놓은 자바스크립트 표준 내장 객체입니다. 

 

 Math 객체는 생성자가 따로 존재하지 않아 instance를 따로 생성하지 않고 바로 사용할 수 있습니다. 

 

 자주 사용하는 메서드는 다음과 같습니다. 

  • Math.min()
  • Math.max()
  • Math.random()
  • Math.round()
  • Math.ceil()
  • Math.floor()

 

 

[ 최솟값 & 최댓값 ]

 

Math.min()과 Math.max() 는 인수로 받은 수 중 가장 작은 값과 가장 큰 값을 반환합니다. 

 

만약 인수가 주어지지 않으면 각각 Infinity, -Infinity를 반환합니다.

 

또한 만약 인수중에 비교할 수 없는 값이 주어지면 NaN을 반환합니다. 

 

const minN = Math.min(1, 2, 3, 4, 5); //1
const maxN = Math.max(1, 2, 3, 4, 5); //5

 

 

 

[ 난수 생성 ]

 

 Math.random() * number 은 0부터 number 사이의 난수를 반환합니다. 이때 난수는 float 타입입니다. 

 

const num1 = Math.random(); //0~1 사이 난수
const num2 = Math.random() * 10; //0~10 사이 난수

 

 

 

[ float 타입 -> int 타입 변환 ]

 

float 타입에서 int 타입으로 변환하는 메서드는 세 가지가 있습니다. 

 

 

(1) Math.round(실수)

 

 Math.round() 메서드는 실수를 반올림/반내림 해줍니다. 

const num1 = Math.round(0.1); //0
const num2 = Math.round(0.8); //1

 

 

(2) Math.ceil(실수)

 

 Math.ceil() 메서드는 실수를 올림 해줍니다. 

const num1 = Math.ceil(1.1); //2
const num2 = Math.ceil(1.8); //2

 

 

(3) Math.floor(실수)

 

 Math.floor() 메서드는 실수를 내림 해줍니다. 

const num1 = Math.floor(1.1); //1
const num2 = Math.floor(1.8); //1

 

 

 

[ 예제 ]

 

요일을 나타내는 array 에서 랜덤하게 원소를 뽑는 코드를 작성해봅시다!

 

const days = [ "mon", "tue", "wed", "thu", "fri", "sat", "sun" ];

//index를 난수로 생성: 0~7 사이 정수 난수 
const idx = Math.floor(Math.random() * days.length);

const day = days[idx];
반응형