Javascript

[모자딥]Math

index.ys 2023. 11. 28. 22:42

예제 29.01

  • Math는 생성자 함수가 아님 new 키워드로 객체를 생성하지 않고 정적프로퍼티와 정적메서드만 제공함
  • Math.PI는 원주율 PI값을 반환하는 메서드
Math.PI; // -> 3.141592653589793
console.log(Math.PI)

예제 29.02

  • Math.abs 메서드는 인자로 전달된 숫자의 절대값을 반환함 0또는 양수
  • 인자로 전달된 값은 암묵적 타입 변환이 일어남 string -> number
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.03

  • Math.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

예제 29.04

  • Math.ceil은 인자로 전달된 숫자의 소수점 이하를 올림한 정수를 반환함
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

예제 29.05

  • Math.floor은 인자로 전달된 숫자의 소수점 이하를 내림함
Math.floor(1.9);  // -> 1
Math.floor(9.1);  // -> 9
Math.floor(-1.9); // -> -2
Math.floor(-9.1); // -> -10
Math.floor(1);    // -> 1
Math.floor();     // -> NaN

console.log(Math.floor(2.9)) // -> 2

예제 29.06

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

console.log(Math.sqrt(144))//12

예제 29.07

  • Math.random 메서드는 임의의 난수를 반환함 0~1미만의 실수 0은 포함되지만 1은 포함되지 않음
Math.random(); // 0에서 1 미만의 랜덤 실수(0.8208720231391746)

/*
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((Math.random() * 10)); // 1에서 10 범위의 정수
console.log(Math.floor((Math.random() * 10))); // 1에서 10 범위의 정수

예제 29.08

  • Math.pow는 첫번쨰 인자를 밑, 두번째 인자를 지수로 거듭제곱한 결과를 반홤함
Math.pow(2, 8);  // -> 256 2의8제곱
Math.pow(2, -1); // -> 0.5 2의-1제곱
Math.pow(2);     // -> NaN
console.log(Math.pow(3, 3)) //3의 3제곱 27

예제 29.09

  • 지수 연산자 **
2 ** 2 ** 2; // -> 16
Math.pow(Math.pow(2, 2), 2); // -> 16

console.log(3 ** 3) //같음
console.log(Math.pow(3, 3))  //같음

예제 29.10

  • Math.max메서드는 인자로 전달된 값중 가장 큰 수를 반환
  • 인자가 전달되지 않으면 -Infinity를 반환
Math.max(1); // -> 1
Math.max(1, 2); // -> 2
Math.max(1, 2, 3); // -> 3
Math.max(); // -> -Infinity
console.log(Math.max(1, 43, 5432, 542, 241)) //5432

예제 29.11

  • 배열을 전달받아 배열의 요소중에서 최대값을 구하려면 function.prototype.aplye 메서드, 스프레드 문법 사용
// 배열 요소 중에서 최대값 취득
Math.max.apply(null, [1, 2, 3]); // -> 3

// ES6 스프레드 문법
Math.max(...[1, 2, 3]); // -> 3

예제 29.12

  • Math.min메서드는 전달된 인자중 가장 작은 값을 반환함
  • 인자가 전달되지 않으면 Infinity 반환
Math.min(1); // -> 1
Math.min(1, 2); // -> 1
Math.min(1, 2, 3); // -> 1
Math.min(); // -> Infinity

예제 29.13

  • 배열의 최소값 구하기 function.prototype.applye , 스프레드 문법 사용
// 배열 요소 중에서 최소값 취득
Math.min.apply(null, [1, 2, 3]); // -> 1

// ES6 스프레드 문법
Math.min(...[1, 2, 3]); // -> 1