본문 바로가기
국비 교육/프론트엔드

[자바스크립트] 함수 - 4 (수학관련 함수)

by 육츠 2024. 3. 9.

Math

수학과 관련된 값이나 함수를 제공한다.

 

- Math 에 선언된 상수

console.log(`원주율 : ${Math.PI}`);
console.log(`오일러 상수 : ${Math.E}`);

 

- Falsy & Truly

Falsy Truly
Falsy 값으로 판정하는 데이터 Truly 값으로 판정하는 데이터
0, null, undefined, '  '   [], 비어있지 않은 문자열, 0을 제외한 모든 숫자

 

- abs

절대값 반환

console.log(Math.abs(-1));    // 1
console.log(Math.abs('-2'));  // 2
console.log(Math.abs(null));  // 0
console.log(Math.abs(''));    // 0
console.log(Math.abs(' '));   // 0
console.log(Math.abs('Korea'));    //NaN
console.log(Math.abs(undefined));  //NaN
console.log(Math.abs());           //NaN
console.log(Math.abs([]));         // 0
console.log(Math.abs([1,-1]));     //NaN

 

- ceil(n)

(올림) 주어진 숫자보다 크고 가까운 정수

console.log(Math.ceil(0.95));       // 1
console.log(Math.ceil(5.00001));    // 6
console.log(Math.ceil(5));          // 5
console.log(Math.ceil(-0.95));      // -0
console.log(Math.ceil(-5.00001));   // -5

 

- floor(n)

(내림) 주어진 숫자보다 작고 가까운 정수

console.log(Math.floor(0.95));       // 0
console.log(Math.floor(5.00001));    // 5
console.log(Math.floor(5));          // 5
console.log(Math.floor(-0.95));      // -1
console.log(Math.floor(-5.00001));   // -6

 

- trunc(n)

절삭(버림)

console.log(Math.trunc(0.95));       // 0
console.log(Math.trunc(5.00001));    // 5
console.log(Math.trunc(5));          // 5
console.log(Math.trunc(-0.95));      // -0
console.log(Math.trunc(-5.00001));   // -5

 

- round(n)

반올림

console.log(Math.round(0.95));       // 1
console.log(Math.round(5.00001));    // 5
console.log(Math.round(5));          // 5
console.log(Math.round(-0.95));      // -1
console.log(Math.round(-5.00001));   // -5
console.log(Math.round(-5.6));       // -6
console.log(Math.round(-5.5));       // -5 : - 0.5는 반올림 하지 않음
console.log(Math.round(-5.51));      // -6 : 0.51은 반올림 함
console.log(Math.round(5.5));        // 6 : 0.5는 반올림 함

 

* NaN, Infinity

console.log(0/0);       // NaN
console.log(10/0);      //Infinity(양의 무한대)
console.log(10/-0);     // -Infinity(음의 무한대)

 

- min(n), max(n)

최소값, 최대값

console.log('-------------- max()');
console.log(Math.max(-1,5,3));      // 5
console.log(Math.max(-1,-5,-3));    // -1
console.log(Math.max());            // Infinity
console.log(Math.max(-0.95));      // -0.95

console.log('-------------- min()');
console.log(Math.min(-1,5,3));      // -1
console.log(Math.min(-1,-5,-3));    // -5
console.log(Math.min());            // Infinity
console.log(Math.min(-0.95));      // -0.95

 

[Q] ary = [1,5,3] 배열에 저장된 데이터의 최대값, 최소값을 구하려면?

let ary = [1,5,3];
console.log(Math.max(...ary)); // 5
console.log(Math.min(...ary)); // 1

 

- pow(n1,n2)

거듭제곱을 구하는 연산자

console.log(Math.pow(5, 3));      // 125
console.log(5 ** 3)
console.log(Math.pow(4, 0.5));    // 2
console.log(4 ** 0.5);              
console.log(Math.pow(4, -2));     // 0.0625

console.log(Math.pow(-5, 3));     // -125
// console.log(-5 ** 3);          // syntax 오류(연산자 우선순위 때문)
console.log((-5) ** 3);

console.log(Math.pow(-4, -2));    // 0.0625
console.log(Math.pow(-4, -0.5));  // NaN

 

- random()

난수 발생 (0 이상)

for(let i = 0; i < 5; ++i)
    console.log(Math.random());

 

[Q] 0 ~ 50까지 (50포함 정수) 5 출력하세요

for(let i = 0; i < 5; ++i){
    console.log(Math.floor(Math.random() * 51)) // 곱해지는 범주만큼 개수가 만들어진다.
}

 

 

Number

숫자를 다루는 클래스

- 문자열 -> 숫자 변환

1) Number

let data = "2.5";
let temp = Number(data);

console.log(temp);

data = "2.5a7";
temp = Number(data); // NaN (변환불가) 

console.log(temp);

 

2)parse__

console.log(parseInt(data));    // 2 (변환가능한 부분까지 변환)
console.log(parseFloat(data));  // 2.5

 

실수 64bit까지 다룬다.

console.log(`Float형 최댓값 : ${Number.MAX_VALUE}`)
console.log(`Float형 최솟값 : ${Number.MIN_VALUE}`)