aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/javascript/reference/global_objects/number/index.html
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
commit33058f2b292b3a581333bdfb21b8f671898c5060 (patch)
tree51c3e392513ec574331b2d3f85c394445ea803c6 /files/zh-cn/web/javascript/reference/global_objects/number/index.html
parent8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff)
downloadtranslated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip
initial commit
Diffstat (limited to 'files/zh-cn/web/javascript/reference/global_objects/number/index.html')
-rw-r--r--files/zh-cn/web/javascript/reference/global_objects/number/index.html195
1 files changed, 195 insertions, 0 deletions
diff --git a/files/zh-cn/web/javascript/reference/global_objects/number/index.html b/files/zh-cn/web/javascript/reference/global_objects/number/index.html
new file mode 100644
index 0000000000..9e20355b94
--- /dev/null
+++ b/files/zh-cn/web/javascript/reference/global_objects/number/index.html
@@ -0,0 +1,195 @@
+---
+title: Number
+slug: Web/JavaScript/Reference/Global_Objects/Number
+tags:
+ - JavaScript
+ - Number
+ - Reference
+translation_of: Web/JavaScript/Reference/Global_Objects/Number
+---
+<div>{{JSRef}}</div>
+
+<p> JavaScript 的 <strong><code>Number</code></strong> 对象是经过封装的能让你处理数字值的对象。<code>Number</code> 对象由 <code>Number()</code> 构造器创建。</p>
+
+<p>JavaScript的<code>Number</code>类型为<a href="https://en.wikipedia.org/wiki/Floating-point_arithmetic">双精度IEEE 754 64位浮点</a>类型。</p>
+
+<p>最近出了stage3{{jsxref("BigInt")}} <font><font>任意精度数字类型,已经进入stage3规范</font></font></p>
+
+<h2 id="Syntax" name="Syntax">语法</h2>
+
+<pre>new Number(<em>value</em>);
+var <em>a</em> = new Number('123'); // a === 123 is false
+var <em>b</em> = Number('123'); // b === 123 is true
+<em>a</em> instanceof Number; // is true
+<em>b</em> instanceof Number; // is false</pre>
+
+<h3 id="Parameters" name="Parameters">参数</h3>
+
+<dl>
+ <dt><code>value</code></dt>
+ <dd>被创建对象的数字值。</dd>
+</dl>
+
+<h2 id="Description" name="Description">描述</h2>
+
+<p><code>Number</code> 对象主要用于:</p>
+
+<ul>
+ <li>如果参数无法被转换为数字,则返回 {{jsxref("NaN")}}。</li>
+ <li>在非构造器上下文中 (如:没有 {{jsxref("Operators/new", "new")}} 操作符),<code>Number</code> 能被用来执行类型转换。</li>
+</ul>
+
+<h2 id="Properties" name="Properties">属性</h2>
+
+<dl>
+ <dt>{{jsxref("Number.EPSILON")}}</dt>
+ <dd>两个可表示(representable)数之间的最小间隔。</dd>
+ <dt>{{jsxref("Number.MAX_SAFE_INTEGER")}}</dt>
+ <dd>JavaScript 中最大的安全整数 (<code>2<sup>53</sup> - 1</code>)。</dd>
+ <dt>{{jsxref("Number.MAX_VALUE")}}</dt>
+ <dd>能表示的最大正数。最小的负数是 <code>-MAX_VALUE</code>。</dd>
+ <dt>{{jsxref("Number.MIN_SAFE_INTEGER")}}</dt>
+ <dd>JavaScript 中最小的安全整数 (<code>-(2<sup>53</sup> - 1)</code>).</dd>
+ <dt>{{jsxref("Number.MIN_VALUE")}}</dt>
+ <dd>能表示的最小正数即最接近 0 的正数 (实际上不会变成 0)。最大的负数是 <code>-MIN_VALUE</code>。</dd>
+ <dt>{{jsxref("Number.NaN")}}</dt>
+ <dd>特殊的“非数字”值。</dd>
+ <dt>{{jsxref("Number.NEGATIVE_INFINITY")}}</dt>
+ <dd>特殊的负无穷大值,在溢出时返回该值。</dd>
+ <dt>{{jsxref("Number.POSITIVE_INFINITY")}}</dt>
+ <dd>特殊的正无穷大值,在溢出时返回该值。</dd>
+ <dt>{{jsxref("Number.prototype")}}</dt>
+ <dd>Number 对象上允许的额外属性。</dd>
+</dl>
+
+<h2 id="Methods" name="Methods">方法</h2>
+
+<dl>
+ <dt>{{jsxref("Number.isNaN()")}}</dt>
+ <dd>确定传递的值是否是 NaN。</dd>
+ <dt>{{jsxref("Number.isFinite()")}}</dt>
+ <dd>确定传递的值类型及本身是否是有限数。</dd>
+ <dt>{{jsxref("Number.isInteger()")}}</dt>
+ <dd>确定传递的值类型是“number”,且是整数。</dd>
+ <dt>{{jsxref("Number.isSafeInteger()")}}</dt>
+ <dd>确定传递的值是否为安全整数 ( -<code>(2<sup>53</sup> - 1)</code> 至 <code>2<sup>53</sup> - 1之间</code>)。</dd>
+ <dt>{{jsxref("Number.toInteger()")}} {{obsolete_inline}}</dt>
+ <dd>计算传递的值并将其转换为整数 (或无穷大)。</dd>
+</dl>
+
+<div>
+<dl>
+ <dt>{{jsxref("Number.parseFloat()")}}</dt>
+ <dd>和全局对象 {{jsxref("parseFloat", "parseFloat()")}} 一样。</dd>
+ <dt>{{jsxref("Number.parseInt()")}}</dt>
+ <dd>和全局对象 {{jsxref("parseInt", "parseInt()")}} 一样。</dd>
+</dl>
+</div>
+
+<h2 id="Number_instances" name="Number_instances"><code>Number</code> 实例</h2>
+
+<p>所有 <code>Number</code> 实例都继承自 {{jsxref("Number.prototype")}}。<code>被修改的 Number</code> 构造器的原型对象对全部 <code>Number</code> 实例都生效。</p>
+
+<h3 id="Methods_of_number_instance" name="Methods_of_number_instance">方法</h3>
+
+<div>{{page('/zh-CN/docs/JavaScript/Reference/Global_Objects/Number/prototype', 'Methods')}}</div>
+
+<h2 id="Examples" name="Examples">示例</h2>
+
+<h3 id="Example_Using_the_Number_object_to_assign_values_to_numeric_variables" name="Example:_Using_the_Number_object_to_assign_values_to_numeric_variables">使用 Number 对象给数字变量赋值</h3>
+
+<p>下例使用 <code>Number</code> 对象的属性给几个数字变量赋值:</p>
+
+<pre class="brush: js">var biggestNum = Number.MAX_VALUE;
+var smallestNum = Number.MIN_VALUE;
+var infiniteNum = Number.POSITIVE_INFINITY;
+var negInfiniteNum = Number.NEGATIVE_INFINITY;
+var notANum = Number.NaN;
+</pre>
+
+<h3 id="整数类型的范围">整数类型的范围</h3>
+
+<p>JavaScript 能够准确表示的整数范围在<code>-2^53</code>到<code>2^53</code>之间(不含两个端点),超过这个范围,无法精确表示这个整数。 (详情请参阅 ECMAScript standard, chapter <em><a href="https://www.ecma-international.org/ecma-262/#sec-ecmascript-language-types-number-type">6.1.6 The Number Type</a></em>):</p>
+
+<pre class="brush: js">var biggestInt = Number.MAX_SAFE_INTEGER;
+//9007199254740991
+var smallestInt = Number.MIN_SAFE_INTEGER;
+//-9007199254740991</pre>
+
+<p>在解析序列化的JSON时,如果JSON解析器将它们强制转换为Number类型,那么超出此范围的整数值可能会被破坏。在工作中使用{{jsxref("String")}} 类型代替,是一个可行的解决方案。</p>
+
+<h3 id="Example_Using_Number_to_convert_a_Date_object" name="Example:_Using_Number_to_convert_a_Date_object">使用 <code>Number</code> 转换 <code>Date</code> 对象</h3>
+
+<p>下例使用 Number 作为函数来转换 <code>Date</code> 对象为数字值:</p>
+
+<pre class="brush: js">var d = new Date("December 17, 1995 03:24:00");
+print(Number(d));
+</pre>
+
+<p>这将输出 "819199440000"。</p>
+
+<h3 id="转换数字字符串为数字">转换数字字符串为数字</h3>
+
+<pre class="brush: js" dir="rtl">Number('123') // 123
+Number('12.3') // 12.3
+<code>Number('12.00') // 12</code>
+Number('123e-1') // 12.3
+Number('') // 0
+Number(null) // 0
+Number('0x11') // 17
+Number('0b11') // 3
+Number('0o11') // 9
+Number('foo') // NaN
+Number('100a') // NaN
+Number('-Infinity') //-Infinity</pre>
+
+<h2 id="Specifications">Specifications</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('ES1')}}</td>
+ <td>{{Spec2('ES1')}}</td>
+ <td>初始定义。 实现于 JavaScript 1.1.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES5.1', '#sec-15.7', 'Number')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-number-objects', 'Number')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td>新增了方法和属性: {{jsxref("Number.EPSILON", "EPSILON")}}, {{jsxref("Number.isFinite", "isFinite")}}, {{jsxref("Number.isInteger", "isInteger")}}, {{jsxref("Number.isNaN", "isNaN")}}, {{jsxref("Number.parseFloat", "parseFloat")}}, {{jsxref("Number.parseInt", "parseInt")}}</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-number-objects', 'Number')}}</td>
+ <td>{{Spec2('ESDraft')}}</td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">浏览器兼容性</h2>
+
+<div id="compat-mobile">
+<div class="hidden">
+<p>The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>and send us a pull request.</p>
+</div>
+
+<p>{{Compat("javascript.builtins.Number")}}</p>
+</div>
+
+<h2 id="See_also" name="See_also">参阅</h2>
+
+<ul>
+ <li>{{jsxref("NaN")}}</li>
+ <li>全局对象 {{jsxref("Math")}} </li>
+ <li>Integers with arbitrary precision: {{jsxref("BigInt")}}</li>
+ <li><a href="https://medium.com/@maximus.koretskyi/javascripts-number-type-8d59199db1b6#.9whwe88tz">Number type in details</a></li>
+</ul>