diff options
Diffstat (limited to 'files/zh-cn/web/javascript/reference/global_objects/math/sign/index.html')
-rw-r--r-- | files/zh-cn/web/javascript/reference/global_objects/math/sign/index.html | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/files/zh-cn/web/javascript/reference/global_objects/math/sign/index.html b/files/zh-cn/web/javascript/reference/global_objects/math/sign/index.html new file mode 100644 index 0000000000..ca7678c9f0 --- /dev/null +++ b/files/zh-cn/web/javascript/reference/global_objects/math/sign/index.html @@ -0,0 +1,152 @@ +--- +title: Math.sign() +slug: Web/JavaScript/Reference/Global_Objects/Math/sign +tags: + - JavaScript + - Math + - Math.sign() +translation_of: Web/JavaScript/Reference/Global_Objects/Math/sign +--- +<div>{{JSRef}}</div> + +<div> </div> + +<p><strong><code>Math.sign()</code></strong> 函数返回一个数字的符号, 指示数字是正数,负数还是零。</p> + +<h2 id="Syntax" name="Syntax">语法</h2> + +<pre class="syntaxbox"><code>Math.sign(<em>x</em>);</code></pre> + +<h3 id="Parameters" name="Parameters">参数</h3> + +<dl> + <dt><code>x</code></dt> + <dd>任意数字.</dd> +</dl> + +<h2 id="Description" name="Description">描述</h2> + +<p>因为 <code>sign </code>是 <code>Math </code>的一个静态方法,所以你应该使用 Math.sign() ,而不是作为你创建的一个Math对象的一种方法 (Math不是一个构造函数)。</p> + +<p>而不是作为您创建的Math对象的一种方法(Math不是构造函数)。</p> + +<p>此函数共有5种返回值, 分别是<strong> 1, -1, 0, -0, NaN.</strong> 代表的各是<strong>正数, 负数, 正零, 负零, NaN</strong>。</p> + +<p>传入该函数的参数会被<strong>隐式转换</strong>成数字类型。</p> + +<h2 id="Examples" name="Examples">示例</h2> + +<h3 id="使用Math.sign()">使用Math.sign()</h3> + +<pre class="brush:js">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="Compatibility" name="Compatibility">Polyfill</h2> + +<pre class="brush: js language-js"><code class="language-js"><span class="keyword token">function</span> <span class="function token">sign<span class="punctuation token">(</span></span>x<span class="punctuation token">)</span> <span class="punctuation token">{</span> + x <span class="operator token">=</span> <span class="operator token">+</span>x<span class="comment token"> ;// convert to a number +</span> <span class="keyword token">if</span> <span class="punctuation token">(</span>x <span class="operator token">===</span> <span class="number token">0</span> <span class="operator token">||</span> <span class="function token">isNaN<span class="punctuation token">(</span></span>x<span class="punctuation token">)</span><span class="punctuation token">)</span> + <span class="keyword token">return</span> x; + <span class="keyword token">return</span> x <span class="operator token">></span> <span class="number token">0</span> <span class="operator token">?</span> <span class="number token">1</span> <span class="punctuation token">:</span> <span class="operator token">-</span><span class="number token">1;</span> +<span class="punctuation token">}</span></code></pre> + +<p> </p> + +<pre><code>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. + x = +x; // convert to a number + if (x === 0 || isNaN(x)) { + return Number(x); + } + return x > 0 ? 1 : -1; + }; +}</code></pre> + +<p> </p> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-math.sign', 'Math.sign')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Initial definition.</td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<p>{{ CompatibilityTable() }}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Basic support</td> + <td>38</td> + <td>{{CompatGeckoDesktop("25")}}</td> + <td>{{CompatNo}}</td> + <td>25</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile("25")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">相关链接</h2> + +<ul> + <li>{{jsxref("Global_Objects/Math", "Math")}} 对象</li> +</ul> |