home강의 홈으로
Section 6. 주요 빌트인 객체
Lesson 5. Math 객체

수학에 관련된 기능을 가진 빌트인 객체

👉 MDN 문서 보기

  • 정적 프로터피와 메서드만 제공
  • Number 타입만 지원 - BigInt 사용 불가

I. 주요 정적 프로퍼티

PI - 원주율

console.log( Math.PI );

E - 자연로그의 밑

console.log( Math.E );



II. 주요 정적 메서드

1. abs - 절대값(0 이상) 반환

console.log( Math.abs(123), Math.abs(-123), ); // 0 반환 console.log( Math.abs(0), Math.abs(''), Math.abs(null), Math.abs([]), ); // NaN 반환 console.log( Math.abs('abc'), Math.abs(undefined), Math.abs({a: 1}), Math.abs([1, 2, 3]), Math.abs() );


const isEqual = (a, b) => { return Math.abs(a - b) < Number.EPSILON; } console.log( isEqual(0.1 + 0.2, 0.3) );

2. ceil 올림, round 반올림, floor 내림, trunc 정수부만

for (const num of [1.4, 1.6, -1.4, -1.6]) { console.log( num + ' : ', Math.ceil(num), Math.round(num), Math.floor(num), Math.trunc(num), ); } // NaN 반환 console.log( Math.ceil(), Math.round(), Math.floor(), Math.trunc() );

3. pow - ~로 거듭제곱

console.log( Math.pow(4, 2), // 4 ** 2 Math.pow(4, 1), // 4 ** 1 Math.pow(4, 0), // 4 ** 0 Math.pow(4, -1) // 4 ** -1 );
  • ** 연산자로 더 간결히 표현 가능
// NaN 반환 console.log( Math.pow(4) );
  • 두 숫자 인자 필요


4. sqrt - 제곱근

console.log( Math.sqrt(25), // 25 ** 0.5 Math.sqrt(9), Math.sqrt(2), Math.sqrt(1), Math.sqrt(0) ); // NaN 반환 console.log( Math.sqrt(-25), Math.sqrt() );

5. max, min - 인자들 중 최대값과 최소값

console.log( Math.max(8, 5, 9, 6, 3, 1, 4, 2, 7), Math.min(8, 5, 9, 6, 3, 1, 4, 2, 7) );

6. random - 0~1 사이의 무작위 값

for (let i = 0; i < 10; i++) { console.log(Math.random()); }

0 ~ 9 사이의 정수 무작위로 만들기

for (let i = 0; i < 10; i++) { console.log( Math.floor(Math.random() * 10) ); }

⚠️ 안전한 (균일하고 예측불가한) 난수 생성은 아님!



7. sin, cos, tan, asin, acos, atan

  • 사인, 코사인, 탄젠트, 아크사인, 아크코사인, 아크탄젠트
console.log( // 1(또는 근사값) 반환 Math.sin(Math.PI / 2), Math.cos(Math.PI * 2), Math.tan(Math.PI / 180 * 45) ); console.log( // Math.PI / 2 반환 Math.asin(1), Math.acos(0), Math.atan(Infinity) );

🤔얄코에게 질문하기질문은 반.드.시 이리로 보내주세요! ( 강의사이트 질문기능 ✖ )

강의에서 이해가 안 되거나 실습상 문제가 있는 부분,
설명이 잘못되었거나 미흡한 부분을 메일로 알려주세요!

답변드린 뒤 필요할 경우 본 페이지에
관련 내용을 추가/수정하도록 하겠습니다.

이메일 주소
yalco@yalco.kr
메일 제목 (반드시 아래 제목을 붙여넣어주세요!)
[질문] 제대로 파는 자바스크립트 (무료 파트) 6-5

🛑질문 전 필독!!

  • 구글링을 먼저 해 주세요. 들어오는 질문의 절반 이상은 구글에 검색해 보면 1분 이내로 답을 찾을 수 있는 내용들입니다.
  • 오류 메시지가 있을 경우 이를 구글에 복붙해서 검색해보면 대부분 짧은 시간 내 해결방법을 찾을 수 있습니다.
  • 강의 페이지에 추가사항 등 놓친 부분이 없는지 확인해주세요. 자주 들어오는 질문은 페이지에 추가사항으로 업데이트됩니다.
  • "유료파트의 강의페이지는 어디 있나요?" - 각 영상의 시작부분 검은 화면마다 해당 챕터의 강의페이지 링크가 있습니다.
  • 질문을 보내주실 때는 문제가 어떻게 발생했고 어떤 상황인지 등을 구체적으로 적어주세요. 스크린샷을 첨부해주시면 더욱 좋습니다.
🌏 Why not change the world?