diff options
Diffstat (limited to 'files/ja/web/javascript/reference/global_objects/math')
44 files changed, 4261 insertions, 0 deletions
diff --git a/files/ja/web/javascript/reference/global_objects/math/abs/index.html b/files/ja/web/javascript/reference/global_objects/math/abs/index.html new file mode 100644 index 0000000000..f8ae38085c --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/abs/index.html @@ -0,0 +1,87 @@ +--- +title: Math.abs() +slug: Web/JavaScript/Reference/Global_Objects/Math/abs +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/abs +--- +<div>{{JSRef}}</div> + +<p><span class="seoSummary"><strong><code>Math.abs()</code></strong> 関数は、数値の絶対値を返します。</span></p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.abs</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mrow><mo stretchy="false">|</mo><mi>x</mi><mo stretchy="false">|</mo></mrow><mo>=</mo><mrow><mo>{</mo><mtable columnalign="left left"><mtr><mtd><mi>x</mi></mtd><mtd><mtext>if</mtext><mspace width="1em"></mspace><mi>x</mi><mo>></mo><mn>0</mn></mtd></mtr><mtr><mtd><mi>0</mi></mtd><mtd><mtext>if</mtext><mspace width="1em"></mspace><mi>x</mi><mo>=</mo><mn>0</mn></mtd></mtr><mtr><mtd><mo>-</mo><mi>x</mi></mtd><mtd><mtext>if</mtext><mspace width="1em"></mspace><mi>x</mi><mo><</mo><mn>0</mn></mtd></mtr></mtable></mrow></mrow><annotation encoding="TeX">{\mathtt{\operatorname{Math.abs}(z)}} = {|z|} = \begin{cases} x & \text{if} \quad x \geq 0 \\ x & \text{if} \quad x < 0 \end{cases} </annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-abs.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.abs(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた数値の絶対値。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>abs()</code> は <code>Math</code> オブジェクトの静的メソッドなので、 <code>Math</code> オブジェクトを生成してメソッドとして使用するのではなく、常に <code>Math.abs()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Behavior_of_Math.abs" name="Behavior_of_Math.abs">Math.abs() の動作</h3> + +<p>空のオブジェクト、複数のメンバーを持つ配列、数値でない文字列、 {{jsxref("undefined")}}、 空の変数を渡すと、 {{jsxref("NaN")}} を返します。 {{jsxref("null")}} を渡すと空文字列を返し、空の配列は 0 を返します。</p> + +<pre class="brush: js notranslate" dir="rtl">Math.abs('-1'); // 1 +Math.abs(-2); // 2 +Math.abs(null); // 0 +Math.abs(''); // 0 +Math.abs([]); // 0 +Math.abs([2]); // 2 +Math.abs([1,2]); // NaN +Math.abs({}); // NaN +Math.abs('string'); // NaN +Math.abs(); // NaN +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.abs', 'Math.abs')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.abs")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.ceil()")}}</li> + <li>{{jsxref("Math.floor()")}}</li> + <li>{{jsxref("Math.round()")}}</li> + <li>{{jsxref("Math.sign()")}}</li> + <li>{{jsxref("Math.trunc()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/acos/index.html b/files/ja/web/javascript/reference/global_objects/math/acos/index.html new file mode 100644 index 0000000000..23d1ec9998 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/acos/index.html @@ -0,0 +1,86 @@ +--- +title: Math.acos() +slug: Web/JavaScript/Reference/Global_Objects/Math/acos +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/acos +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.acos()</code></strong> 関数は、引数として与えた数値の逆余弦 (アークコサイン) をラジアン単位で返します。</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>∊</mo><mo stretchy="false">[</mo><mrow><mo>-</mo><mn>1</mn></mrow><mo>;</mo><mn>1</mn><mo stretchy="false">]</mo><mo>,</mo><mspace width="thickmathspace"></mspace><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.acos</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mo lspace="0em" rspace="0em">arccos</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext> the unique </mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mo>∊</mo><mo stretchy="false">[</mo><mn>0</mn><mo>;</mo><mi>π</mi><mo stretchy="false">]</mo><mspace width="thinmathspace"></mspace><mtext>such that</mtext><mspace width="thickmathspace"></mspace><mo lspace="0em" rspace="0em">cos</mo><mo stretchy="false">(</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\forall x \in [{-1};1],\;\mathtt{\operatorname{Math.acos}(x)} = \arccos(x) = \text{ the unique } \; y \in [0; \pi] \, \text{such that} \; \cos(y) = x</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-acos.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.acos(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>コサインを表す数値で、 <code><var>x</var></code> は <code>-1</code> と <code>1</code> の間です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた数値が <code>-1</code> から <code>1</code> までの場合、その逆余弦 (アークコサイン) をラジアン単位で返します。それ以外の場合は {{jsxref("NaN")}} を返します。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>Math.acos()</code> メソッドは、-1 から 1 までの <code>x</code> に対して、0 から π までのラジアンの数値を返します。<code>x</code> の値がこの範囲を越えている場合、このメソッドは {{jsxref("NaN")}} を返します。</p> + +<p><code>acos()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.acos()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.acos" name="Using_Math.acos">Math.acos() の使用</h3> + +<pre class="brush: js notranslate">Math.acos(-2); // NaN +Math.acos(-1); // 3.141592653589793 +Math.acos(0); // 1.5707963267948966 +Math.acos(0.5); // 1.0471975511965979 +Math.acos(1); // 0 +Math.acos(2); // NaN +</pre> + +<p>値が -1 未満か 1 より大きい数値の場合、<code>Math.acos()</code> は {{jsxref("NaN")}} を返します。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.acos', 'Math.acos')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.acos")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.asin()")}}</li> + <li>{{jsxref("Math.atan()")}}</li> + <li>{{jsxref("Math.atan2()")}}</li> + <li>{{jsxref("Math.cos()")}}</li> + <li>{{jsxref("Math.sin()")}}</li> + <li>{{jsxref("Math.tan()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/acosh/index.html b/files/ja/web/javascript/reference/global_objects/math/acosh/index.html new file mode 100644 index 0000000000..f271a15f8e --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/acosh/index.html @@ -0,0 +1,91 @@ +--- +title: Math.acosh() +slug: Web/JavaScript/Reference/Global_Objects/Math/acosh +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/acosh +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.acosh()</code></strong> 関数は、数値の双曲線余弦 (ハイパーボリックアークコサイン) を返します。</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>≥</mo><mn>1</mn><mo>,</mo><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.acosh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mo lspace="0em" rspace="thinmathspace">arcosh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext> the unique </mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mo>≥</mo><mn>0</mn><mspace width="thickmathspace"></mspace><mtext>such that</mtext><mspace width="thickmathspace"></mspace><mo lspace="0em" rspace="0em">cosh</mo><mo stretchy="false">(</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\forall x \geq 1, \mathtt{\operatorname{Math.acosh}(x)} = \operatorname{arcosh}(x) = \text{ the unique } \; y \geq 0 \; \text{such that} \; \cosh(y) = x</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-acosh.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.acosh(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた数値の双曲線余弦 (ハイパーボリックアークコサイン) です。数値が <strong>1</strong> 未満であれば、 {{jsxref("NaN")}} になります。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>acosh()</code> は <code>Math</code> の静的メソッドであるため、作成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.acosh()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.acosh" name="Using_Math.acosh">Math.acosh() の使用</h3> + +<pre class="brush: js notranslate">Math.acosh(-1); // NaN +Math.acosh(0); // NaN +Math.acosh(0.5); // NaN +Math.acosh(1); // 0 +Math.acosh(2); // 1.3169578969248166 +</pre> + +<p>1 未満の値に対しては、 <code>Math.acosh()</code> は {{jsxref("NaN")}} を返します。</p> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<p><math><semantics><mrow><mi>x</mi><mo>≥</mo><mn>1</mn></mrow><annotation encoding="TeX">x \geq 1</annotation></semantics></math>に対して、<math><semantics><mrow><mo lspace="0em" rspace="thinmathspace">arcosh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mo lspace="0em" rspace="0em">ln</mo><mrow><mo>(</mo><mrow><mi>x</mi><mo>+</mo><msqrt><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>-</mo><mn>1</mn></mrow></msqrt></mrow><mo>)</mo></mrow></mrow><annotation encoding="TeX">\operatorname {arcosh} (x) = \ln \left(x + \sqrt{x^{2} - 1} \right)</annotation></semantics></math> になり、次の関数でエミュレートできます。</p> + +<pre class="brush: js notranslate">Math.acosh = Math.acosh || function(x) { + return Math.log(x + Math.sqrt(x * x - 1)); +}; +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.acosh', 'Math.acosh')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.acosh")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.asinh()")}}</li> + <li>{{jsxref("Math.atanh()")}}</li> + <li>{{jsxref("Math.cosh()")}}</li> + <li>{{jsxref("Math.sinh()")}}</li> + <li>{{jsxref("Math.tanh()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/asin/index.html b/files/ja/web/javascript/reference/global_objects/math/asin/index.html new file mode 100644 index 0000000000..b69aefa639 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/asin/index.html @@ -0,0 +1,86 @@ +--- +title: Math.asin() +slug: Web/JavaScript/Reference/Global_Objects/Math/asin +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/asin +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.asin()</code></strong> 関数は、引数として与えた数値の逆正弦 (アークサイン) をラジアン単位で返します。</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>∊</mo><mo stretchy="false">[</mo><mrow><mo>-</mo><mn>1</mn></mrow><mo>;</mo><mn>1</mn><mo stretchy="false">]</mo><mo>,</mo><mspace width="thickmathspace"></mspace><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.asin</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mo lspace="0em" rspace="0em">arcsin</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext> the unique </mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mo>∊</mo><mrow><mo>[</mo><mrow><mo>-</mo><mfrac><mi>π</mi><mn>2</mn></mfrac><mo>;</mo><mfrac><mi>π</mi><mn>2</mn></mfrac></mrow><mo>]</mo></mrow><mspace width="thinmathspace"></mspace><mtext>such that</mtext><mspace width="thickmathspace"></mspace><mo lspace="0em" rspace="0em">sin</mo><mo stretchy="false">(</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\forall x \in [{-1};1],\;\mathtt{\operatorname{Math.asin}(x)} = \arcsin(x) = \text{ the unique } \; y \in \left[-\frac{\pi}{2}; \frac{\pi}{2}\right] \, \text{such that} \; \sin(y) = x</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-asin.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate"><code>Math.asin(<var>x</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた数値が <strong>-1</strong> から <strong>1</strong> までの場合、その逆正弦 (アークサイン) をラジアン単位で返します。さもなければ、 {{jsxref("NaN")}} を返します。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>Math.asin()</code> メソッドは、 <code>-1</code> から <code>1</code> までの <var>x</var> に対して、 <math><semantics><mrow><mo>-</mo><mfrac><mi>π</mi><mn>2</mn></mfrac></mrow><annotation encoding="TeX">-\frac{\pi}{2}</annotation></semantics></math> から <math><semantics><mfrac><mi>π</mi><mn>2</mn></mfrac><annotation encoding="TeX">\frac{\pi}{2}</annotation></semantics></math> までのラジアンの数値を返します。 <var>x</var> の値がこの範囲を越えている場合、このメソッドは {{jsxref("NaN")}} を返します。</p> + +<p><code>asin()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.asin()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.asin" name="Using_Math.asin">Math.asin() の使用</h3> + +<pre class="brush: js notranslate">Math.asin(-2); // NaN +Math.asin(-1); // -1.5707963267948966 (-pi/2) +Math.asin(0); // 0 +Math.asin(0.5); // 0.5235987755982989 +Math.asin(1); // 1.5707963267948966 (pi/2) +Math.asin(2); // NaN +</pre> + +<p>値が -1 未満か 1 より大きい数値の場合、<code>Math.asin()</code> は {{jsxref("NaN")}} を返します。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.asin', 'Math.asin')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.asin")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.acos()")}}</li> + <li>{{jsxref("Math.atan()")}}</li> + <li>{{jsxref("Math.atan2()")}}</li> + <li>{{jsxref("Math.cos()")}}</li> + <li>{{jsxref("Math.sin()")}}</li> + <li>{{jsxref("Math.tan()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/asinh/index.html b/files/ja/web/javascript/reference/global_objects/math/asinh/index.html new file mode 100644 index 0000000000..55ae559ce6 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/asinh/index.html @@ -0,0 +1,98 @@ +--- +title: Math.asinh() +slug: Web/JavaScript/Reference/Global_Objects/Math/asinh +tags: + - JavaScript + - Math + - Mathod + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/asinh +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.asinh()</code></strong> 関数は、数値の双曲線逆正弦 (ハイパーボリックアークサイン) を返します。</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.asinh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mo lspace="0em" rspace="thinmathspace">arsinh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext> the unique </mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mspace width="thickmathspace"></mspace><mtext>such that</mtext><mspace width="thickmathspace"></mspace><mo lspace="0em" rspace="0em">sinh</mo><mo stretchy="false">(</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\mathtt{\operatorname{Math.asinh}(x)} = \operatorname{arsinh}(x) = \text{ the unique } \; y \; \text{such that} \; \sinh(y) = x</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-asinh.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate"><code>Math.asinh(<var>x</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた数値の双曲線逆正弦 (ハイパーボリックアークサイン) です。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>asinh()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.asinh()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.asinh" name="Using_Math.asinh">Math.asinh() の使用</h3> + +<pre class="brush: js notranslate">Math.asinh(1); // 0.881373587019543 +Math.asinh(0); // 0 +</pre> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<p><code>Math.asinh</code> は、次の関数でエミュレートできます。</p> + +<pre class="brush: js notranslate">if (!Math.asinh) Math.asinh = function(x) { + var absX = Math.abs(x), w + if (absX < 3.725290298461914e-9) // |x| < 2^-28 + return x + if (absX > 268435456) // |x| > 2^28 + w = Math.log(absX) + Math.LN2 + else if (absX > 2) // 2^28 >= |x| > 2 + w = Math.log(2 * absX + 1 / (Math.sqrt(x * x + 1) + absX)) + else + var t = x * x, w = Math.log1p(absX + t / (1 + Math.sqrt(1 + t))) + + return x > 0 ? w : -w +} +</pre> + +<p><code>Math.log1p</code> にもポリフィルを適用する必要があるかもしれません。詳しくは <a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/log1p">Math.log1p</a> を参照してください。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.asinh', 'Math.asinh')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.asinh")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.acosh()")}}</li> + <li>{{jsxref("Math.atanh()")}}</li> + <li>{{jsxref("Math.cosh()")}}</li> + <li>{{jsxref("Math.sinh()")}}</li> + <li>{{jsxref("Math.tanh()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/atan/index.html b/files/ja/web/javascript/reference/global_objects/math/atan/index.html new file mode 100644 index 0000000000..3c71b12b6d --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/atan/index.html @@ -0,0 +1,89 @@ +--- +title: Math.atan() +slug: Web/JavaScript/Reference/Global_Objects/Math/atan +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/atan +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.atan()</code></strong> 関数は、引数として与えた数値のアークタンジェントをラジアン単位で返します。</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.atan</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mo lspace="0em" rspace="0em">arctan</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext> the unique </mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mo>∊</mo><mrow><mo>[</mo><mrow><mo>-</mo><mfrac><mi>π</mi><mn>2</mn></mfrac><mo>;</mo><mfrac><mi>π</mi><mn>2</mn></mfrac></mrow><mo>]</mo></mrow><mspace width="thinmathspace"></mspace><mtext>such that</mtext><mspace width="thickmathspace"></mspace><mo lspace="0em" rspace="0em">tan</mo><mo stretchy="false">(</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\mathtt{\operatorname{Math.atan}(x)} = \arctan(x) = \text{ the unique } \; y \in \left[-\frac{\pi}{2}; \frac{\pi}{2}\right] \, \text{such that} \; \tan(y) = x</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-atan.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate"><code>Math.atan(<var>x</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた数値のアークタンジェント (ラジアン単位) です。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>Math.atan()</code> メソッドは <math><semantics><mrow><mo>-</mo><mfrac><mi>π</mi><mn>2</mn></mfrac></mrow><annotation encoding="TeX">-\frac{\pi}{2}</annotation></semantics></math> から <math><semantics><mfrac><mi>π</mi><mn>2</mn></mfrac><annotation encoding="TeX">\frac{\pi}{2}</annotation></semantics></math> までのラジアンの数値を返します。</p> + +<p><code>atan()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.atan()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.atan" name="Using_Math.atan">Math.atan() の使用</h3> + +<pre class="brush: js notranslate">Math.atan(1); // 0.7853981633974483 +Math.atan(0); // 0 +Math.atan(-0); // -0 + +Math.atan(Infinity); <span class="objectBox objectBox-number"> // 1.5707963267948966 +Math.atan(-Infinity); // -1.5707963267948966 + +</span>// The angle that the line [(0,0);(x,y)] forms with the x-axis in a Cartesian coordinate system +Math.atan(y / x); +</pre> + +<p>様式上の理由から <strong>±</strong><code>Infinity</code> の使用を避けたいと思うことがあるかもしれません。その場合、 {{jsxref("Math.atan2()")}} を第二引数を <code>0</code> としてを使うとよりよいかもしれません。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.atan', 'Math.atan')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.atan")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.acos()")}}</li> + <li>{{jsxref("Math.asin()")}}</li> + <li>{{jsxref("Math.atan2()")}}</li> + <li>{{jsxref("Math.cos()")}}</li> + <li>{{jsxref("Math.sin()")}}</li> + <li>{{jsxref("Math.tan()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/atan2/index.html b/files/ja/web/javascript/reference/global_objects/math/atan2/index.html new file mode 100644 index 0000000000..0d801b8f3a --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/atan2/index.html @@ -0,0 +1,96 @@ +--- +title: Math.atan2() +slug: Web/JavaScript/Reference/Global_Objects/Math/atan2 +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/atan2 +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.atan2()</code></strong> 関数は、<code>Math.atan2(y, x)</code> に対して点 (0, 0) から点 (x, y) までの半直線と、正の x 軸の間の平面上での角度 (ラジアン単位) を返します。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-atan2.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.atan2(<var>y</var>, <var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>y</var></code></dt> + <dd>点の y 座標です。</dd> + <dt><code><var>x</var></code></dt> + <dd>点の x 座標です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>点 (0, 0) から点 <math><semantics><annotation encoding="TeX">(x,y)</annotation></semantics></math> までの半直線と、正の x 軸の間の (<math><semantics><mrow><mo stretchy="false">[</mo><mo>-</mo><mi>π</mi><mo>,</mo><mi>π</mi><mo stretchy="false">]</mo></mrow><annotation encoding="TeX">[-\pi, \pi]</annotation></semantics></math> 内の) ラジアン単位の角度です。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>Math.atan2()</code> メソッドは、<code>(x, y)</code> 座標のシータ角を表す -π から π までの数値を返します。これは、ラジアン単位で表された、正の X 軸と点 <code>(x, y)</code> の間の反時計回りの角度です。このメソッドへ渡す引数は、初めに y 座標、次に x 座標であることに注意してください。</p> + +<p><img alt="A simple diagram showing the angle returned by atan2(y, x)" src="https://mdn.mozillademos.org/files/11557/atan2.png" style="height: 300px; width: 300px;"></p> + +<p><code>Math.atan2()</code> は、<code>x</code> と <code>y</code> が別々に渡され、 <code>Math.atan()</code> は2つの引数の比率が渡されます。</p> + +<p><code>atan2()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.atan2()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.atan2" name="Using_Math.atan2">Math.atan2() の使用</h3> + +<pre class="brush: js notranslate">Math.atan2(90, 15); // 1.4056476493802699 +Math.atan2(15, 90); // 0.16514867741462683 + +Math.atan2(±0, -0); // ±PI. +Math.atan2(±0, +0); // ±0. +Math.atan2(±0, -x); // ±PI for x > 0. +Math.atan2(±0, x); // ±0 for x > 0. +Math.atan2(-y, ±0); // -PI/2 for y > 0. +Math.atan2(y, ±0); // PI/2 for y > 0. +Math.atan2(±y, -Infinity); // ±PI for finite y > 0. +Math.atan2(±y, +Infinity); // ±0 for finite y > 0. +Math.atan2(±Infinity, x); // ±PI/2 for finite x. +Math.atan2(±Infinity, -Infinity); // ±3*PI/4. +Math.atan2(±Infinity, +Infinity); // ±PI/4. +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.atan2', 'Math.atan2')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.atan2")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.acos()")}}</li> + <li>{{jsxref("Math.asin()")}}</li> + <li>{{jsxref("Math.atan()")}}</li> + <li>{{jsxref("Math.cos()")}}</li> + <li>{{jsxref("Math.sin()")}}</li> + <li>{{jsxref("Math.tan()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/atanh/index.html b/files/ja/web/javascript/reference/global_objects/math/atanh/index.html new file mode 100644 index 0000000000..fd35f305e2 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/atanh/index.html @@ -0,0 +1,92 @@ +--- +title: Math.atanh() +slug: Web/JavaScript/Reference/Global_Objects/Math/atanh +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/atanh +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.atanh()</code></strong> 関数は、数値の双曲線逆正接 (ハイパーボリックアークタンジェント) を返します。</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>∊</mo><mrow><mo>(</mo><mrow><mo>-</mo><mn>1</mn><mo>,</mo><mn>1</mn></mrow><mo>)</mo></mrow><mo>,</mo><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.atanh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mo lspace="0em" rspace="thinmathspace">arctanh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext> the unique </mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mspace width="thickmathspace"></mspace><mtext>such that</mtext><mspace width="thickmathspace"></mspace><mo lspace="0em" rspace="0em">tanh</mo><mo stretchy="false">(</mo><mi>y</mi><mo stretchy="false">)</mo><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\forall x \in \left( -1, 1 \right), \mathtt{\operatorname{Math.atanh}(x)} = \operatorname{arctanh}(x) = \text{ the unique } \; y \; \text{such that} \; \tanh(y) = x</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-atanh.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate"><code>Math.atanh(<var>x</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた数値の双曲線逆正接 (ハイパーボリックアークタンジェント) です。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>atanh()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.atanh()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.atanh" name="Using_Math.atanh">Math.atanh() の使用</h3> + +<pre class="brush: js notranslate">Math.atanh(-2); // NaN +Math.atanh(-1); // -Infinity +Math.atanh(0); // 0 +Math.atanh(0.5); // 0.5493061443340548 +Math.atanh(1); // Infinity +Math.atanh(2); // NaN +</pre> + +<p>1よりも大きな値もしくは -1 よりも小さな値に対しては、 {{jsxref("NaN")}} が返されます。</p> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<p><math><semantics><mrow><mrow><mo>|</mo><mi>x</mi><mo>|</mo></mrow><mo><</mo><mn>1</mn></mrow><annotation encoding="TeX">\left|x\right| < 1</annotation></semantics></math>に対して、 <math><semantics><mrow><mo lspace="0em" rspace="thinmathspace">artanh</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mo lspace="0em" rspace="0em">ln</mo><mrow><mo>(</mo><mfrac><mrow><mn>1</mn><mo>+</mo><mi>x</mi></mrow><mrow><mn>1</mn><mo>-</mo><mi>x</mi></mrow></mfrac><mo>)</mo></mrow></mrow><annotation encoding="TeX">\operatorname {artanh} (x) = \frac{1}{2}\ln \left( \frac{1 + x}{1 - x} \right)</annotation></semantics></math> になり、次の関数でエミュレートできます。</p> + +<pre class="brush: js notranslate">Math.atanh = Math.atanh || function(x) { + return Math.log((1+x)/(1-x)) / 2; +}; +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.atanh', 'Math.atanh')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.atanh")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.acosh()")}}</li> + <li>{{jsxref("Math.asinh()")}}</li> + <li>{{jsxref("Math.cosh()")}}</li> + <li>{{jsxref("Math.sinh()")}}</li> + <li>{{jsxref("Math.tanh()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/cbrt/index.html b/files/ja/web/javascript/reference/global_objects/math/cbrt/index.html new file mode 100644 index 0000000000..23f22f4e8d --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/cbrt/index.html @@ -0,0 +1,95 @@ +--- +title: Math.cbrt() +slug: Web/JavaScript/Reference/Global_Objects/Math/cbrt +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/cbrt +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.cbrt()</code></strong> 関数は、引数として与えた数の立方根を返します。すなわち、</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mrow><mi>M</mi><mi>a</mi><mi>t</mi><mi>h</mi><mo>.</mo><mi>c</mi><mi>b</mi><mi>r</mi><mi>t</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mroot><mi>x</mi><mn>3</mn></mroot><mo>=</mo><mtext>the unique</mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mspace width="thickmathspace"></mspace><mtext>such that</mtext><mspace width="thickmathspace"></mspace><msup><mi>y</mi><mn>3</mn></msup><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\mathtt{Math.cbrt(x)} = \sqrt[3]{x} = \text{the unique} \; y \; \text{such that} \; y^3 = x</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-cbrt.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate"><code>Math.cbrt(<var>x</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><var>x</var></dt> + <dd>数値。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた数値の立方根です。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>cbrt()</code> は <code>Math</code> の静的なメソッドであるため、自ら生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に、 <code>Math.cbrt()</code> として使用してください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<p>すべての <math><semantics><mrow><mi>x</mi><mo>≥</mo><mn>0</mn></mrow><annotation encoding="TeX">x \geq 0</annotation></semantics></math> に対して、 <math><semantics><mrow><mroot><mi>x</mi><mn>3</mn></mroot><mo>=</mo><msup><mi>x</mi><mrow><mn>1</mn><mo>/</mo><mn>3</mn></mrow></msup></mrow><annotation encoding="TeX">\sqrt[3]{x} = x^{1/3}</annotation></semantics></math> が存在し、次の関数でエミュレートできます:</p> + +<pre class="brush: js notranslate">if (!Math.cbrt) { + Math.cbrt = (function(pow) { + return function cbrt(x){ + // ensure negative numbers remain negative: + return x < 0 ? -pow(-x, 1/3) : pow(x, 1/3); + }; + })(Math.pow); // localize Math.pow to increase efficiency +} +</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.cbrt" name="Using_Math.cbrt">Math.cbrt() の使用</h3> + +<pre class="brush: js notranslate">Math.cbrt(NaN); // NaN +Math.cbrt(-1); // -1 +Math.cbrt(-0); // -0 +Math.cbrt(-Infinity); // -Infinity +Math.cbrt(0); // 0 +Math.cbrt(1); // 1 +Math.cbrt(Infinity); // Infinity +Math.cbrt(null); // 0 +Math.cbrt(2); // 1.2599210498948732 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.cbrt', 'Math.cbrt')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.cbrt")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.pow()")}}</li> + <li>{{jsxref("Math.sqrt()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/ceil/index.html b/files/ja/web/javascript/reference/global_objects/math/ceil/index.html new file mode 100644 index 0000000000..0ef1df742e --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/ceil/index.html @@ -0,0 +1,155 @@ +--- +title: Math.ceil() +slug: Web/JavaScript/Reference/Global_Objects/Math/ceil +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/ceil +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.ceil()</code></strong> 関数は、引数として与えた数以上の最小の整数を返します。</p> + +<p><strong>注: </strong><code>Math.ceil({{jsxref("null")}})</code> は整数の 0 を返し、 {{jsxref("NaN")}} エラーは返しません。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-ceil.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox"><code>Math.ceil(<var>x</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>引数として与えた数以上の最小の整数を返します。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>ceil()</code> は <code>Math</code> オブジェクトの静的メソッドなので、 <code>Math</code> オブジェクトを生成してメソッドとして使用するのではなく、常に <code>Math.ceil()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.ceil" name="Using_Math.ceil">Math.ceil() の使用</h3> + +<p>以下の例は、<code>Math.ceil()</code> を使用した例です。</p> + +<pre class="brush: js">Math.ceil(.95); // 1 +Math.ceil(4); // 4 +Math.ceil(7.004); // 8 +Math.ceil(-0.95); // -0 +Math.ceil(-4); // -4 +Math.ceil(-7.004); // -7 +</pre> + +<h3 id="Decimal_adjustment" name="Decimal_adjustment">10進補正 (Decimal adjustment)</h3> + +<pre class="brush: js">// Closure +(function() { + /** + * Decimal adjustment of a number. + * + * @param {String} type The type of adjustment. + * @param {Number} value The number. + * @param {Integer} exp The exponent (the 10 logarithm of the adjustment base). + * @returns {Number} The adjusted value. + */ + function decimalAdjust(type, value, exp) { + // If the exp is undefined or zero... + if (typeof exp === 'undefined' || +exp === 0) { + return Math[type](value); + } + value = +value; + exp = +exp; + // If the value is not a number or the exp is not an integer... + if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) { + return NaN; + } + // Shift + value = value.toString().split('e'); + value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp))); + // Shift back + value = value.toString().split('e'); + return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp)); + } + + // Decimal round + if (!Math.round10) { + Math.round10 = function(value, exp) { + return decimalAdjust('round', value, exp); + }; + } + // Decimal floor + if (!Math.floor10) { + Math.floor10 = function(value, exp) { + return decimalAdjust('floor', value, exp); + }; + } + // Decimal ceil + if (!Math.ceil10) { + Math.ceil10 = function(value, exp) { + return decimalAdjust('ceil', value, exp); + }; + } +})(); + +// Round +Math.round10(55.55, -1); // 55.6 +Math.round10(55.549, -1); // 55.5 +Math.round10(55, 1); // 60 +Math.round10(54.9, 1); // 50 +Math.round10(-55.55, -1); // -55.5 +Math.round10(-55.551, -1); // -55.6 +Math.round10(-55, 1); // -50 +Math.round10(-55.1, 1); // -60 +// Floor +Math.floor10(55.59, -1); // 55.5 +Math.floor10(59, 1); // 50 +Math.floor10(-55.51, -1); // -55.6 +Math.floor10(-51, 1); // -60 +// Ceil +Math.ceil10(55.51, -1); // 55.6 +Math.ceil10(51, 1); // 60 +Math.ceil10(-55.59, -1); // -55.5 +Math.ceil10(-59, 1); // -50 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.ceil', 'Math.ceil')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.ceil")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.abs()")}}</li> + <li>{{jsxref("Math.floor()")}}</li> + <li>{{jsxref("Math.round()")}}</li> + <li>{{jsxref("Math.sign()")}}</li> + <li>{{jsxref("Math.trunc()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/clz32/index.html b/files/ja/web/javascript/reference/global_objects/math/clz32/index.html new file mode 100644 index 0000000000..d5b390382e --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/clz32/index.html @@ -0,0 +1,181 @@ +--- +title: Math.clz32() +slug: Web/JavaScript/Reference/Global_Objects/Math/clz32 +tags: + - ECMAScript 2015 + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/clz32 +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.clz32()</code></strong> 関数は、引数として与えられた数値の 32 ビットバイナリ表現での先頭の 0 の個数を返します。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-clz32.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.clz32(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた数値の32ビットバイナリ表現での先頭の 0 の個数。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p>"<code>clz32</code>" は <strong>CountLeadingZeroes32</strong> の省略形です。</p> + +<p><code><var>x</var></code> が数値でない場合、まず数値に変換され、32ビット符号なし整数値に変換されます。</p> + +<p>変換された 32 ビット符号なし整数値が <code>0</code> の場合、すべてのビットが <code>0</code> であるため、<code>32</code> を返します。</p> + +<p>この関数は <a href="/ja/docs/Emscripten">Emscripten</a> のような JS にコンパイルするシステムに対して特に役に立ちます。</p> + +<h3 id="Count_Leading_Ones_and_beyond" name="Count_Leading_Ones_and_beyond">先頭の1を数える</h3> + +<p>現在のところ、 "Count Leading Ones" を表す <code>Math.clon</code> はありません ("clo" ではなく "clon" と名付けられています、なぜなら "clo" と "clz" は特に英語を話さない人にとっては似すぎているからです)。しかし、 <code>clon</code> 関数は、数値のビットを逆数にして、その結果を <code>Math.clz32</code> に渡すことで簡単に作ることができます。 1 の逆数は 0 であり、その逆も同様です。このように、ビットを逆数にすると、測定された 0 の量が (<code>Math.clz32</code> からの) 逆数になり、 <code>Math.clz32</code> はゼロの数を数えるのではなく、1 の数を数えるようになります。</p> + +<p>以下の32ビットワード値を想定してみます。</p> + +<pre class="brush: js notranslate">var a = 32776; // 00000000000000001000000000001000 (16 leading zeros) +Math.clz32(a); // 16 + +var b = ~32776; // 11111111111111110111111111110111 (32776 inversed, 0 leading zeros) +Math.clz32(b); // 0 (this is equal to how many leading one's there are in a)</pre> + +<p>この論理を使用すると、 <code>clon</code> 関数は次のように作成することができます。</p> + +<pre class="brush: js notranslate">var clz = Math.clz32; +function clon(integer){ + return clz(~integer); +} +</pre> + +<p>さらに、この技術を拡張して、以下に示すようなジャンプレスの「Count Trailing Zeros」と「Count Trailing Ones」関数を作成することができます。以下の <code>ctrz</code> 関数は、すべての上位ビットを最も低いビットで埋め、そのビットを否定して上位のセットビットをすべて消去するので、clz が使用できます。</p> + +<pre class="brush: js notranslate">var clz = Math.clz32; +function ctrz(integer){ // count trailing zeros + // 1. fill in all the higher bits after the first one + integer |= integer << 16; + integer |= integer << 8; + integer |= integer << 4; + integer |= integer << 2; + integer |= integer << 1; + // 2. Now, inversing the bits reveals the lowest bits + return 32 - clz(~integer) |0; // `|0` ensures integer coercion +} +function ctron(integer){ // count trailing ones + // No shift-filling-in-with-ones operator is available in + // JavaScript, so the below code is the fastest + return ctrz(~integer); + /* Alternate implementation for demonstrational purposes: + // 1. erase all the higher bits after the first zero + integer &= (integer << 16) | 0xffff; + integer &= (integer << 8 ) | 0x00ff; + integer &= (integer << 4 ) | 0x000f; + integer &= (integer << 2 ) | 0x0003; + integer &= (integer << 1 ) | 0x0001; + // 2. Now, inversing the bits reveals the lowest zeros + return 32 - clon(~integer) |0; + */ +} +</pre> + +<p>これらのヘルパー関数を ASM.JS モジュールに入れます。そして、そうすれば、真のパフォーマンスの傑作ができあがります。このような状況は、まさに ASM.JS のために設計されたものです。</p> + +<pre class="brush: js notranslate">var countTrailsMethods = (function(stdlib, foreign, heap) { + "use asm"; + var clz = stdlib.Math.clz32; + function ctrz(integer) { // count trailing zeros + integer = integer | 0; // coerce to an integer + // 1. fill in all the higher bits after the first one + // ASMjs for some reason does not allow ^=,&=, or |= + integer = integer | (integer << 16); + integer = integer | (integer << 8); + integer = integer | (integer << 4); + integer = integer | (integer << 2); + integer = integer | (integer << 1); + // 2. Now, inversing the bits reveals the lowest bits + return 32 - clz(~integer) |0; + } + function ctron(integer) { // count trailing ones + integer = integer | 0; // coerce to an integer + return ctrz(~integer) |0; + } + // unfourtunately, ASM.JS demands slow crummy objects: + return {a: ctrz, b: ctron}; +})(window, null, null); +var ctrz = countTrailsMethods.a; +var ctron = countTrailsMethods.b;</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.clz32" name="Using_Math.clz32">Math.clz32() の使用</h3> + +<pre class="brush: js notranslate">Math.clz32(1); // 31 +Math.clz32(1000); // 22 +Math.clz32(); // 32 + +var stuff = [NaN, Infinity, -Infinity, 0, -0, false, null, undefined, 'foo', {}, []]; +stuff.every(n => Math.clz32(n) == 32); // true + +Math.clz32(true); // 31 +Math.clz32(3.5); // 30</pre> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<p>以下のポリフィルが最も効果的です。</p> + +<pre class="brush: js notranslate">if (!Math.clz32) Math.clz32 = (function(log, LN2){ + return function(x) { + // Let n be ToUint32(x). + // Let p be the number of leading zero bits in + // the 32-bit binary representation of n. + // Return p. + var asUint = x >>> 0; + if (asUint === 0) { + return 32; + } + return 31 - (log(asUint) / LN2 | 0) |0; // the "| 0" acts like math.floor + }; +})(Math.log, Math.LN2); +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.clz32', 'Math.clz32')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.clz32")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math")}}</li> + <li>{{jsxref("Math.imul")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/cos/index.html b/files/ja/web/javascript/reference/global_objects/math/cos/index.html new file mode 100644 index 0000000000..b70725a5c6 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/cos/index.html @@ -0,0 +1,85 @@ +--- +title: Math.cos() +slug: Web/JavaScript/Reference/Global_Objects/Math/cos +tags: + - Geometry + - JavaScript + - Math + - Method + - Reference + - Trigonometry + - cos + - cosine +translation_of: Web/JavaScript/Reference/Global_Objects/Math/cos +--- +<div>{{JSRef}}</div> + +<p><span class="seoSummary"><strong><code>Math.cos()</code></strong> は静的関数で、指定された角度の余弦 ({{interwiki("wikipedia", "コサイン")}}) を返します。ここで角度は{{interwiki("wikipedia", "ラジアン")}}で指定します。この値は</span> <math style="display: inline;"> <mstyle displaystyle="true"> <mfrac> <msub> <mrow> <mtext>length</mtext> </mrow> <mrow> <mrow> <mtext>adjacent</mtext> </mrow> </mrow> </msub> <msub> <mrow> <mtext>length</mtext> </mrow> <mrow> <mrow> <mtext>hypotenuse</mtext> </mrow> </mrow> </msub> </mfrac> </mstyle> </math> です。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-cos.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.cos(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>余弦を返すラジアンの角度。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた数値の余弦 (コサイン) です。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>Math.cos()</code> メソッドはラジアンで指定された角度の余弦 (コサイン) を表す -1 から 1 までの範囲の数値を表します。</p> + +<p><code>cos()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.cos()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.cos" name="Using_Math.cos">Math.cos() の使用</h3> + +<pre class="brush: js notranslate">Math.cos(0); // 1 +Math.cos(1); // 0.5403023058681398 + +Math.cos(Math.PI); // -1 +Math.cos(2 * Math.PI); // 1 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.cos', 'Math.cos')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.cos")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.acos()")}}</li> + <li>{{jsxref("Math.asin()")}}</li> + <li>{{jsxref("Math.atan()")}}</li> + <li>{{jsxref("Math.atan2()")}}</li> + <li>{{jsxref("Math.sin()")}}</li> + <li>{{jsxref("Math.tan()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/cosh/index.html b/files/ja/web/javascript/reference/global_objects/math/cosh/index.html new file mode 100644 index 0000000000..087086fa4d --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/cosh/index.html @@ -0,0 +1,95 @@ +--- +title: Math.cosh() +slug: Web/JavaScript/Reference/Global_Objects/Math/cosh +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/cosh +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.cosh()</code></strong> 関数は、引数として与えた数の双曲線余弦 (ハイパーボリックコサイン) を返します。これは{{jsxref("Math.E", "定数 e", "", 1)}} を使用して次のように表すことができます。</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mo lspace="0em" rspace="thinmathspace">Math.cosh(x)</mo></mstyle><mo>=</mo><mfrac><mrow><msup><mi>e</mi><mi>x</mi></msup><mo>+</mo><msup><mi>e</mi><mrow><mo>-</mo><mi>x</mi></mrow></msup></mrow><mn>2</mn></mfrac></mrow><annotation encoding="TeX">\mathtt{\operatorname{Math.cosh(x)}} = \frac{e^x + e^{-x}}{2}</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-cosh.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.cosh(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>指定された数値の双曲線余弦 (ハイパーボリックコサイン) です。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>cosh()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.cosh()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.cosh" name="Using_Math.cosh">Math.cosh() の使用</h3> + +<pre class="brush: js notranslate">Math.cosh(0); // 1 +Math.cosh(1); // 1.5430806348152437 +Math.cosh(-1); // 1.5430806348152437 +</pre> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<p>これは {{jsxref("Math.exp()")}} 関数を使用して次のようにエミュレートできます。</p> + +<pre class="brush: js notranslate">Math.cosh = Math.cosh || function(x) { + return (Math.exp(x) + Math.exp(-x)) / 2; +} +</pre> + +<p>または {{jsxref("Math.exp()")}} 関数を一度だけ呼び出すようにすると、次のようになります。</p> + +<pre class="brush: js notranslate">Math.cosh = Math.cosh || function(x) { + var y = Math.exp(x); + return (y + 1 / y) / 2; +}; +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.cosh', 'Math.cosh')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.cosh")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.acosh()")}}</li> + <li>{{jsxref("Math.asinh()")}}</li> + <li>{{jsxref("Math.atanh()")}}</li> + <li>{{jsxref("Math.sinh()")}}</li> + <li>{{jsxref("Math.tanh()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/e/index.html b/files/ja/web/javascript/reference/global_objects/math/e/index.html new file mode 100644 index 0000000000..c837f079a9 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/e/index.html @@ -0,0 +1,67 @@ +--- +title: Math.E +slug: Web/JavaScript/Reference/Global_Objects/Math/E +tags: + - JavaScript + - Math + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/E +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.E</code></strong> プロパティは自然対数の底 (e)、約 2.718 を表します。</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mi>Math.E</mi></mstyle><mo>=</mo><mi>e</mi><mo>≈</mo><mn>2.718</mn></mrow><annotation encoding="TeX">\mathtt{\mi{Math.E}} = e \approx 2.718</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-e.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>E</code> は <code>Math</code> オブジェクトの静的プロパティなので、 <code>Math</code> オブジェクトを生成してプロパティとして使用するのではなく、常に <code>Math.E</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.E" name="Using_Math.E">Math.E の使用</h3> + +<p>以下の関数は、e を返します。</p> + +<pre class="brush: js notranslate">function getNapier() { + return Math.E; +} + +getNapier(); // 2.718281828459045 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.e', 'Math.E')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.E")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log1p()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/exp/index.html b/files/ja/web/javascript/reference/global_objects/math/exp/index.html new file mode 100644 index 0000000000..c790ba115c --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/exp/index.html @@ -0,0 +1,78 @@ +--- +title: Math.exp() +slug: Web/JavaScript/Reference/Global_Objects/Math/exp +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/exp +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.exp()</code></strong> 関数は <code>e<sup>x</sup></code> (<code>x</code> は引数、 <code>e</code> は{{jsxref("Math.E", "オイラー数 (ネイピア定数とも)", "", 1)}}、自然対数の底) を返します。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-exp.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.exp(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p><code>e<sup><var>x</var></sup></code> (<code>e</code> は{{jsxref("Math.E", "オイラー数", "", 1)}}、 <code><var>x</var></code> は引数) を表す数値です。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>exp()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.exp()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.exp" name="Using_Math.exp">Math.exp() の使用</h3> + +<pre class="brush: js notranslate">Math.exp(-1); // 0.36787944117144233 +Math.exp(0); // 1 +Math.exp(1); // 2.718281828459045 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.exp', 'Math.exp')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.exp")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.E")}}</li> + <li>{{jsxref("Math.expm1()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log10()")}}</li> + <li>{{jsxref("Math.log1p()")}}</li> + <li>{{jsxref("Math.log2()")}}</li> + <li>{{jsxref("Math.pow()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/expm1/index.html b/files/ja/web/javascript/reference/global_objects/math/expm1/index.html new file mode 100644 index 0000000000..dd66595f56 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/expm1/index.html @@ -0,0 +1,87 @@ +--- +title: Math.expm1() +slug: Web/JavaScript/Reference/Global_Objects/Math/expm1 +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/expm1 +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.expm1()</code></strong> 関数は <code>e<sup>x</sup> - 1</code> (<code>x</code> は引数、 {{jsxref("Math.E", "e", "", 1)}} は自然対数の底) を返します。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-expm1.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.expm1(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p><code>e<sup>x</sup> - 1</code> (<code>e</code> は{{jsxref("Math.E", "オイラー数", "", 1)}}、 <code>x</code> は引数) を表す数値です。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>expm1()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.expm1()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.expm1" name="Using_Math.expm1">Math.expm1() の使用</h3> + +<pre class="brush: js notranslate">Math.expm1(-1); // -0.6321205588285577 +Math.expm1(0); // 0 +Math.expm1(1); // 1.718281828459045 +</pre> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<p>これは {{jsxref("Math.exp()")}} 関数の助けを借りてエミュレートすることができます。</p> + +<pre class="brush: js notranslate">Math.expm1 = Math.expm1 || function(x) { + return Math.exp(x) - 1; +}; +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.expm1', 'Math.expm1')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.expm1")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.E")}}</li> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log10()")}}</li> + <li>{{jsxref("Math.log1p()")}}</li> + <li>{{jsxref("Math.log2()")}}</li> + <li>{{jsxref("Math.pow()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/floor/index.html b/files/ja/web/javascript/reference/global_objects/math/floor/index.html new file mode 100644 index 0000000000..bac5d18b30 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/floor/index.html @@ -0,0 +1,139 @@ +--- +title: Math.floor() +slug: Web/JavaScript/Reference/Global_Objects/Math/floor +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/floor +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.floor()</code></strong> 関数は与えられた数値以下の最大の整数を返します。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-floor.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.floor(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>指定された数値以下の最大の整数を表す数値です。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>floor()</code> は <code>Math</code> オブジェクトの静的なメソッドなので、自ら生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に、<code>Math.floor()</code> として使用するようにしてください (<code>Math</code> のコンストラクターはありません)。</p> + +<div class="blockIndicator note"> +<p><strong>注: </strong><code>Math.floor(null)</code> は {{jsxref("NaN")}} ではなく 0 を返します。</p> +</div> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.floor" name="Using_Math.floor">Math.floor() の使用</h3> + +<pre class="brush: js notranslate">Math.floor( 45.95); // 45 +Math.floor( 45.05); // 45 +Math.floor( 4 ); // 4 +Math.floor(-45.05); // -46 +Math.floor(-45.95); // -46 +</pre> + +<h3 id="Decimal_adjustment" name="Decimal_adjustment">十進数の丸め</h3> + +<pre class="brush: js notranslate">/** + * Decimal adjustment of a number. + * + * @param {String} type The type of adjustment. + * @param {Number} value The number. + * @param {Integer} exp The exponent (the 10 logarithm of the adjustment base). + * @returns {Number} The adjusted value. + */ +function decimalAdjust(type, value, exp) { + // If the exp is undefined or zero... + if (typeof exp === 'undefined' || +exp === 0) { + return Math[type](value); + } + value = +value; + exp = +exp; + // If the value is not a number or the exp is not an integer... + if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) { + return NaN; + } + // Shift + value = value.toString().split('e'); + value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp))); + // Shift back + value = value.toString().split('e'); + return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp)); +} + +// Decimal round +const round10 = (value, exp) => decimalAdjust('round', value, exp); +// Decimal floor +const floor10 = (value, exp) => decimalAdjust('floor', value, exp); +// Decimal ceil +const ceil10 = (value, exp) => decimalAdjust('ceil', value, exp); + +// Round +round10(55.55, -1); // 55.6 +round10(55.549, -1); // 55.5 +round10(55, 1); // 60 +round10(54.9, 1); // 50 +round10(-55.55, -1); // -55.5 +round10(-55.551, -1); // -55.6 +round10(-55, 1); // -50 +round10(-55.1, 1); // -60 +// Floor +floor10(55.59, -1); // 55.5 +floor10(59, 1); // 50 +floor10(-55.51, -1); // -55.6 +floor10(-51, 1); // -60 +// Ceil +ceil10(55.51, -1); // 55.6 +ceil10(51, 1); // 60 +ceil10(-55.59, -1); // -55.5 +ceil10(-59, 1); // -50 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.floor', 'Math.floor')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.floor")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.abs()")}}</li> + <li>{{jsxref("Math.ceil()")}}</li> + <li>{{jsxref("Math.round()")}}</li> + <li>{{jsxref("Math.sign()")}}</li> + <li>{{jsxref("Math.trunc()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/fround/index.html b/files/ja/web/javascript/reference/global_objects/math/fround/index.html new file mode 100644 index 0000000000..8af6e99331 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/fround/index.html @@ -0,0 +1,127 @@ +--- +title: Math.fround() +slug: Web/JavaScript/Reference/Global_Objects/Math/fround +tags: + - ES6 + - JavaScript + - Math + - Method + - Reference + - fround +translation_of: Web/JavaScript/Reference/Global_Objects/Math/fround +--- +<div>{{JSRef}}</div> + +<p class="seoSummary"><strong><code>Math.fround()</code></strong> 関数は、ある {{jsxref("Number")}} を表す最も近い{{interwiki("wikipedia", "単精度浮動小数点数", "32ビット単精度")}}浮動小数点数を返します。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-fround.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">var <var>singleFloat</var> = Math.fround(<var>doubleFloat</var>);</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>doubleFloat</var></code></dt> + <dd>{{jsxref("Number")}}。この引数が異なる方であった場合は、数値に変換されるか、変換できなければ {{jsxref("NaN")}} になります。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた値を表す最も近い {{interwiki("wikipedia", "単精度浮動小数点数", "32 ビット単精度")}}浮動小数点数です。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p>JavaScriptは内部的に 64 ビットの倍精度浮動小数点数を使用しており、非常に高い精度を提供しています。しかし、例えば {{jsxref("Float32Array")}} から値を読み込む場合など 32 ビットの浮動小数点数を扱うことがあるかもしれません。これは混乱を招く可能性があります。 64 ビットの浮動小数点数と 32 ビットの浮動小数点数が等しいかどうかをチェックすると、一見同じように見える数値であっても失敗することがあります。</p> + +<p>これを解決するには、 <code>Math.fround()</code> を使用して、 64 ビット浮動小数点数を 32 ビットの浮動小数点数にキャストすることができます。内部的には、 JavaScript は数値を 64 ビットの浮動小数点数として扱い続けますが、仮数の23番目のビットに「偶数への丸め」を実行し、それに続く仮数ビットをすべて 0 に設定します。数値が 32 ビットの浮動小数点数の範囲外の場合は、 {{jsxref("Infinity")}} または <code>-Infinity</code> が返されます。</p> + +<p><code>fround()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.fround()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.fround" name="Using_Math.fround">Math.fround() の使用</h3> + +<p>1.5 という数値は二進数で正確に表すことができ、32ビットと64ビットとで同じになります。</p> + +<pre class="brush: js notranslate">Math.fround(1.5); // 1.5 +Math.fround(1.5) === 1.5; // true +</pre> + +<p>しかし、 1.337 という数値は二進数では正確に表すことができず、32ビットと64ビットとで異なります。</p> + +<pre class="brush: js notranslate">Math.fround(1.337); // 1.3370000123977661 +Math.fround(1.337) === 1.337; // false +</pre> + +<p><math><semantics><msup><mn>2</mn><mn>150</mn></msup><annotation encoding="TeX">2^150</annotation></semantics></math> は32ビット浮動小数点では大きすぎるため、 <code>Infinity</code> が返されます。</p> + +<pre class="brush: js notranslate">2 ** 150; // 1.42724769270596e+45 +Math.fround(2 ** 150); // Infinity +</pre> + +<p>引数が数値に変換できない場合、または{{interwiki("wikipedia", "NaN", "非数")}} (<code>NaN</code>) であった場合、 <code>Math.fround()</code> は <code>NaN</code> を返します。</p> + +<pre class="brush: js notranslate">Math.fround('abc'); // NaN +Math.fround(NaN); // NaN +</pre> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<p>これは {{jsxref("Float32Array")}} に対応している場合、次の関数でエミュレートできます。</p> + +<pre class="brush: js notranslate">Math.fround = Math.fround || (function (array) { + return function(x) { + return array[0] = x, array[0]; + }; +})(new Float32Array(1)); +</pre> + +<p>古いブラウザーに対応するには、より遅いですが、次のものも利用できます。</p> + +<pre class="brush: js notranslate">if (!Math.fround) Math.fround = function(arg) { + arg = Number(arg); + // Return early for ±0 and NaN. + if (!arg) return arg; + var sign = arg < 0 ? -1 : 1; + if (sign < 0) arg = -arg; + // Compute the exponent (8 bits, signed). + var exp = Math.floor(Math.log(arg) / Math.LN2); + var powexp = Math.pow(2, Math.max(-126, Math.min(exp, 127))); + // Handle subnormals: leading digit is zero if exponent bits are all zero. + var leading = exp < -127 ? 0 : 1; + // Compute 23 bits of mantissa, inverted to round toward zero. + var mantissa = Math.round((leading - arg / powexp) * 0x800000); + if (mantissa <= -0x800000) return sign * Infinity; + return sign * powexp * (leading - mantissa / 0x800000); +};</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.fround', 'Math.fround')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.fround")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.round()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/hypot/index.html b/files/ja/web/javascript/reference/global_objects/math/hypot/index.html new file mode 100644 index 0000000000..83f8161db1 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/hypot/index.html @@ -0,0 +1,127 @@ +--- +title: Math.hypot() +slug: Web/JavaScript/Reference/Global_Objects/Math/hypot +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/hypot +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.hypot()</code></strong> 関数は、各引数の二乗の合計値の平方根を返します。</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.hypot</mo><mo stretchy="false">(</mo><msub><mi>v</mi><mn>1</mn></msub><mo>,</mo><msub><mi>v</mi><mn>2</mn></msub><mo>,</mo><mo>…</mo><mo>,</mo><msub><mi>v</mi><mi>n</mi></msub><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><msqrt><mrow><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msubsup><mi>v</mi><mi>i</mi><mn>2</mn></msubsup></mrow></msqrt><mo>=</mo><msqrt><mrow><msubsup><mi>v</mi><mn>1</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>v</mi><mn>2</mn><mn>2</mn></msubsup><mo>+</mo><mo>…</mo><mo>+</mo><msubsup><mi>v</mi><mi>n</mi><mn>2</mn></msubsup></mrow></msqrt></mrow><annotation encoding="TeX">\mathtt{\operatorname{Math.hypot}(v_1, v_2, \dots, v_n)} = \sqrt{\sum_{i=1}^n v_i^2} = \sqrt{v_1^2 + v_2^2 + \dots + v_n^2}</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-hypot.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力してくださる場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.hypot([<var>value1</var>[, <var>value2</var>[, ...]]])</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>value1</var>, <var>value2</var>, ...</code></dt> + <dd>数値です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた各引数の二乗の合計値の平方根を返します。1つ上の引数が数値に変換できなかった場合は、 {{jsxref("NaN")}} が返されます。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p>直角三角形の斜辺や、複素数の大きさを計算するには <code>Math.sqrt(v1*v1 + v2*v2)</code> という公式を用い、ここで v1 と v2 は三角形の辺の長さであったり、複素数の実数と複素数部分であったりします。二次元またはそれ以上の次元における対応する距離は、 <code>Math.sqrt(v1*v1 + v2*v2 + v3*v3 + v4*v4)</code> のように平方根の下にさらに多くの平方を足すことで計算できます。</p> + +<p>この関数はこの計算をより簡単に、より高速に行います。 <code>Math.hypot(v1, v2)</code> または <code>Math.hypot(v1, v2, v3, v4, ...)</code> を呼び出すだけです。</p> + +<p><code>Math.hypot</code> はまた、数値が非常に大きい場合のオーバーフロー/アンダーフローの問題を回避します。 JS で表現できる最大の数は <code>Number.MAX_VALUE</code> で、これは約 10<sup>308</sup> です。数字の大きさが約 10<sup>154</sup> よりも大きい場合、その2乗を取ると無限大になります。例えば、 <code>Math.sqrt(1e200*1e200 + 1e200*1e200) = Infinity</code>. 代わりに <code>hypot()</code> を使うと、 <code>Math.hypot(1e200, 1e200) = 1.4142...e+200</code> となり、より良い答えが得られます。これは非常に小さな数の場合にも当てはまります。 <code>Math.sqrt(1e-200*1e-200 + 1e-200*1e-200) = 0</code> ですが、 <code>Math.hypot(1e-200, 1e-200) = 1.4142...e-200</code> となります。</p> + +<p><code>hypot()</code> は <code>Math</code> の静的メソッドなので、常に <code>Math.hypot()</code> として使用し、自分で <code>Math</code> オブジェクトを生成してそのメソッドとして使用しないでください。 (<code>Math</code> にはコンストラクターがありません)。</p> + +<p>引数が与えられなかった場合、結果は +0 になります。引数のいずれかが ±Infinity であった場合、結果は Infinity になります。引数のいずれかが NaN であった場合は (他に ±Infinity の引数がない限り)、結果は NaN になります。数値に変換できない引数があった場合は、結果は {{jsxref("NaN")}} になります。</p> + +<p>引数が1つの場合、 <code>Math.hypot()</code> は <code>Math.abs()</code> と同等です。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.hypot" name="Using_Math.hypot">Math.hypot() の使用</h3> + +<pre class="brush: js notranslate">Math.hypot(3, 4); // 5 +Math.hypot(3, 4, 5); // 7.0710678118654755 +Math.hypot(); // 0 +Math.hypot(NaN); // NaN +Math.hypot(NaN, Infinity); // Infinity +Math.hypot(3, 4, 'foo'); // NaN, since +'foo' => NaN +Math.hypot(3, 4, '5'); // 7.0710678118654755, +'5' => 5 +Math.hypot(-3); // 3, the same as Math.abs(-3) +</pre> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<p>オーバーフロー/アンダーフローの問題を処理しないナイーブなアプローチです。</p> + +<pre class="brush: js notranslate">if (!Math.hypot) Math.hypot = function() { + var y = 0, i = arguments.length, containsInfinity = false; + while (i--) { + var arg = arguments[i]; + if (arg === Infinity || arg === -Infinity) + containsInfinity = true + y += arg * arg + } + return containsInfinity ? Infinity : Math.sqrt(y) +} +</pre> + +<p>アンダーフローやオーバーフローを回避するポリフィルです。</p> + +<pre class="brush: js notranslate">if (!Math.hypot) Math.hypot = function () { + var max = 0; + var s = 0; + var containsInfinity = false; + for (var i = 0; i < arguments.length; ++i) { + var arg = Math.abs(Number(arguments[i])); + if (arg === Infinity) + containsInfinity = true + if (arg > max) { + s *= (max / arg) * (max / arg); + max = arg; + } + s += arg === 0 && max === 0 ? 0 : (arg / max) * (arg / max); + } + return containsInfinity ? Infinity : (max === 1 / 0 ? 1 / 0 : max * Math.sqrt(s)); +}; +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.hypot', 'Math.hypot')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.hypot")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.abs()")}}</li> + <li>{{jsxref("Math.pow()")}}</li> + <li>{{jsxref("Math.sqrt()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/imul/index.html b/files/ja/web/javascript/reference/global_objects/math/imul/index.html new file mode 100644 index 0000000000..8a3fae3981 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/imul/index.html @@ -0,0 +1,111 @@ +--- +title: Math.imul() +slug: Web/JavaScript/Reference/Global_Objects/Math/imul +tags: + - JavaScript + - Math + - Method + - Reference + - imul +translation_of: Web/JavaScript/Reference/Global_Objects/Math/imul +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.imul()</code></strong> 関数は、2つの引数で C 言語風の32ビット乗算を行った結果を返します。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-imul.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力してくださる場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">var <var>product</var> = Math.imul(<var>a</var>, <var>b</var>);</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>a</var></code></dt> + <dd>第一の数値。</dd> + <dt><code><var>b</var></code></dt> + <dd>第二の数値。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた引数で C 言語風の32ビット乗算を行った結果です。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>Math.imul()</code> で C 言語と同様のの意味を持った32ビット乗算を行うことができます。この機能は <a href="http://en.wikipedia.org/wiki/Emscripten">Emscripten</a> などのプロジェクトに有効です。</p> + +<p><code>imul()</code> は <code>Math</code> の静的メソッドなので、常に <code>Math.imul()</code> として使用し、自分で <code>Math</code> オブジェクトを生成してそのメソッドとして使用しないでください。 (<code>Math</code> にはコンストラクターがありません)。</p> + +<p>通常の JavaScript の浮動小数点数を imul で使用すると、性能が低下します。これは、乗算のために浮動小数点から整数に変換し、乗算された整数を浮動小数点に変換するというコストのかかる作業があるからです。 imul が存在する理由は、 (今のところ) たった1つの状況では imul の方が高速だからです。それは AsmJS です。 AsmJS は JIST オプティマイザーが JavaScript で内部整数をより簡単に実装できるようにします。内部的に整数として格納されている2つの数値を imul で乗算すること (これは AsmJS でのみ可能です) は、 Math.imul が現在のブラウザーで性能を発揮する可能性がある唯一の潜在的な状況です。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.imul" name="Using_Math.imul">Math.imul() の使用</h3> + +<pre class="brush: js notranslate">Math.imul(2, 4); // 8 +Math.imul(-1, 8); // -8 +Math.imul(-2, -2); // 4 +Math.imul(0xffffffff, 5); // -5 +Math.imul(0xfffffffe, 5); // -10 +</pre> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<p>これは次の関数でエミュレートすることができます。</p> + +<pre class="brush: js notranslate">if (!Math.imul) Math.imul = function(a, b) { + var aHi = (a >>> 16) & 0xffff; + var aLo = a & 0xffff; + var bHi = (b >>> 16) & 0xffff; + var bLo = b & 0xffff; + // the shift by 0 fixes the sign on the high part + // the final |0 converts the unsigned value into a signed value + return ((aLo * bLo) + (((aHi * bLo + aLo * bHi) << 16) >>> 0) | 0); +};</pre> + +<p>しかし、このポリフィルが使われるであろうブラウザーは、 JavaScript の内部整数型で最適化されておらず、すべての数値に浮動小数点を使用している可能性が高いため、次の関数の方が性能が高くなります。</p> + +<pre class="brush: js notranslate">if (!Math.imul) Math.imul = function(opA, opB) { + opB |= 0; // ensure that opB is an integer. opA will automatically be coerced. + // floating points give us 53 bits of precision to work with plus 1 sign bit + // automatically handled for our convienence: + // 1. 0x003fffff /*opA & 0x000fffff*/ * 0x7fffffff /*opB*/ = 0x1fffff7fc00001 + // 0x1fffff7fc00001 < Number.MAX_SAFE_INTEGER /*0x1fffffffffffff*/ + var result = (opA & 0x003fffff) * opB; + // 2. We can remove an integer coersion from the statement above because: + // 0x1fffff7fc00001 + 0xffc00000 = 0x1fffffff800001 + // 0x1fffffff800001 < Number.MAX_SAFE_INTEGER /*0x1fffffffffffff*/ + if (opA & 0xffc00000 /*!== 0*/) result += (opA & 0xffc00000) * opB |0; + return result |0; +};</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.imul', 'Math.imul')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.imul")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="http://en.wikipedia.org/wiki/Emscripten">Emscripten</a></li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/index.html b/files/ja/web/javascript/reference/global_objects/math/index.html new file mode 100644 index 0000000000..711c071a18 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/index.html @@ -0,0 +1,188 @@ +--- +title: Math +slug: Web/JavaScript/Reference/Global_Objects/Math +tags: + - JavaScript + - Math + - Namespace + - Reference + - 名前空間 +translation_of: Web/JavaScript/Reference/Global_Objects/Math +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math</code></strong> は、数学的な定数と関数を提供するプロパティとメソッドを持つ、組み込みのオブジェクトです。関数オブジェクトではありません。</p> + +<p><code>Math</code> は {{jsxref("Number")}} 型で動作します。 {{jsxref("BigInt")}} 型では動作しません。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p>他のグローバルオブジェクトと異なり、<code>Math</code> はコンストラクタではありません。<code>Math</code> オブジェクトのすべてのプロパティとメソッドは、静的です。円周率を表す定数πは、<code>Math.PI</code> として参照でき、正弦関数は、 <code>Math.sin(<var>x</var>)</code> として呼び出すことができます (ここでの <code><var>x</var></code> は、メソッドの引数です)。定数は、 JavaScript における実数での完全な精度で定義されています。</p> + +<div class="note"> +<p><strong>メモ:</strong> 多くの <code>Math</code> 関数の精度は<em>実装に依存します</em>。</p> + +<p>これは、ブラウザーごとに結果が異なる場合があることを意味し、同じ JavaScript エンジン上であっても、 OS やアーキテクチャが異なれば結果が異なる場合があります。</p> +</div> + +<h2 id="Static_properties" name="Static_properties">静的プロパティ</h2> + +<dl> + <dt>{{jsxref("Math.E")}}</dt> + <dd>ネイピア数 (オイラー数)。これは自然対数の底として用いられる数学定数で、約 <code>2.718</code> です。</dd> + <dt>{{jsxref("Math.LN2")}}</dt> + <dd><code>2</code> の自然対数。約 <code>0.693</code> です。</dd> + <dt>{{jsxref("Math.LN10")}}</dt> + <dd><code>10</code> の自然対数。約 <code>2.303</code> です。</dd> + <dt>{{jsxref("Math.LOG2E")}}</dt> + <dd>2 を底とした <code>E</code> の対数。約 <code>1.443</code> です。</dd> + <dt>{{jsxref("Math.LOG10E")}}</dt> + <dd>10 を底とした <code>E</code> の対数。約 <code>0.434</code> です。</dd> + <dt>{{jsxref("Math.PI")}}</dt> + <dd>円周率。約 <code>3.14159</code> です。</dd> + <dt>{{jsxref("Math.SQRT1_2")}}</dt> + <dd>½ の平方根 (または<sup>1</sup>/<sub>√2</sub> とひとしいすう)。約 <code>0.707</code> です。</dd> + <dt>{{jsxref("Math.SQRT2")}}</dt> + <dd><code>2</code> の平方根。約 <code>1.414</code> です。</dd> +</dl> + +<h2 id="Static_methods" name="Static_methods">静的メソッド</h2> + +<dl> + <dt>{{jsxref("Global_Objects/Math/abs", "Math.abs(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> の絶対値を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/acos", "Math.acos(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> のアークコサイン (逆余弦) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/acosh", "Math.acosh(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> のハイパーボリックアークコサイン (双曲線逆余弦) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/asin", "Math.asin(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> のアークサイン (逆正弦) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/asinh", "Math.asinh(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> のハイパーボリックアークサイン (双曲線逆正弦) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/atan", "Math.atan(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> のアークタンジェント (逆正接) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/atanh", "Math.atanh(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> のハイパーボリックアークタンジェント (双曲線逆正接) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/atan2", "Math.atan2(<var>y</var>, <var>x</var>)")}}</dt> + <dd>引数で指定されたの比率のアークタンジェント (逆正接) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/cbrt", "Math.cbrt(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> の立方根を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/ceil", "Math.ceil(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> 以上の最小の整数を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/clz32", "Math.clz32(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> を 2 進数 32 ビット整数値で表した数の先頭の 0 の個数を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/cos", "Math.cos(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> のコサイン (余弦) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/cosh", "Math.cosh(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> のハイパーボリックコサイン (双曲線余弦) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/exp", "Math.exp(<var>x</var>)")}}</dt> + <dd><code>E<var><sup>x</sup></var></code> を返します。ここで <code><var>x</var></code> は引数であり、 <code>E</code> はオイラー定数 (<code>2.718</code>…, 自然対数の低) です。</dd> + <dt>{{jsxref("Global_Objects/Math/expm1", "Math.expm1(<var>x</var>)")}}</dt> + <dd><code>exp(<var>x</var>)</code> から <code>1</code> を引いた値を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/floor", "Math.floor(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> 以下の最大の整数を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/fround", "Math.fround(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> に近似の <a href="https://ja.wikipedia.org/wiki/%E5%8D%98%E7%B2%BE%E5%BA%A6%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0" title="WikiPedia ページへのリンク">単精度</a> 浮動小数点数を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/hypot", "Math.hypot([<var>x</var>[, <var>y</var>[, …]]])")}}</dt> + <dd>引数の二乗和の平方根を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/imul", "Math.imul(<var>x</var>, <var>y</var>)")}}</dt> + <dd><code><var>x</var></code> と <code><var>y</var></code> の 32 ビット乗算の結果を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/log", "Math.log(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> の自然対数 (㏒<sub>e</sub>) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/log1p", "Math.log1p(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> の <code>1 + x</code> の自然対数 (㏒<sub>e</sub>) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/log10", "Math.log10(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> の 10 を底とした対数 (log<sub>10</sub>) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/log2", "Math.log2(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> の 2 を底とした対数 (log<sub>2</sub>) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/max", "Math.max([<var>x</var>[, <var>y</var>[, …]]])")}}</dt> + <dd>引数として与えた複数の値の中で最大の値を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/min", "Math.min([<var>x</var>[, <var>y</var>[, …]]])")}}</dt> + <dd>引数として与えた複数の値の中で最小の値を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/pow", "Math.pow(<var>x</var>, <var>y</var>)")}}</dt> + <dd><code><var>x</var></code> を <code><var>y</var></code> で累乗した値、すなわち <code><var>x</var><var><sup>y</sup></var></code> を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/random", "Math.random()")}}</dt> + <dd><code>0</code> 以上 <code>1</code> 未満の疑似乱数を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/round", "Math.round(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> を四捨五入して、近似の整数を返す</dd> + <dt>{{jsxref("Global_Objects/Math/sign", "Math.sign(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> の符号を返す。<code><var>x</var></code> が正、負、 0 のいずれであるかを返す。</dd> + <dt>{{jsxref("Global_Objects/Math/sin", "Math.sin(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> のサイン (正弦) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/sinh", "Math.sinh(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> のハイパーボリックサイン (双曲線正弦) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/sqrt", "Math.sqrt(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> の平方根を返す</dd> + <dt>{{jsxref("Global_Objects/Math/tan", "Math.tan(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> のタンジェント (正接) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/tanh", "Math.tanh(<var>x</var>)")}}</dt> + <dd><code><var>x</var></code> のハイパーボリックサイン (双曲線正接) を返す。</dd> + <dt>{{jsxref("Global_Objects/Math/trunc", "Math.trunc(<var>x</var>)")}}</dt> + <dd>数値 <code><var>x</var></code> の小数点以下を削除し、整数の部分を返す。</dd> +</dl> + +<h2 id="例">例</h2> + +<h3 id="Converting_between_degrees_and_radians" name="Converting_between_degrees_and_radians">角度とラジアンの間の変換</h3> + +<p>三角関数 (<code>sin()</code>, <code>cos()</code>, <code>tan()</code>, <code>asin()</code>, <code>acos()</code>, <code>atan()</code>, <code>atan2()</code>) は、角度に<em>ラジアン</em>を要求したり、返したりします。</p> + +<p>人間は角度で考える傾向があり、 (CSS 変形関数など) 一部の関数角度を受け付けますので、手軽に両者の間を変換する関数を用意しておくといいでしょう。</p> + +<pre class="brush: js notranslate">function degToRad(degrees) { + return degrees * (Math.PI / 180); +}; + +function radToDeg(rad) { + return rad / (Math.PI / 180); +};</pre> + +<h3 id="Calculating_the_height_of_an_equalateral_triangle" name="Calculating_the_height_of_an_equalateral_triangle">二等辺三角形の高さの計算</h3> + +<p>二等辺三角形の高さを計算したい場合、側辺の長さが 100 であるとわかっている場合は、<em>隣の角に正接を乗じた長さは、反対側と等しくなる</em>という数式を使用することができます。</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/14829/trigonometry.png" style="display: block; margin: 0 auto;"></p> + +<p>JavaScript では、次のようにして実現することができます。</p> + +<pre class="brush: js notranslate">50 * Math.tan(degToRad(60)).</pre> + +<p><code>degToRad()</code> 関数を使用して60度をラジアンに変換しています。これは {{jsxref("Math.tan()")}} がラジアンの入力値を要求するからです。</p> + +<h3 id="Returning_a_random_integer_between_two_bounds" name="Returning_a_random_integer_between_two_bounds">2つの値の間にある整数の乱数を返す</h3> + +<p>これは {{jsxref("Math.random()")}} と {{jsxref("Math.floor()")}} の組み合わせで実現できます。</p> + +<pre class="brush: js notranslate">function random(min, max) { + const num = Math.floor(Math.random() * (max - min + 1)) + min; + return num; +} + +random(1, 10);</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math-object', 'Math')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Number")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/ln10/index.html b/files/ja/web/javascript/reference/global_objects/math/ln10/index.html new file mode 100644 index 0000000000..033ee18067 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/ln10/index.html @@ -0,0 +1,67 @@ +--- +title: Math.LN10 +slug: Web/JavaScript/Reference/Global_Objects/Math/LN10 +tags: + - JavaScript + - Math + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/LN10 +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.LN10</code></strong> プロパティは 10 の自然対数、およそ 2.302 を表します。</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mi>Math.LN10</mi></mstyle><mo>=</mo><mo lspace="0em" rspace="0em">ln</mo><mo stretchy="false">(</mo><mn>10</mn><mo stretchy="false">)</mo><mo>≈</mo><mn>2.302</mn></mrow><annotation encoding="TeX">\mathtt{\mi{Math.LN10}} = \ln(10) \approx 2.302</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-ln10.html","shorter")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>LN10</code> は <code>Math</code> オブジェクトの静的プロパティなので、 <code>Math</code> オブジェクトを生成してプロパティとして使用するのではなく、常に <code>Math.LN10</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.LN10" name="Using_Math.LN10">Math.LN10 の使用</h3> + +<p>以下の関数は、10 の自然対数を返します。</p> + +<pre class="brush:js notranslate">function getNatLog10() { + return Math.LN10; +} + +getNatLog10(); // 2.302585092994046 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.ln10', 'Math.LN10')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.LN10")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log10()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/ln2/index.html b/files/ja/web/javascript/reference/global_objects/math/ln2/index.html new file mode 100644 index 0000000000..120d3d051b --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/ln2/index.html @@ -0,0 +1,67 @@ +--- +title: Math.LN2 +slug: Web/JavaScript/Reference/Global_Objects/Math/LN2 +tags: + - JavaScript + - Math + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/LN2 +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.LN2</code></strong> プロパティは2の自然対数、およそ0.693を表します。</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mi>Math.LN2</mi></mstyle><mo>=</mo><mo lspace="0em" rspace="0em">ln</mo><mo stretchy="false">(</mo><mn>2</mn><mo stretchy="false">)</mo><mo>≈</mo><mn>0.693</mn></mrow><annotation encoding="TeX">\mathtt{\mi{Math.LN2}} = \ln(2) \approx 0.693</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-ln2.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>LN2</code> は <code>Math</code> オブジェクトの静的プロパティなので、 <code>Math</code> オブジェクトを生成してプロパティとして使用するのではなく、常に <code>Math.LN2</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.LN2" name="Using_Math.LN2">Math.LN2 の使用</h3> + +<p>以下の関数は、2の自然対数を返します。</p> + +<pre class="brush:js notranslate">function getNatLog2() { + return Math.LN2; +} + +getNatLog2(); // 0.6931471805599453 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.ln2', 'Math.LN2')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.LN2")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log2()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/log/index.html b/files/ja/web/javascript/reference/global_objects/math/log/index.html new file mode 100644 index 0000000000..f19a35a38d --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/log/index.html @@ -0,0 +1,98 @@ +--- +title: Math.log() +slug: Web/JavaScript/Reference/Global_Objects/Math/log +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/log +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.log()</code></strong> 関数は、 ({{jsxref("Math.E", "e")}} を底とした) 数値の自然対数を返します。</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>></mo><mn>0</mn><mo>,</mo><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.log</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mo lspace="0em" rspace="0em">ln</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext>the unique</mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mspace width="thickmathspace"></mspace><mtext>such that</mtext><mspace width="thickmathspace"></mspace><msup><mi>e</mi><mi>y</mi></msup><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\forall x > 0, \mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{the unique} \; y \; \text{such that} \; e^y = x</annotation></semantics></math></p> + +<p>JavaScript の <strong><code>Math.log()</code></strong> 関数は、数学の <em>ln(x)</em> と同等です。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-log.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.log(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>({{jsxref("Math.E", "e")}} を底とした) 与えられた数値の自然対数です。数値が負の数であった場合、 {{jsxref("NaN")}} が返されます。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code><var>x</var></code> の値が 0 であった場合、返値は常に {{jsxref("Number.NEGATIVE_INFINITY", "-Infinity")}} です。</p> + +<p><code><var>x</var></code> の値が 0 未満であった場合、返値は常に {{jsxref("NaN")}} です。</p> + +<p><code>log()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.log()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<p>2 または 10 の自然対数が必要な場合は、定数の {{jsxref("Math.LN2")}} または {{jsxref("Math.LN10")}} を使用してください。 2 や 10 を底とした対数が必要な場合は、 {{jsxref("Math.log2()")}} または {{jsxref("Math.log10()")}} を使用してください。他の数を底とした対数が必要な場合は、下記の例にあるように Math.log(x) / Math.log(otherBase) を使用してください。事前に 1 / Math.log(otherBase) を計算しておいた方がいいかもしれません。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.log" name="Using_Math.log">Math.log() の使用</h3> + +<pre class="brush: js notranslate">Math.log(-1); // NaN, out of range +Math.log(0); // -Infinity +Math.log(1); // 0 +Math.log(10); // 2.302585092994046 +</pre> + +<h3 id="Using_Math.log_with_a_different_base" name="Using_Math.log_with_a_different_base">様々な底による Math.log() の使用</h3> + +<p>以下の関数は、 <code>x</code> を底とした <code>y</code> の対数を返します (すなわち <math><semantics><mrow><msub><mo>log</mo><mi>x</mi></msub><mi>y</mi></mrow><annotation encoding="TeX">\log_x y</annotation></semantics></math>)。</p> + +<pre class="brush: js notranslate">function getBaseLog(x, y) { + return Math.log(y) / Math.log(x); +} +</pre> + +<p><code>getBaseLog(10, 1000)</code> を実行すると、実際の答えが 3 であるのに対し、浮動小数点の丸め処理により近似値の <code>2.9999999999999996</code> を返します。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.log', 'Math.log')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.log")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log1p()")}}</li> + <li>{{jsxref("Math.log10()")}}</li> + <li>{{jsxref("Math.log2()")}}</li> + <li>{{jsxref("Math.pow()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/log10/index.html b/files/ja/web/javascript/reference/global_objects/math/log10/index.html new file mode 100644 index 0000000000..cc9aca7ba5 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/log10/index.html @@ -0,0 +1,94 @@ +--- +title: Math.log10() +slug: Web/JavaScript/Reference/Global_Objects/Math/log10 +tags: + - ECMAScript 2015 + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/log10 +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.log10()</code></strong> 関数は、数値の 10 を底とした対数を返します。</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>></mo><mn>0</mn><mo>,</mo><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.log10</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><msub><mo lspace="0em" rspace="0em">log</mo><mn>10</mn></msub><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext>the unique</mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mspace width="thickmathspace"></mspace><mtext>such that</mtext><mspace width="thickmathspace"></mspace><msup><mn>10</mn><mi>y</mi></msup><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\forall x > 0, \mathtt{\operatorname{Math.log10}(x)} = \log_10(x) = \text{the unique} \; y \; \text{such that} \; 10^y = x</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-log10.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.log10(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた数値の 10 を底とした対数です。数値が負の数であった場合、 {{jsxref("NaN")}} が返されます。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code><var>x</var></code> の値が 0 未満であった場合、返値は常に {{jsxref("NaN")}} です。</p> + +<p><code>log10()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.log10()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<p>この関数は Math.log(x) / Math.log(10) と同等です。 log10(e) には定数 {{jsxref("Math.LOG10E")}} を使用してください (これは 1 / {{jsxref("Math.LN10")}} です。)</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.log10" name="Using_Math.log10">Math.log10() の使用</h3> + +<pre class="brush: js notranslate">Math.log10(2); // 0.3010299956639812 +Math.log10(1); // 0 +Math.log10(0); // -Infinity +Math.log10(-2); // NaN +Math.log10(100000); // 5 +</pre> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<p>これは以下の関数でエミュレートできます。</p> + +<pre class="brush: js notranslate">Math.log10 = Math.log10 || function(x) { + return Math.log(x) * Math.LOG10E; +}; +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.log10', 'Math.log10')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.log10")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log1p()")}}</li> + <li>{{jsxref("Math.log2()")}}</li> + <li>{{jsxref("Math.pow()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/log10e/index.html b/files/ja/web/javascript/reference/global_objects/math/log10e/index.html new file mode 100644 index 0000000000..724ae98b0c --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/log10e/index.html @@ -0,0 +1,67 @@ +--- +title: Math.LOG10E +slug: Web/JavaScript/Reference/Global_Objects/Math/LOG10E +tags: + - JavaScript + - Math + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/LOG10E +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.LOG10E</code></strong> プロパティは 10 を底とした e の対数、約 0.434 を表します。</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mi>Math.LOG10E</mi></mstyle><mo>=</mo><msub><mo lspace="0em" rspace="0em">log</mo><mn>10</mn></msub><mo stretchy="false">(</mo><mi>e</mi><mo stretchy="false">)</mo><mo>≈</mo><mn>0.434</mn></mrow><annotation encoding="TeX">\mathtt{\mi{Math.LOG10E}} = \log_10(e) \approx 0.434</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-log10e.html", "shorter")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>LOG10E</code> は <code>Math</code> オブジェクトの静的プロパティなので、 <code>Math</code> オブジェクトを生成してプロパティとして使用するのではなく、常に <code>Math.LOG10E</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.LOG10E" name="Using_Math.LOG10E">Math.LOG10E の使用</h3> + +<p>以下の関数は、10を底とした e の対数を返します。</p> + +<pre class="brush:js notranslate">function getLog10e() { + return Math.LOG10E; +} + +getLog10e(); // 0.4342944819032518 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.log10e', 'Math.LOG10E')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.LOG10E")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log10()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/log1p/index.html b/files/ja/web/javascript/reference/global_objects/math/log1p/index.html new file mode 100644 index 0000000000..83b5350ab2 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/log1p/index.html @@ -0,0 +1,104 @@ +--- +title: Math.log1p() +slug: Web/JavaScript/Reference/Global_Objects/Math/log1p +tags: + - ECMAScript 2015 + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/log1p +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.log1p()</code></strong> 関数は、 1 + 数値の ({{jsxref("Math.E", "e")}} を底とする) 自然対数を返します。</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>></mo><mo>-</mo><mn>1</mn><mo>,</mo><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.log1p</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><mo lspace="0em" rspace="0em">ln</mo><mo stretchy="false">(</mo><mn>1</mn><mo>+</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding="TeX">\forall x > -1, \mathtt{\operatorname{Math.log1p}(x)} = \ln(1 + x)</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-log1p.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.log1p(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>1 + 与えられた数値の ({{jsxref("Math.E", "e")}} を底とした) 自然対数です。数値が <strong>-1</strong> よりも小さかった場合は {{jsxref("NaN")}} が返されます。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code><var>x</var></code> の値が非常に小さかった場合、 1 を加えると有効精度が減少します。 JS で使用する倍精度浮動小数点型の精度は 15 桁です。 1 + 1e-15 = 1.000000000000001 ですが、 1 + 1e-16 = 1.000000000000000 となり、 15 桁を超えた桁は四捨五入されるため、正確に 1.0 となります。</p> + +<p>log(1 + x) を計算すると、 x が小さければ、 x にとても近い答えになるはずです (これが「自然」対数と呼ばれる所以です)。 Math.log(1 + 1.1111111111e-15) を計算すると、 1.1111111111e-15 に近い答えが得られるはずです。しかし、 1.00000000000000111022 の対数を取ることになります (四捨五入は二進数なので、時に醜い結果になることがあります) ので、答えは 1.11022...e-15 となり、正しい数字は 3 桁だけです。もし、代わりに Math.log1p(1.1111111111e-15) を計算した場合は、もっとずっと正確な答えである 1.1111111110999995e-15 が得られ、 15 桁の正しい数字が得られます (この場合は実際には 16 桁です)。</p> + +<p><code><var>x</var></code> の値が -1 未満であった場合、返値は常に {{jsxref("NaN")}} です。</p> + +<p><code>log1p()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.log1p()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<p>これは次の関数でエミュレートできます。</p> + +<pre class="brush: js notranslate">Math.log1p = Math.log1p || function(x) { + x = Number(x); + if (x < -1 || x !== x) + return NaN; + if (x === 0 || x === Infinity) + return x; + + var nearX = (x + 1) - 1; + + return nearX === 0 ? x : x * (Math.log(x + 1) / nearX); +}; +</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.log1p" name="Using_Math.log1p">Math.log1p() の使用</h3> + +<pre class="brush: js notranslate">Math.log1p(1); // 0.6931471805599453 +Math.log1p(0); // 0 +Math.log1p(-1); // -Infinity +Math.log1p(-2); // NaN +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.log1p', 'Math.log1p')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.log1p")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.expm1()")}}</li> + <li>{{jsxref("Math.log10()")}}</li> + <li>{{jsxref("Math.log2()")}}</li> + <li>{{jsxref("Math.pow()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/log2/index.html b/files/ja/web/javascript/reference/global_objects/math/log2/index.html new file mode 100644 index 0000000000..b7fadcb09e --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/log2/index.html @@ -0,0 +1,95 @@ +--- +title: Math.log2() +slug: Web/JavaScript/Reference/Global_Objects/Math/log2 +tags: + - ECMAScript 2015 + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/log2 +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.log2()</code></strong> 関数は、数値の 2 を底とした対数を返します。</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>></mo><mn>0</mn><mo>,</mo><mstyle mathvariant="monospace"><mrow><mo lspace="0em" rspace="thinmathspace">Math.log2</mo><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><msub><mo lspace="0em" rspace="0em">log</mo><mn>2</mn></msub><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mtext>the unique</mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mspace width="thickmathspace"></mspace><mtext>such that</mtext><mspace width="thickmathspace"></mspace><msup><mn>2</mn><mi>y</mi></msup><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\forall x > 0, \mathtt{\operatorname{Math.log2}(x)} = \log_2(x) = \text{the unique} \; y \; \text{such that} \; 2^y = x</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-log2.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.log2(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた数値の 2 を底とした対数です。数値が負の数であった場合、 {{jsxref("NaN")}} が返されます。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code><var>x</var></code> の値が 0 未満であった場合、返値は常に {{jsxref("NaN")}} です。</p> + +<p><code>log2()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.log2()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<p>この関数は Math.log(x) / Math.log(2) と同等です。 log2(e) には定数 {{jsxref("Math.LOG2E")}} を使用してください (これは 1 / {{jsxref("Math.LN2")}} です。)</p> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<p>このポリフィルは <code>Math.log2</code> 関数をエミュレートします。なお、これは入力値によっては不正確な値を返すので (1 << 29 など)、ビットマスクで使用するときは {{jsxref("Math.round()")}} で囲んでください。</p> + +<pre class="brush: js notranslate">if (!Math.log2) Math.log2 = function(x) { + return Math.log(x) * Math.LOG2E; +}; +</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.log2" name="Using_Math.log2">Math.log2() の使用</h3> + +<pre class="brush: js notranslate">Math.log2(3); // 1.584962500721156 +Math.log2(2); // 1 +Math.log2(1); // 0 +Math.log2(0); // -Infinity +Math.log2(-2); // NaN +Math.log2(1024); // 10 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.log2', 'Math.log2')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.log2")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log10()")}}</li> + <li>{{jsxref("Math.log1p()")}}</li> + <li>{{jsxref("Math.pow()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/log2e/index.html b/files/ja/web/javascript/reference/global_objects/math/log2e/index.html new file mode 100644 index 0000000000..b5842c8e01 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/log2e/index.html @@ -0,0 +1,67 @@ +--- +title: Math.LOG2E +slug: Web/JavaScript/Reference/Global_Objects/Math/LOG2E +tags: + - JavaScript + - Math + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/LOG2E +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.LOG2E</code></strong> プロパティは 2 を底とした e の対数、約 1.442 を表します。</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mi>Math.LOG2E</mi></mstyle><mo>=</mo><msub><mo lspace="0em" rspace="0em">log</mo><mn>2</mn></msub><mo stretchy="false">(</mo><mi>e</mi><mo stretchy="false">)</mo><mo>≈</mo><mn>1.442</mn></mrow><annotation encoding="TeX">\mathtt{\mi{Math.LOG2E}} = \log_2(e) \approx 1.442</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-log2e.html","shorter")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>LOG2E</code> は <code>Math</code> オブジェクトの静的プロパティなので、 <code>Math</code> オブジェクトを生成してプロパティとして使用するのではなく、常に <code>Math.LOG2E</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.LOG2E" name="Using_Math.LOG2E">Math.LOG2E の使用</h3> + +<p>以下の関数は、2を底とした e の対数を返します。</p> + +<pre class="brush: js notranslate">function getLog2e() { + return Math.LOG2E; +} + +getLog2e(); // 1.4426950408889634 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.log2e', 'Math.LOG2E')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.LOG2E")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.log2()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/max/index.html b/files/ja/web/javascript/reference/global_objects/math/max/index.html new file mode 100644 index 0000000000..02e962e9b4 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/max/index.html @@ -0,0 +1,100 @@ +--- +title: Math.max() +slug: Web/JavaScript/Reference/Global_Objects/Math/max +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/max +--- +<div>{{JSRef}}</div> + +<p><span class="seoSummary"><strong><code>Math.max()</code></strong> 関数は、入力引数として与えられた0個以上の数値のうち最大の数を返します。</span></p> + +<div>{{EmbedInteractiveExample("pages/js/math-max.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力してくださる場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.max([<var>value1</var>[, <var>value2</var>[, ...]]])</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>value1</var>, <var>value2</var>, ...</code></dt> + <dd>数値です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた数のうちの最大の値です。何れかの引数が <code>NaN</code> であったり、数値に変換することができなかった場合は {{jsxref("NaN")}} を返します。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>Math</code> はコンストラクターではないので、 <code>max()</code> は <code>Math</code> の静的メソッドです (常に <code>Math</code> インスタンスのメソッドとしてではなく、 <code>Math.min()</code> として使用してください)。</p> + +<p>-{{jsxref("Infinity")}} は他のすべての数値よりも小さいため初期の比較対象となっており、そのため引数が与えられなかった場合は -{{jsxref("Infinity")}} が返されます。</p> + +<p>何れかの引数が <code>NaN</code> であったり、数値に変換することができなかった場合、結果は {{jsxref("NaN")}} になります。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.max" name="Using_Math.max">Math.max() の使用</h3> + +<pre class="brush: js notranslate">Math.max(10, 20); // 20 +Math.max(-10, -20); // -10 +Math.max(-10, 20); // 20 +</pre> + +<h3 id="Getting_the_maximum_element_of_an_array" name="Getting_the_maximum_element_of_an_array">配列の最大値の取得</h3> + +<p>{{jsxref("Array.prototype.reduce", "Array.reduce()")}} を使用して、数値の配列の中にある最大値の要素を、それぞれの値を比較して探し出すことができます。</p> + +<pre class="brush: js notranslate">var arr = [1,2,3]; +var max = arr.reduce(function(a, b) { + return Math.max(a, b); +}); +</pre> + +<p>次の関数では {{jsxref("Function.prototype.apply()")}} を使用して配列の最大値を取得します。 <code>getMaxOfArray([1, 2, 3])</code> は <code>Math.max(1, 2, 3)</code> と同等ですが、 <code>getMaxOfArray()</code> はプログラム的に構築された配列に使用することができます。これは比較的要素が少ない配列に対して使用してください。</p> + +<pre class="brush: js notranslate">function getMaxOfArray(numArray) { + return Math.max.apply(null, numArray); +}</pre> + +<p>新しい<a href="/ja/docs/Web/JavaScript/Reference/Operators/Spread_operator">スプレッド演算子</a>で、 <code>apply</code> によって配列の最大値を得る方法をより短く書くことができます。</p> + +<pre class="brush: js notranslate">var arr = [1, 2, 3]; +var max = Math.max(...arr); +</pre> + +<p>しかし、スプレッド構文の (<code>...</code>) と <code>apply</code> のどちらも、配列に膨大な要素があった場合は、配列の要素を関数の引数として渡そうとするため、失敗したり、誤った結果を返したりすることがあります。詳しくは <a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#Using_apply_and_built-in_functions">apply をビルトイン関数と共に利用する</a>を参照してください。 <code>reduce</code> の方法はこの問題が発生しません。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.max', 'Math.max')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.max")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.min()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/min/index.html b/files/ja/web/javascript/reference/global_objects/math/min/index.html new file mode 100644 index 0000000000..5648f0cc26 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/min/index.html @@ -0,0 +1,102 @@ +--- +title: Math.min() +slug: Web/JavaScript/Reference/Global_Objects/Math/min +tags: + - JavaScript + - Lowest Number + - Lowest Value + - Math + - Method + - Minimum + - Reference + - Smallest + - Smallest Number + - Smallest Value + - min +translation_of: Web/JavaScript/Reference/Global_Objects/Math/min +--- +<div>{{JSRef}}</div> + +<p><span class="seoSummary"><strong><code>Math.min()</code></strong> は静的関数で、引数で渡されたもののうち最小の値を返します。または引数のいずれかが数値以外で、数値に変換できない場合は {{jsxref("NaN")}} を返します。</span></p> + +<div>{{EmbedInteractiveExample("pages/js/math-min.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力してくださる場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.min([<var>value1</var>[, <var>value2</var>[, ...]]])</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>value1</var>, <var>value2</var>, ...</code></dt> + <dd>最小値が選択して返される 0 個以上の数値です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた数のうちの最小の値です。1つ以上の引数を数値に変換することができなかった場合は {{jsxref("NaN")}} を返します。引数が与えられなかった場合の結果は {{jsxref("Infinity")}} です。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>min()</code> は <code>Math</code> の静的メソッドなので、常に <code>Math.min()</code> として使用し、自分で <code>Math</code> オブジェクトを生成してそのメソッドとして使用しないでください。 (<code>Math</code> にはコンストラクターがありません)。</p> + +<p>引数が与えられなかった場合の結果は {{jsxref("Infinity")}} です。</p> + +<p>1 つでも数値に変換できない引数が渡された場合、結果は {{jsxref("NaN")}} になります。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.min" name="Using_Math.min">Math.min() の使用</h3> + +<p>変数 <code>x</code> と <code>y</code> の小さい方を <code>z</code> に代入します。</p> + +<pre class="brush: js notranslate">var x = 10, y = -20; +var z = Math.min(x, y); +</pre> + +<h3 id="Clipping_a_value_with_Math.min" name="Clipping_a_value_with_Math.min">Math.min() で値をクリップする</h3> + +<p><code>Math.min()</code> は、次のようにしきい値以下に値をクリップするために用いられることがあります。</p> + +<pre class="brush: js notranslate">var x = f(foo); + +if (x > boundary) { + x = boundary; +} +</pre> + +<p>これは次のように書くことができます。</p> + +<pre class="brush: js notranslate">var x = Math.min(f(foo), boundary); +</pre> + +<p>{{jsxref("Math.max()")}} を用いれば、反対に、しきい値以上に値をクリップすることができます。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.min', 'Math.min')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.min")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.max()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/pi/index.html b/files/ja/web/javascript/reference/global_objects/math/pi/index.html new file mode 100644 index 0000000000..ff22d4850f --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/pi/index.html @@ -0,0 +1,65 @@ +--- +title: Math.PI +slug: Web/JavaScript/Reference/Global_Objects/Math/PI +tags: + - JavaScript + - Math + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/PI +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.SQRT2</code></strong> プロパティは、円周と直径の比率、およそ 3.14159 を表します。</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mi>Math.PI</mi></mstyle><mo>=</mo><mi>π</mi><mo>≈</mo><mn>3.14159</mn></mrow><annotation encoding="TeX">\mathtt{\mi{Math.PI}} = \pi \approx 3.14159</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-pi.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>PI</code> は <code>Math</code> オブジェクトの静的プロパティなので、 <code>Math</code> オブジェクトを生成してプロパティとして使用するのではなく、常に <code>Math.PI</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.PI" name="Using_Math.PI">Math.PI の使用</h3> + +<p>次の関数は <code>Math.PI</code> を使用して、指定された半径を持つ円の円周を計算します。</p> + +<pre class="brush: js notranslate">function calculateCircumference(radius) { + return Math.PI * (radius + radius); +} + +calculateCircumference(1); // 6.283185307179586 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Specification</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.pi', 'Math.PI')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.PI")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/pow/index.html b/files/ja/web/javascript/reference/global_objects/math/pow/index.html new file mode 100644 index 0000000000..ad8bd26f3c --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/pow/index.html @@ -0,0 +1,97 @@ +--- +title: Math.pow() +slug: Web/JavaScript/Reference/Global_Objects/Math/pow +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/pow +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.pow()</code></strong> 関数は <code><var>base</var></code> を <code><var>exponent</var></code> 乗した値、つまり、<code>base<sup>exponent</sup></code> の値を返します。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-pow.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力してくださる場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.pow(<var>base</var>, <var>exponent</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>base</var></code></dt> + <dd>底となる数です。</dd> + <dt><code><var>exponent</var></code></dt> + <dd><code><var>base</var></code> を累乗する指数です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>指定された低を指定された指数だけ累乗したものを表す数値です。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><strong><code>Math.pow()</code></strong> 関数は <code><var>base</var></code> の <code><var>exponent</var></code> 乗、すなわち <code>base<sup>exponent</sup></code> を返します。 <code><var>base</var></code> と <code><var>exponent</var></code> は10進数の数値です。</p> + +<p><code>pow()</code> は <code>Math</code> の静的メソッドなので、常に <code>Math.pow()</code> として使用し、自分で <code>Math</code> オブジェクトを生成してそのメソッドとして使用しないでください。 (<code>Math</code> にはコンストラクターがありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.pow" name="Using_Math.pow">Math.pow() の使用</h3> + +<pre class="brush: js notranslate">// 単純 +Math.pow(7, 2); // 49 +Math.pow(7, 3); // 343 +Math.pow(2, 10); // 1024 +// 小数のべき乗 +Math.pow(4, 0.5); // 2 (4 の平方根) +Math.pow(8, 1/3); // 2 (8 の立方根) +Math.pow(2, 0.5); // 1.4142135623730951 (2 の平方根) +Math.pow(2, 1/3); // 1.2599210498948732 (2 の立方根) +// 負の数のべき乗 +Math.pow(7, -2); // 0.02040816326530612 (1/49) +Math.pow(8, -1/3); // 0.5 +// 負の数の底 +Math.pow(-7, 2); // 49 (2乗は正の数) +Math.pow(-7, 3); // -343 (3乗は負の数) +Math.pow(-7, 0.5); // NaN (負の数には実数の平方根がない) +// due to "even" and "odd" roots laying close to each other, +// and limits in the floating number precision, +// negative bases with fractional exponents always return NaN +Math.pow(-7, 1/3); // NaN +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.pow', 'Math.pow')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.pow")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.cbrt()")}}</li> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.sqrt()")}}</li> + <li><a href="/ja/docs/Web/JavaScript/Reference/Operators/Exponentiation">べき乗演算子</a></li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/random/index.html b/files/ja/web/javascript/reference/global_objects/math/random/index.html new file mode 100644 index 0000000000..18d04e917a --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/random/index.html @@ -0,0 +1,101 @@ +--- +title: Math.random() +slug: Web/JavaScript/Reference/Global_Objects/Math/random +tags: + - JavaScript + - Math + - Math.random() + - Method + - Random + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/random +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.random()</code></strong>関数は、 0 以上 1 未満 (0 は含むが、 1 は含まない) の範囲で浮動小数点の擬似乱数を返します。その範囲ではほぼ均一な分布で、ユーザーは範囲の拡大をすることができます。実装側で乱数生成アルゴリズムの初期シードを選択します。ユーザーが初期シードを選択、またはリセットすることは出来ません。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-random.html")}}</div> + +<div class="note"> +<p><code>Math.random()</code> の提供する乱数は、暗号に使用可能な安全性を備えて<em>いません</em>。セキュリティに関連する目的では使用しないでください。代わりに Web Crypto API (より具体的には {{domxref("Crypto.getRandomValues", "window.crypto.getRandomValues()")}} メソッド) を使用してください。</p> +</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.random()</pre> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p><code>0</code> (含む) から 1 (含まない) までの擬似乱数である浮動小数点数です。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<p>JavaScript における数値は、IEEE 754 浮動小数点での round-to-nearest-even を行うため、以下の関数の値域が ( <code>Math.random()</code> 自体の値域が正しくても) 厳密ではないことに注意してください。非常に大きい境界値 (2<sup>53</sup> 以上) のうち<em>極めて</em>稀な数値で、通常なら返されないはずの上限値が出力されてしまうことがあり得ます。</p> + +<h3 id="Getting_a_random_number_between_0_inclusive_and_1_exclusive" name="Getting_a_random_number_between_0_inclusive_and_1_exclusive">0 以上 1 未満の乱数を得る</h3> + +<pre class="brush: js notranslate">function getRandom() { + return Math.random(); +} +</pre> + +<h3 id="Getting_a_random_number_between_two_values" name="Getting_a_random_number_between_two_values">2 つの値の間の乱数を得る</h3> + +<p>この例は指定した値の間の乱数を返します。返値は <code>min</code> 以上、 <code>max</code> 未満です。</p> + +<pre class="brush: js notranslate">function getRandomArbitrary(min, max) { + return Math.random() * (max - min) + min; +} +</pre> + +<h3 id="Getting_a_random_integer_between_two_values" name="Getting_a_random_integer_between_two_values">2 つの値の間のランダムな整数を得る</h3> + +<p>この例は指定した値の間のランダムな整数を返します。返値は <code>min</code> 以上 (<code>min</code> が整数でない場合、 <code>min</code> より大きい次の整数以上)、 <code>max</code> 未満です。</p> + +<pre class="brush: js notranslate">function getRandomInt(min, max) { + min = Math.ceil(min); + max = Math.floor(max); + return Math.floor(Math.random() * (max - min) + min); //The maximum is exclusive and the minimum is inclusive +} +</pre> + +<div class="note"> +<p><code>Math.round()</code> を使う方が魅力的かもしれませんが、その場合は乱数が不均一な分布に従うことになるので、ユーザーのニーズに合わないかもしれません。</p> +</div> + +<h3 id="Getting_a_random_integer_between_two_values_inclusive" name="Getting_a_random_integer_between_two_values_inclusive">包括的に 2 つの値の間のランダムな整数を得る</h3> + +<p>上記の <code>getRandomInt()</code> 関数が返す乱数の範囲は <code>min</code> を含みますが、<code>max</code> は除外されます。 <code>min</code> も <code>max</code> も範囲に含まれた乱数を生成したいなら、以下の <code>getRandomIntInclusive()</code> 関数を使うといいでしょう。</p> + +<pre class="brush: js notranslate">function getRandomIntInclusive(min, max) { + min = Math.ceil(min); + max = Math.floor(max); + return Math.floor(Math.random() * (max - min + 1) + min); //The maximum is inclusive and the minimum is inclusive +}</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.random', 'Math.random')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.random")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{domxref("Crypto.getRandomValues", "window.crypto.getRandomValues()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/round/index.html b/files/ja/web/javascript/reference/global_objects/math/round/index.html new file mode 100644 index 0000000000..f5504c21af --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/round/index.html @@ -0,0 +1,82 @@ +--- +title: Math.round() +slug: Web/JavaScript/Reference/Global_Objects/Math/round +tags: + - JavaScript + - Math + - Method + - Number + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/round +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.round()</code></strong> 関数は、引数として与えた数を四捨五入して、もっとも近似の整数を返します。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-round.html")}}</div> + +<p class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.round(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた値をもっとも近似の整数に四捨五入した値。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p>引数の小数部分が 0.5 以上の場合、その引数は、次に大きい整数に切り上げられます。引数の小数部分が 0.5 未満の場合、その引数は、次に小さい整数に切り下げられます。小数部分が 0.5 である場合は、正の無限大の方向で次の整数に丸められます。<strong>これは多くの言語の <code>round()</code> 関数と異なることに注意してください。この場合はたいてい、<em>0 から遠ざかる</em>次の整数に丸められます</strong> (小数部分が 0.5 である負の値を四捨五入する場合に、結果が変わります)。</p> + +<p><code>round()</code> は <code>Math</code> オブジェクトの静的なメソッドなので、自ら生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に、<code>Math.round()</code> として使用するようにしてください (<code>Math</code> のコンストラクターはありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_round" name="Using_round">round の使用</h3> + +<pre class="brush: js notranslate">Math.round( 20.49); // 20 +Math.round( 20.5 ); // 21 +Math.round( 42 ); // 42 +Math.round(-20.5 ); // -20 +Math.round(-20.51); // -21</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.round', 'Math.round')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("javascript.builtins.Math.round")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Number.toPrecision()")}}</li> + <li>{{jsxref("Number.toFixed()")}}</li> + <li>{{jsxref("Math.abs()")}}</li> + <li>{{jsxref("Math.ceil()")}}</li> + <li>{{jsxref("Math.floor()")}}</li> + <li>{{jsxref("Math.sign()")}}</li> + <li>{{jsxref("Math.trunc()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/sign/index.html b/files/ja/web/javascript/reference/global_objects/math/sign/index.html new file mode 100644 index 0000000000..22df8ab790 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/sign/index.html @@ -0,0 +1,113 @@ +--- +title: Math.sign() +slug: Web/JavaScript/Reference/Global_Objects/Math/sign +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sign +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.sign()</code></strong> 関数は、引数として渡された数値の符号が<strong>正</strong>か<strong>負</strong>かを表す +/- 1 を返します。 <code>Math.sign()</code> に渡された数が 0 であれば、 +/- 0 を返します。なお、数値が正である場合、明示的な (+) は返され<strong>ません</strong>。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-sign.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力してくださる場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.sign(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値です。引数が <code>number</code> ではない場合は、暗黙に変換されます。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた引数の符号を表す数値です。</p> + +<ul> + <li>引数が正の値の場合は、 <code>1</code> を返します。</li> + <li>引数が負の値の場合は、 <code>-1</code> を返します。</li> + <li>引数が正のゼロの場合は、 <code>0</code> を返します。</li> + <li>引数が負のゼロの場合は、 <code>-0</code> を返します。</li> + <li>それ以外は {{jsxref("NaN")}} を返します。</li> +</ul> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>sign()</code> は <code>Math</code> の静的メソッドなので、常に <code>Math.sign()</code> として使用し、自分で <code>Math</code> オブジェクトを生成してそのメソッドとして使用しないでください。 (<code>Math</code> にはコンストラクターがありません)。</p> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<pre class="brush: js notranslate">if (!Math.sign) { + Math.sign = function(x) { + // If x is NaN, the result is NaN. + // If x is -0, the result is -0. + // If x is +0, the result is +0. + // If x is negative and not -0, the result is -1. + // If x is positive and not +0, the result is +1. + return ((x > 0) - (x < 0)) || +x; + // A more aesthetic pseudo-representation: + // + // ( (x > 0) ? 1 : 0 ) // if x is positive, then positive one + // + // else (because you can't be both - and +) + // ( (x < 0) ? -1 : 0 ) // if x is negative, then negative one + // || // if x is 0, -0, or NaN, or not a number, + // +x // then the result will be x, (or) if x is + // // not a number, then x converts to number + }; +} +</pre> + +<p>上記のポリフィルでは <code>(x > 0)</code> と <code>(x < 0)</code> の数値を互いに減算することで、真偽値から数値型へ強制的に型変換されるため、追加の型強制は必要ありません。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.sign" name="Using_Math.sign">Math.sign() の使用</h3> + +<pre class="brush: js notranslate">Math.sign(3); // 1 +Math.sign(-3); // -1 +Math.sign('-3'); // -1 +Math.sign(0); // 0 +Math.sign(-0); // -0 +Math.sign(NaN); // NaN +Math.sign('foo'); // NaN +Math.sign(); // NaN +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.sign', 'Math.sign')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.sign")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.abs()")}}</li> + <li>{{jsxref("Math.ceil()")}}</li> + <li>{{jsxref("Math.floor()")}}</li> + <li>{{jsxref("Math.round()")}}</li> + <li>{{jsxref("Math.trunc()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/sin/index.html b/files/ja/web/javascript/reference/global_objects/math/sin/index.html new file mode 100644 index 0000000000..60cf4b07ad --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/sin/index.html @@ -0,0 +1,80 @@ +--- +title: Math.sin() +slug: Web/JavaScript/Reference/Global_Objects/Math/sin +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sin +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.sin()</code></strong> 関数は、引数として与えた数の正弦 (サイン) を返します。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-sin.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.sin(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値 (ラジアンで指定)。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>指定された数値の正弦 (サイン) です。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>Math.sin()</code> メソッドはラジアンで指定された角度の正弦 (サイン) を表す -1 から 1 までの範囲の数値を表します。</p> + +<p><code>sin()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.sin()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.sin" name="Using_Math.sin">Math.sin() の使用</h3> + +<pre class="brush: js notranslate">Math.sin(0); // 0 +Math.sin(1); // 0.8414709848078965 + +Math.sin(Math.PI / 2); // 1 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.sin', 'Math.sin')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.sin")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.acos()")}}</li> + <li>{{jsxref("Math.asin()")}}</li> + <li>{{jsxref("Math.atan()")}}</li> + <li>{{jsxref("Math.atan2()")}}</li> + <li>{{jsxref("Math.cos()")}}</li> + <li>{{jsxref("Math.tan()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/sinh/index.html b/files/ja/web/javascript/reference/global_objects/math/sinh/index.html new file mode 100644 index 0000000000..e01c47f217 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/sinh/index.html @@ -0,0 +1,95 @@ +--- +title: Math.sinh() +slug: Web/JavaScript/Reference/Global_Objects/Math/sinh +tags: + - ECMAScript 2015 + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sinh +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.sinh()</code></strong> 関数は、引数として与えた数の双曲線正弦 (ハイパーボリックサイン) を返します。これは{{jsxref("Math.E", "定数 e", "", 1)}} を使用して次のように表すことができます。</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mo lspace="0em" rspace="thinmathspace">Math.sinh(x)</mo></mstyle><mo>=</mo><mfrac><mrow><msup><mi>e</mi><mi>x</mi></msup><mo>-</mo><msup><mi>e</mi><mrow><mo>-</mo><mi>x</mi></mrow></msup></mrow><mn>2</mn></mfrac></mrow><annotation encoding="TeX">\mathtt{\operatorname{Math.sinh(x)}} = \frac{e^x - e^{-x}}{2}</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-sinh.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.sinh(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>指定された数値の双曲線正弦 (ハイパーボリックサイン) です。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>sinh()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.sinh()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<p>これは {{jsxref("Math.exp()")}} 関数を使用して次のようにエミュレートできます。</p> + +<pre class="brush: js notranslate">Math.sinh = Math.sinh || function(x) { + return (Math.exp(x) - Math.exp(-x)) / 2; +} +</pre> + +<p>または {{jsxref("Math.exp()")}} 関数を一度だけ呼び出すようにすると、次のようになります。</p> + +<pre class="brush: js notranslate">Math.sinh = Math.sinh || function(x) { + var y = Math.exp(x); + return (y - 1 / y) / 2; +} +</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.sinh" name="Using_Math.sinh">Using Math.sinh() の使用</h3> + +<pre class="brush: js notranslate">Math.sinh(0); // 0 +Math.sinh(1); // 1.1752011936438014 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.sinh', 'Math.sinh')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.sinh")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.acosh()")}}</li> + <li>{{jsxref("Math.asinh()")}}</li> + <li>{{jsxref("Math.atanh()")}}</li> + <li>{{jsxref("Math.cosh()")}}</li> + <li>{{jsxref("Math.tanh()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/sqrt/index.html b/files/ja/web/javascript/reference/global_objects/math/sqrt/index.html new file mode 100644 index 0000000000..2172c163fc --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/sqrt/index.html @@ -0,0 +1,83 @@ +--- +title: Math.sqrt() +slug: Web/JavaScript/Reference/Global_Objects/Math/sqrt +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sqrt +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.sqrt()</code></strong> 関数は、ある数の平方根を返します。すなわち、</p> + +<p><math display="block"><semantics><mrow><mo>∀</mo><mi>x</mi><mo>≥</mo><mn>0</mn><mo>,</mo><mstyle mathvariant="monospace"><mrow><mi>M</mi><mi>a</mi><mi>t</mi><mi>h</mi><mo>.</mo><mi>s</mi><mi>q</mi><mi>r</mi><mi>t</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow></mstyle><mo>=</mo><msqrt><mi>x</mi></msqrt><mo>=</mo><mtext>the unique</mtext><mspace width="thickmathspace"></mspace><mi>y</mi><mo>≥</mo><mn>0</mn><mspace width="thickmathspace"></mspace><mtext>such that</mtext><mspace width="thickmathspace"></mspace><msup><mi>y</mi><mn>2</mn></msup><mo>=</mo><mi>x</mi></mrow><annotation encoding="TeX">\forall x \geq 0, \mathtt{Math.sqrt(x)} = \sqrt{x} = \text{the unique} \; y \geq 0 \; \text{such that} \; y^2 = x</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-sqrt.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.sqrt(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた数値の平方根です。数値が負の場合、 {{jsxref("NaN")}} を返します。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code><var>x</var></code> の値が負の数であった場合、 <code>Math.sqrt()</code> は {{jsxref("NaN")}} を返します。</p> + +<p><code>sqrt()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.sqrt()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.sqrt" name="Using_Math.sqrt">Math.sqrt() の使用</h3> + +<pre class="brush: js notranslate">Math.sqrt(9); // 3 +Math.sqrt(2); // 1.414213562373095 + +Math.sqrt(1); // 1 +Math.sqrt(0); // 0 +Math.sqrt(-1); // NaN +Math.sqrt(-0); // -0 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.sqrt', 'Math.sqrt')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.sqrt")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.cbrt()")}}</li> + <li>{{jsxref("Math.exp()")}}</li> + <li>{{jsxref("Math.log()")}}</li> + <li>{{jsxref("Math.pow()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/sqrt1_2/index.html b/files/ja/web/javascript/reference/global_objects/math/sqrt1_2/index.html new file mode 100644 index 0000000000..91232e0cce --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/sqrt1_2/index.html @@ -0,0 +1,66 @@ +--- +title: Math.SQRT1_2 +slug: Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2 +tags: + - JavaScript + - Math + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2 +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.SQRT2</code></strong> プロパティは、 1/2 の平方根、約 0.707 を表します。</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mi>Math.SQRT1_2</mi></mstyle><mo>=</mo><msqrt><mfrac><mn>1</mn><mn>2</mn></mfrac></msqrt><mo>=</mo><mfrac><mn>1</mn><msqrt><mn>2</mn></msqrt></mfrac><mo>≈</mo><mn>0.707</mn></mrow><annotation encoding="TeX">\mathtt{\mi{Math.SQRT1_2}} = \sqrt{\frac{1}{2}} = \frac{1}{\sqrt{2}} \approx 0.707</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-sqrt1_2.html", "shorter")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>SQRT1_2</code> は <code>Math</code> オブジェクトの静的プロパティなので、 <code>Math</code> オブジェクトを生成してプロパティとして使用するのではなく、常に <code>Math.SQRT1_2</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.SQRT1_2" name="Using_Math.SQRT1_2">Math.SQRT1_2 の使用</h3> + +<p>以下の関数は 1 を 2 の平方根で割った値を返します。</p> + +<pre class="brush:js notranslate">function getRoot1_2() { + return Math.SQRT1_2; +} + +getRoot1_2(); // 0.7071067811865476 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.sqrt1_2', 'Math.SQRT1_2')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.SQRT1_2")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.pow()")}}</li> + <li>{{jsxref("Math.sqrt()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/sqrt2/index.html b/files/ja/web/javascript/reference/global_objects/math/sqrt2/index.html new file mode 100644 index 0000000000..a2796d9df3 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/sqrt2/index.html @@ -0,0 +1,66 @@ +--- +title: Math.SQRT2 +slug: Web/JavaScript/Reference/Global_Objects/Math/SQRT2 +tags: + - JavaScript + - Math + - Property + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/SQRT2 +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.SQRT2</code></strong> プロパティは、 2 の平方根、約 1.414 を表します。</p> + +<p><math display="block"><semantics><mrow><mstyle mathvariant="monospace"><mi>Math.SQRT2</mi></mstyle><mo>=</mo><msqrt><mn>2</mn></msqrt><mo>≈</mo><mn>1.414</mn></mrow><annotation encoding="TeX">\mathtt{\mi{Math.SQRT2}} = \sqrt{2} \approx 1.414</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-sqrt2.html", "shorter")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>SQRT2</code> は <code>Math</code> オブジェクトの静的プロパティなので、 <code>Math</code> オブジェクトを生成してプロパティとして使用するのではなく、常に <code>Math.SQRT2</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.SQRT2" name="Using_Math.SQRT2">Math.SQRT2 の使用</h3> + +<p>以下の関数は 2 の平方根を返します。</p> + +<pre class="brush: js notranslate">function getRoot2() { + return Math.SQRT2; +} + +getRoot2(); // 1.4142135623730951 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.sqrt2', 'Math.SQRT2')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.SQRT2")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.pow()")}}</li> + <li>{{jsxref("Math.sqrt()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/tan/index.html b/files/ja/web/javascript/reference/global_objects/math/tan/index.html new file mode 100644 index 0000000000..c971e495c4 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/tan/index.html @@ -0,0 +1,85 @@ +--- +title: Math.tan() +slug: Web/JavaScript/Reference/Global_Objects/Math/tan +tags: + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/tan +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.tan()</code></strong> 関数は、数値のタンジェントを返します。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-tan.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate"><code>Math.tan(<var>x</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値です。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>与えられた数値のタンジェントです。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>Math.tan()</code> メソッドは、ある角度のタンジェントを表す数値を返します。</p> + +<p><code>tan()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.tan()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.atan" name="Using_Math.atan()">Math.tan() の使用</h3> + +<pre class="brush: js notranslate">Math.tan(1); // 1.5574077246549023 +</pre> + +<p><code>Math.tan()</code> 関数はラジアンを受け付けますが、角度で使用したほうが簡単な場合が多いので、次の関数は角度の値を受け付け、それをラジアンに変換してタンジェントを返します。</p> + +<pre class="brush: js notranslate">function getTanDeg(deg) { + var rad = deg * Math.PI/180; + return Math.tan(rad); +} +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.tan', 'Math.tan')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.tan")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.acos()")}}</li> + <li>{{jsxref("Math.asin()")}}</li> + <li>{{jsxref("Math.atan()")}}</li> + <li>{{jsxref("Math.atan2()")}}</li> + <li>{{jsxref("Math.cos()")}}</li> + <li>{{jsxref("Math.sin()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/tanh/index.html b/files/ja/web/javascript/reference/global_objects/math/tanh/index.html new file mode 100644 index 0000000000..be7e567764 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/tanh/index.html @@ -0,0 +1,87 @@ +--- +title: Math.tanh() +slug: Web/JavaScript/Reference/Global_Objects/Math/tanh +tags: + - ECMAScript 2015 + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/tanh +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.tanh()</code></strong> 関数は、引数として与えた数のハイパーボリックタンジェントを返します。すなわち</p> + +<p><math display="block"><semantics><mrow><mo lspace="0em" rspace="0em">tanh</mo><mi>x</mi><mo>=</mo><mfrac><mrow><mo lspace="0em" rspace="0em">sinh</mo><mi>x</mi></mrow><mrow><mo lspace="0em" rspace="0em">cosh</mo><mi>x</mi></mrow></mfrac><mo>=</mo><mfrac><mrow><msup><mi>e</mi><mi>x</mi></msup><mo>-</mo><msup><mi>e</mi><mrow><mo>-</mo><mi>x</mi></mrow></msup></mrow><mrow><msup><mi>e</mi><mi>x</mi></msup><mo>+</mo><msup><mi>e</mi><mrow><mo>-</mo><mi>x</mi></mrow></msup></mrow></mfrac><mo>=</mo><mfrac><mrow><msup><mi>e</mi><mrow><mn>2</mn><mi>x</mi></mrow></msup><mo>-</mo><mn>1</mn></mrow><mrow><msup><mi>e</mi><mrow><mn>2</mn><mi>x</mi></mrow></msup><mo>+</mo><mn>1</mn></mrow></mfrac></mrow><annotation encoding="TeX">\tanh x = \frac{\sinh x}{\cosh x} = \frac {e^x - e^{-x}} {e^x + e^{-x}} = \frac{e^{2x} - 1}{e^{2x}+1}</annotation></semantics></math></p> + +<div>{{EmbedInteractiveExample("pages/js/math-tanh.html")}}</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.tanh(<var>x</var>)</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>指定された数値のハイパーボリックタンジェントです。</p> + +<h2 id="Description" name="Description">解説</h2> + +<p><code>tanh()</code> は <code>Math</code> の静的メソッドであるため、生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に <code>Math.tanh()</code> として使用するようにしてください (<code>Math</code> はコンストラクターではありません)。</p> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<p>{{jsxref("Math.exp()")}} 関数の助けを借りて、エミュレートできます。:</p> + +<pre class="brush: js notranslate">Math.tanh = Math.tanh || function(x){ + var a = Math.exp(+x), b = Math.exp(-x); + return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (a + b); +} +</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.tanh" name="Using_Math.tanh">Math.tanh() の使用</h3> + +<pre class="brush: js notranslate">Math.tanh(0); // 0 +Math.tanh(Infinity); // 1 +Math.tanh(1); // 0.7615941559557649 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.tanh', 'Math.tanh')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.tanh")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.acosh()")}}</li> + <li>{{jsxref("Math.asinh()")}}</li> + <li>{{jsxref("Math.atanh()")}}</li> + <li>{{jsxref("Math.cosh()")}}</li> + <li>{{jsxref("Math.sinh()")}}</li> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/math/trunc/index.html b/files/ja/web/javascript/reference/global_objects/math/trunc/index.html new file mode 100644 index 0000000000..780f6b7f19 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/math/trunc/index.html @@ -0,0 +1,120 @@ +--- +title: Math.trunc() +slug: Web/JavaScript/Reference/Global_Objects/Math/trunc +tags: + - ECMAScript 2015 + - JavaScript + - Math + - Method + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Math/trunc +--- +<div>{{JSRef}}</div> + +<p><strong><code>Math.trunc()</code></strong> 関数は、引数として与えた数の小数部の桁を取り除くことによって整数部を返します。</p> + +<div>{{EmbedInteractiveExample("pages/js/math-trunc.html")}}</div> + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Math.trunc(<var>x</var>) +</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>x</var></code></dt> + <dd>数値。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>The integer part of the given number.</p> + +<h2 id="Description" name="Description">解説</h2> + +<p>他の3 つの <code>Math</code> メソッド、 {{jsxref("Math.floor()")}}、 {{jsxref("Math.ceil()")}}、 {{jsxref("Math.round()")}} とは異なり、 <code>Math.trunc()</code> の動作は非常にシンプルで分かりやすいです。引数が正の数または負の数であるかに関わらず、ただ小数点とそれ以降にある数字を<em>切り捨て</em>ます。</p> + +<p>このメソッドに渡された引数は暗黙のうちに数値型に変換されることに注意して下さい。</p> + +<p><code>trunc()</code> は <code>Math</code> オブジェクトの静的なメソッドなので、自ら生成した <code>Math</code> オブジェクトのメソッドとしてではなく、常に、<code>Math.trunc()</code> として使用してください (<code>Math</code> オブジェクトにはコンストラクタがありません)。</p> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<pre class="brush: js notranslate">if (!Math.trunc) { + Math.trunc = function(v) { + v = +v; + if (!isFinite(v)) return v; + + return (v - v % 1) || (v < 0 ? -0 : v === 0 ? v : 0); + + // returns: + // 0 -> 0 + // -0 -> -0 + // 0.2 -> 0 + // -0.2 -> -0 + // 0.7 -> 0 + // -0.7 -> -0 + // Infinity -> Infinity + // -Infinity -> -Infinity + // NaN -> NaN + // null -> 0 + }; +} +</pre> + +<p>または</p> + +<pre class="brush: js notranslate">if (!Math.trunc) { + Math.trunc = function (v) { + return v < 0 ? Math.ceil(v) : Math.floor(v); + }; +} +</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_Math.trunc" name="Using_Math.trunc">Math.trunc() の使用</h3> + +<pre class="brush: js notranslate">Math.trunc(13.37); // 13 +Math.trunc(42.84); // 42 +Math.trunc(0.123); // 0 +Math.trunc(-0.123); // -0 +Math.trunc('-1.123'); // -1 +Math.trunc(NaN); // NaN +Math.trunc('foo'); // NaN +Math.trunc(); // NaN +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-math.trunc', 'Math.trunc')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.Math.trunc")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{jsxref("Math.abs()")}}</li> + <li>{{jsxref("Math.ceil()")}}</li> + <li>{{jsxref("Math.floor()")}}</li> + <li>{{jsxref("Math.round()")}}</li> + <li>{{jsxref("Math.sign()")}}</li> +</ul> |