JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのMath.log()で対数の底を指定する方法

JavaScriptのMath.log()メソッドは、デフォルトでは自然対数(底がe)を計算します。任意の底を持つ対数を求めたい場合は、数学の底の変換公式「logb(x) = ln(x) / ln(b)」を利用します。つまり、Math.log(x)を求めたい底の対数で割ることで、任意の底の対数を計算できます。

底の変換の基本式

たとえば、常用対数(底が10)を求める場合は、次のように記述します。

Math.log(x) / Math.LN10

Math.LN10は、10の自然対数(約2.302)を表す組み込み定数です。この値で割ることで、底が10の対数が得られます。

サンプルコード

以下のコードは、Math.log()に底を指定して、100の常用対数を求める例です。

<html>
   <head>
      <title>JavaScript Math log() Method</title>
   </head>
   <body>
      <script>
         var value = Math.log(100)/Math.LN10;
         document.write("Value : " + value );
      </script>
   </body>
</html>

実行結果

Value : 2

10を2乗すると100になるため、底10の対数は2となります。

任意の底を指定する汎用的な方法

底が10以外の場合も、同じ考え方で計算できます。たとえば、底が2の対数は以下のように求められます。

Math.log(8) / Math.log(2); // 結果: 3

なお、ES2015(ES6)以降の環境では、底10の対数を直接返すMath.log10()や、底2の対数を返すMath.log2()も利用できます。古いブラウザなど対応環境が限られる場合は、上記の底の変換公式を使う方法が確実です。

  1. JavaScriptでオブジェクトにreduceメソッドを適用する方法

    JavaScriptのreduce()メソッドは本来配列向けのメソッドのため、オブジェクトにそのまま適用することはできません。そこで、Object.values()メソッドを使ってオブジェクトの値を配列として取り出し、その配列に対してreduce()を適用します。 以下は、JavaScriptでオブジェクトの値にreduceメソッドを適用するコード例です。 コード例 <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content

  2. JavaScriptのループを停止する方法|clearInterval()の使い方を解説

    JavaScriptでsetInterval()によって繰り返し実行されている処理(ループ)を停止したい場合は、clearInterval()を使用します。setInterval()は指定した間隔ごとに関数を繰り返し呼び出すメソッドですが、そのままでは無限に処理が続いてしまいます。そこで、あらかじめ戻り値として取得したタイマーIDをclearInterval()に渡すことで、ループを任意のタイミングで止めることができます。コード例以下は、一定回数スクロール処理を繰り返した後にループを停止するサンプルコードです。<!DOCTYPE html> <html lang="