JS 스터디 29장

황상진·2022년 8월 2일
0

JavaScript

목록 보기
23/27

Math

Math 프로퍼티

Math.PI

  • 원주율 PI 값 반환
  • 3.142592653589793

Math 메서드

Math.abs

  • 전달된 숫자의 절대값을 반환
  • 0아니면 양수 반환
  • 빈 객체, 하나 이상의 요소를 가진 배열, 숫자가 아닌 문자열, undefined나 빈 매개변수를 받으면 NaN을 반환합니다.(an array with more than one member)
  • null, 빈 문자열이나 빈 배열을 제공하면 0을 반환합니다.
  • 배열, 문자열인 숫자여도 정상 abs 함수로 작동
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
Math.abs([2]);      // 	2
Math.abs(['2'])		//	2
Math.abs([1,2]);    // 	NaN

Math.round

  • 인수로 전달된 숫자의 소수점 이하를 반올림한 정수를 반환
  • Math.abs와 마찬가지로 빈 객체, 하나 이상의 요소를 가진 배열, 숫자가 아닌 문자열, undefined나 빈 매개변수를 받으면 NaN을 반환합니다.(an array with more than one member)
  • Math.abs와 마찬가지로 null, 빈 문자열이나 빈 배열을 제공하면 0을 반환합니다.
  • 배열, 문자열인 숫자여도 정상 round 함수로 작동
Math.round(1.4)		//	1
Math.round(1.6)		//	2
Math.round(-1.4)	//	-1
Math.round(-1.6)	//	-2
Math.round(1)		//	1
Math.round()		//	NaN
Math.round('')		//	0
Math.round([])		//	0

Math.ceil

  • 인수로 전달된 숫자의 소수점 이하를 올림한 정수를 반환

Math.floor

  • 인수로 전달된 숫자의 소수점 이하를 내림한 정수를 반환

Math.sqrt

  • 인수로 전달된 숫자의 제곱근을 반환
  • 만약 숫자가 음수이면 NaN를 반환
Math.sqrt(9); // 3
Math.sqrt(2); // 1.414213562373095

Math.sqrt(1);  // 1
Math.sqrt(0);  // 0
Math.sqrt(-1); // NaN

Math.random

  • 임의의 난수(랜덤 숫자)를 반환
  • 반환한 난수는 0에서 1미만의 실수다. -> 즉, 0은 포함될수 있지만 1은 포함되지 않는다.
Math.random()	//0에서 1미만의 랜덤 실수

/*
1에서 10범위의 랜덤 정수 취득
1) Math.random으로 0에서 1미만의 랜덤 실수를 구한 다음, 10을 곱해서 0에서 10 미만의 랜덤 실수를 구한다.
2) 0에서 10미만의 랜덤 실수에 1을 더해 1에서 10 범위의 랜덤 실수를 구한다.
3) Math.floor로 1에서 10 범위의 랜덤 실수의 소수점 이하를 떼어 버린 다음 정수를 반환
*/
const random = Math.floor((Math.random()*10)+1)
console.log(random)	//	1에서 10 범위의 정수

-두 값 사이의 난수 생성

function getRandomArbitrary(min, max) {
  return Math.random() * (max - min) + min;
}

-두 값 사이의 정수 난수 생성

function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min; //최댓값은 제외, 최솟값은 포함
}

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/random

Math.pow

  • 첫 번째 인수를 밑(base)로, 두 번째 인수를 지수(exponent)로 거듭제곱한 결과를 반환
  • 만약 밑(base) 값이 음수이고 지수(exponent)가 정수가 아닌 경우 결과는 NaN입니다.
console.log(Math.pow(7, 3));
// expected output: 343

console.log(Math.pow(4, 0.5));
// expected output: 2

console.log(Math.pow(7, -2));
// expected output: 0.02040816326530612
//                  (1/49)

console.log(Math.pow(-7, 0.5));
// expected output: NaN

Math.pow(7, 2);    // 49
Math.pow(7, 3);    // 343
Math.pow(2, 10);   // 1024
// 분수 지수
Math.pow(4, 0.5);  // 2 (4의 제곱근)
Math.pow(8, 1/3);  // 2 (8의 세제곱근)
Math.pow(2, 0.5);  // 1.4142135623730951 (2의 제곱근)
Math.pow(2, 1/3);  // 1.2599210498948732 (2의 세제곱근)
// 양의 지수
Math.pow(7, -2);   // 0.02040816326530612 (1/49)
Math.pow(8, -1/3); // 0.5
// 양의 밑
Math.pow(-7, 2);   // 49 (제곱의 결과값은 양수입니다.)
Math.pow(-7, 3);   // -343 (세제곱은 음수가 될 수 있습니다.)
Math.pow(-7, 0.5); // NaN (음수는 실제 제곱근을 가지지 않습니다.)
// "짝수"와 "홀수" 근이 서로 가깝게 놓여 있고
// 부동소수점 정밀도의 한계로 인해,
// 밑이 음수이며 지수가 분수라면 언제나 NaN을 반환합니다.
Math.pow(-7, 1/3); // NaN
  • Math.pow 메서드 대신 ES7 에서 도입된 지수 연산자를 사용하면 가독성이 좋다.
2**2	//4

Math.max

  • 전달 받은 인수중에서 가장 큰 수를 반환
  • 인수가 전달되지 않으면 -Infinity를 반환한다.
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

  • 전달 받은 인수 중에서 가장 작은 수를 반환
  • 인수가 전달되지 않으면 Infinity를 반환
profile
Web FrontEnd Developer

0개의 댓글