모자딥 29장 Math

릿·2023년 2월 6일
0

29장 Math

  • Math는 생성자 함수가 아니므로 정적 프로퍼티와 정적 메서드만 제공함

29.1 Math 프로퍼티


29.1.1 Math.PI

  • 원주율 PI값을 반환함

29.2 Math 메서드


29.2.1 Math.abs

  • Math.abs메서드는 인수로 전달된 숫자의 절대값 반환
  • 절대값은 반드시 0 또는 양수여야 함
Math.abs(-1); // -> 1
Math.abs('-1'); // -> 1
Math.abs(''); // -> 0
Math.abs([]); // -> 0
Math.abs(null); // -> 0
Math.abs(undefined); // -> NaN
Math.abs({}); // -> NaN
Math.abs('string'); // -> NaN
Math.abs(); // -> NaN

29.2.2 Math.round

  • Math.round메서드는 인수로 전달된 숫자의 소수점 이하를 반올림한 정수를 반환함
Math.round(1.4); // -> 1
Math.round(1.6); // -> 2
Math.round(-1.4); // -> -1
Math.round(-1.6); // -> -2

29.2.3 Math.ceil

  • Math.ceil메서드는 인수로 전달된 숫자의 소수점 이하를 올림한 정수를 반환함
Math.ceil(1.4); // -> 2
Math.ceil(1.6); // -> 2
Math.ceil(-1.4); // -> -1
Math.ceil(-1.6); // -> -1

29.2.4 Math.floor

  • Math.floor메서드는 인수로 전달된 숫자의 소수점 이하를 내림한 정수를 반환함
Math.floor(1.9); // -> 1
Math.floor(9.1); // -> 9
Math.floor(-1.9); // -> -2
Math.floor(-9.1); // -> -10

29.2.5 Math.sqrt

  • Math.sqrt메서드는 인수로 전달된 숫자의 제곱근을 반환함
Math.sqrt(9); // -> 3
Math.sqrt(-9); // -> NaN
Math.sqrt(2); // -> 1.414213...

29.2.6 Math.random

  • Math.random메서드는 임의의 랜덤한 숫자를 반환함
  • 0 ~ 1 미만의 실수를 반환함
Math.random(); // 0에서 1 미만의 랜덤 실수
// 1에서 10범위의 정수 출력
console.log(Math.floor((Math.random() * 10) + 1));

29.2.7 Math.pow

  • Math.pow메서드는 첫번째 인수를 밑으로, 두번째 인수를 지수로 거듭제곱한 결과를 반환함
Math.pow(2, 8); // -> 256
Math.pow(2, -1); // -> 0.5
  • ES7에서 도입된 지수연산자를 사용하면 가독성이 더 좋음
2 ** 2 ** 2; // -> 16
Math.pow(Math.pow(2, 2), 2); // -> 16

29.2.8 Math.max

  • Math.max메서드는 전달받은 인수 중에 가장 큰 수를 반환함
  • 인수가 없으면 -Infinity를 반환함
Math.max(1); // -> 1
Math.max(1, 2, 3); -> 3
  • 배열에서 최대값을 구하려면 Function.prototype.apply메서드 또는 스프레드 문법을 사용해야 함
Math.max.apply(null, [1, 2, 3]); // -> 3
Math.max(...[1, 2, 3]); // -> 3

29.2.9 Math.min

  • Math.min메서드는 전달받은 인수 중에 가장 작은 수를 반환함
  • 인수가 없으면 Infinity를 반환함
Math.min(1); // -> 1
Math.min(1, 2, 3); // -> 1
  • 배열에서 최소값을 구하려면 Function.prototype.apply메서드 또는 스프레드 문법을 사용해야 함
Math.min.apply(null, [1, 2, 3]); // -> 1
Math.min(...[1, 2, 3]); // -> 1
profile
항상 재밌는 뭔가를 찾고 있는 프론트엔드 개발자

0개의 댓글