mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2026-02-26 17:11:20 +08:00
语法高亮,滚动条美化,设置页面调整
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
<article id="wikiArticle">
|
||||
<p>在JavaScript中,<code>Number</code> 可以准确表达的最大数字是2<sup>53</sup>,比2<sup>53</sup>大的所有数字可以使用<code>BigInt</code>表达。</p>
|
||||
<h2 id="语法">语法</h2>
|
||||
<pre class="brush: js">BigInt(value);
|
||||
</pre>
|
||||
<pre><code class="language-javascript">BigInt(value);
|
||||
</code></pre>
|
||||
<h3 id="参数">参数</h3>
|
||||
<dl>
|
||||
<dt><code>value</code></dt>
|
||||
@@ -15,13 +15,13 @@
|
||||
</dl>
|
||||
<h2 id="描述">描述</h2>
|
||||
<p>可以这样定义一个 <code>BigInt</code> 变量:在一个整数字面量后面加 <code>n</code>,如:<code>10n</code>,或者调用函数<code>BigInt()</code>。</p>
|
||||
<pre class="brush: js">const theBiggestInt = 9007199254740991n;
|
||||
<pre><code class="language-javascript">const theBiggestInt = 9007199254740991n;
|
||||
|
||||
const alsoHuge = BigInt(9007199254740991);
|
||||
// ↪ 9007199254740991n
|
||||
|
||||
const hugeButString = BigInt('9007199254740991');
|
||||
// ↪ 9007199254740991n</pre>
|
||||
// ↪ 9007199254740991n</code></pre>
|
||||
<p>它在某些方面类似于 <a href="Reference/Global_Objects/Number" title="JavaScript 的 Number 对象是经过封装的能让你处理数字值的对象。Number 对象由 Number() 构造器创建。"><code>Number</code></a> ,但是也有几个关键的不同点:不能和 <a href="Reference/Global_Objects/Math" title="Math 是一个内置对象, 它具有数学常数和函数的属性和方法。不是一个函数对象。"><code>Math</code></a> 对象中的方法一起使用;不能和任何 <a href="Reference/Global_Objects/Number" title="JavaScript 的 Number 对象是经过封装的能让你处理数字值的对象。Number 对象由 Number() 构造器创建。"><code>Number</code></a> 实例混合运算。</p>
|
||||
<div class="blockIndicator warning">
|
||||
<p><a href="Reference/Global_Objects/Number" title="JavaScript 的 Number 对象是经过封装的能让你处理数字值的对象。Number 对象由 Number() 构造器创建。"><code>Number</code></a> 和 <code>BigInt</code> 不能混合在一起运算,两者必须转换成同一种类型。</p>
|
||||
@@ -30,7 +30,7 @@ const hugeButString = BigInt('9007199254740991');
|
||||
<p> </p>
|
||||
<h3 id="运算">运算</h3>
|
||||
<p>以下操作符可以和 <code>BigInt</code> 一起使用: <code>+</code>、`<code>*</code>`、`<code>-</code>`、`<code>**</code>`、`<code>%</code>` 。</p>
|
||||
<pre class="brush: js">const previousMaxSafe = BigInt(Number.MAX_SAFE_INTEGER);
|
||||
<pre><code class="language-javascript">const previousMaxSafe = BigInt(Number.MAX_SAFE_INTEGER);
|
||||
// ↪ 9007199254740991n
|
||||
|
||||
const maxPlusOne = previousMaxSafe + 1n;
|
||||
@@ -53,27 +53,27 @@ const bigN = 2n ** 54n;
|
||||
|
||||
bigN * -1n
|
||||
// ↪ –18014398509481984n
|
||||
</pre>
|
||||
</code></pre>
|
||||
<p><code>/</code> 操作符对于所有数字的运算也没问题。可是因为这些变量是 <code>BigInt</code> 而不是 <code>BigDecimal</code> ,该操作符会导致向零取整,也就是说不会返回小数部分。</p>
|
||||
<div class="blockIndicator warning">
|
||||
<p>当使用 <code>BigInt</code> 时,带小数的运算会被取整。</p>
|
||||
</div>
|
||||
<pre class="brush: js">const expected = 4n / 2n;
|
||||
<pre><code class="language-javascript">const expected = 4n / 2n;
|
||||
// ↪ 2n
|
||||
|
||||
const rounded = 5n / 2n;
|
||||
// ↪ 2n, not 2.5n
|
||||
|
||||
</pre>
|
||||
</code></pre>
|
||||
<h3 id="比较">比较</h3>
|
||||
<p><code>BigInt</code> 和 <a href="Reference/Global_Objects/Number" title="JavaScript 的 Number 对象是经过封装的能让你处理数字值的对象。Number 对象由 Number() 构造器创建。"><code>Number</code></a> 不是严格相等的,但是宽松相等的。</p>
|
||||
<pre class="brush: js">0n === 0
|
||||
<pre><code class="language-javascript">0n === 0
|
||||
// ↪ false
|
||||
|
||||
0n == 0
|
||||
// ↪ true</pre>
|
||||
// ↪ true</code></pre>
|
||||
<p><a href="Reference/Global_Objects/Number" title="JavaScript 的 Number 对象是经过封装的能让你处理数字值的对象。Number 对象由 Number() 构造器创建。"><code>Number</code></a> 和 <code>BigInt</code> 可以像一般情况进行比较。</p>
|
||||
<pre class="brush: js">1n < 2
|
||||
<pre><code class="language-javascript">1n < 2
|
||||
// ↪ true
|
||||
|
||||
2n > 1
|
||||
@@ -86,16 +86,16 @@ const rounded = 5n / 2n;
|
||||
// ↪ false
|
||||
|
||||
2n >= 2
|
||||
// ↪ true</pre>
|
||||
// ↪ true</code></pre>
|
||||
<p>两者也可以混在一个数组内并排序。</p>
|
||||
<pre class="brush: js">const mixed = [4n, 6, -12n, 10, 4, 0, 0n];
|
||||
<pre><code class="language-javascript">const mixed = [4n, 6, -12n, 10, 4, 0, 0n];
|
||||
// ↪ [4n, 6, -12n, 10, 4, 0, 0n]
|
||||
|
||||
mixed.sort();
|
||||
// ↪ [-12n, 0, 0n, 10, 4n, 4, 6]</pre>
|
||||
// ↪ [-12n, 0, 0n, 10, 4n, 4, 6]</code></pre>
|
||||
<h3 id="条件">条件</h3>
|
||||
<p><code>BigInt</code> 在转换成 <a href="Reference/Global_Objects/Boolean" title="Boolean对象是一个布尔值的对象包装器。"><code>Boolean</code></a> 时和 <a href="Reference/Global_Objects/Number" title="JavaScript 的 Number 对象是经过封装的能让你处理数字值的对象。Number 对象由 Number() 构造器创建。"><code>Number</code></a> 类似:通过 <a href="Reference/Global_Objects/Boolean" title="Boolean对象是一个布尔值的对象包装器。"><code>Boolean</code></a> 函数;和 <a href="Reference/Operators/Logical_Operators" title="逻辑运算符通常用于布尔型(逻辑)值。这种情况下,它们返回一个布尔值。然而,&& 和 || 运算符会返回一个指定操作数的值,因此,这些运算符也用于非布尔值。这时,它们也就会返回一个非布尔型值。"><code>Logical Operators</code></a> <code>||</code>, `<code>&&</code>`, and <code>!</code> 一起使用;或者在像 <a href="Reference/Statements/if...else" title="当指定条件为真,if 语句会执行一段语句。如果条件为假,则执行另一段语句。"><code>if statement</code></a> 这样的条件语句中。</p>
|
||||
<pre class="brush: js">if (0n) {
|
||||
<pre><code class="language-javascript">if (0n) {
|
||||
console.log('Hello from the if!');
|
||||
} else {
|
||||
console.log('Hello from the else!');
|
||||
@@ -122,10 +122,10 @@ Boolean(12n)
|
||||
// ↪ true
|
||||
|
||||
|
||||
</pre>
|
||||
</code></pre>
|
||||
<h2 id="例子">例子</h2>
|
||||
<h3 id="Calculating_Primes">Calculating Primes</h3>
|
||||
<pre class="brush: js">function isPrime(p) {
|
||||
<pre><code class="language-javascript">function isPrime(p) {
|
||||
for (let i = 2n; i * i <= p; i++) {
|
||||
if (p % i === 0n) return false;
|
||||
}
|
||||
@@ -149,5 +149,5 @@ function nthPrime(nth) {
|
||||
}
|
||||
|
||||
nthPrime(20n)
|
||||
// ↪ 73n</pre>
|
||||
// ↪ 73n</code></pre>
|
||||
</article>
|
||||
Reference in New Issue
Block a user