diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
commit | 33058f2b292b3a581333bdfb21b8f671898c5060 (patch) | |
tree | 51c3e392513ec574331b2d3f85c394445ea803c6 /files/zh-cn/web/javascript/reference/global_objects/number/index.html | |
parent | 8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff) | |
download | translated-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.html | 195 |
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> |