Math.log()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Math.log() 정적 메서드는 숫자의 자연 로그(밑이 e)를 반환합니다. 즉, 아래와 같습니다.

x>0,𝙼𝚊𝚝𝚑.𝚕𝚘𝚐(𝚡)=ln(x)=the unique y such that ey=x\forall x > 0,\;\mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{the unique } y \text{ such that } e^y = x

시도해보기

구문

js
Math.log(x)

매개변수

x

0 이상의 수

반환 값

x의 자연 로그(밑이 e). 만약 x가 ±0일 경우 -Infinity을 반환하며, x < 0 이라면 NaN을 반환합니다.

설명

log()Math의 정적 메서드이기 때문에, 항상 Math.log()로 사용합니다. 생성한 Math 객체의 메서드로 사용하지 않습니다 (Math는 생성자가 아닙니다).

2나 10의 자연 로그가 필요하다면, Math.LN2Math.LN10 상수를 사용하세요. 밑이 2나 10인 로그가 필요하다면, Math.log2() 혹은 Math.log10()을 사용하세요. 다른 밑의 로그가 필요하다면, 아래 예시처럼 Math.log(x) / Math.log(otherBase)를 사용하세요. 이 경우 1 / Math.log(otherBase)를 미리 계산해 두는 것이 좋습니다. Math.log(x) * constant 곱셈이 훨씬 더 빠르기 때문입니다.

1에 매우 가까운 양수의 경우 정밀도 손실이 발생할 수 있어 자연 로그의 정확도가 떨어질 수 있습니다. 이런 경우에는 Math.log1p를 대신 사용하는 것이 좋습니다.

예제

Math.log() 사용하기

다음 함수는 밑 xy의 로그를 반환합니다. (예: logxy\log_x y)

js
function getBaseLog(x, y) {
  return Math.log(y) / Math.log(x);
}

getBaseLog(10, 1000)을 실행하면 2.9999999999999996을 반환합니다. 이는 부동 소수점 반올림때문인데, 실제 답인 3과 매우 근접합니다.

명세서

Specification
ECMAScript Language Specification
# sec-math.log

브라우저 호환성

BCD tables only load in the browser

같이보기