JavaScript の BigIn 関数の共通プロパティをまとめます

JavaScript の BigIn 関数の共通プロパティをまとめます

1. 概要

BigInt 、任意の長さの整数をサポートする特殊な数値型です。

bigint作成するには、整数リテラルの後に n を追加するか、文字列や数値などからbigintを生成するBigInt関数を呼び出すという 2 つの方法があります。

定数 bigint = 1234567890123456789012345678901234567890n; 
定数sameBigint = BigInt("1234567890123456789012345678901234567890"); 
const bigintFromNumber = BigInt(10); // 10nと同じ

2. 属性

1. 数学演算子

BigIntほとんどの場合、通常の数値型のように使用できます。

例えば:

アラート(1n + 2n); // 3 
アラート(5n / 2n); // 2 

注意: 5/2 の除算の結果はゼロに向かって丸められ、丸め後の結果には小数部が含まれません。 bigintに対するすべての操作は、同様に bigint である結果を返します。

bigintと通常の数値型を混在させることはできません。

alert(1n + 2); // エラー: BigInt と他の型を混在させることはできません 

必要に応じて、 BigInt()またはNumber(),を使用して明示的に変換する必要があります。

bigint = 1n とします。 
数値を 2 とします。 
// 数値を bigint に変換する 
アラート(bigint + BigInt(数値)); // 3 
// bigint を数値に変換する 
アラート(数値(bigint) + 数値); // 3 

変換は常に実行され、エラーが発生することはありませんが、bigint が大きすぎて数値型に収まらない場合は、余分なビットが切り捨てられるため、このような変換は注意して行う必要があります。

BigInt単項加算をサポートしていません

単項加算演算子 +value は、値を数値型に変換するためのよく知られた方法です。

混乱を避けるため、 bigintでは単項加算はサポートされていません。

bigint = 1n とします。 
alert( +bigint ); // エラー 

bigint数値型に変換するには、 Number()使用する必要があります。

2. 比較演算子

< や > などの比較演算子は、 bigintnumber型を比較す​​る際に問題なく使用できます。

アラート(2n > 1n); // 真 
アラート(2n > 1); // 真 

注: numberbigint異なる型であるため、== と比較すると等しくなりますが、=== と比較すると等しくありません (厳密な等価性)。

アラート(1 == 1n); // 真 
 
アラート( 1 === 1n ); // 偽 

3. ブール演算

if またはその他のブール演算内では、bigint は number のように動作します。

例: if では、bigint 0n は false で、他の値は true です。

もし(0n){   
  // 決して実行されません} 


ブール演算子

たとえば、||、&& などの演算子は、bigint を number と同様の方法で処理します。

alert( 1n || 2 ); // 1 (1n は真とみなされます) 
alert( 0n || 2 ); // 2 (0n は false とみなされます) 

注:この方法では、コードを記述するときにネイティブbigintではなくJSBIを使用することを推奨します。しかし、JSBI は内部的に bigint のようにnumberを使用し、仕様に可能な限り近い形でエミュレートするため、コードはすでにbigintに対応しています。

bigintサポートしていないエンジンの場合、このような JSBI コードは「そのまま」使用できますが、サポートしているエンジンの場合は、ポリフィルによって呼び出しがネイティブ bigint に変換されます。

結論

この記事では、 JavaScript基礎に基づいて、BigInt 関数、共通プロパティ、BigInt 関数による数値演算子の比較について説明します。ブール演算などを事例分析を通じて詳しく説明します。

これで、JavaScript の BigIn 関数の共通プロパティをまとめたこの記事は終了です。JavaScript の BigIn 関数の共通プロパティの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScript の安全な整数制限を超えたデジタル計算のための BigInt の詳細な説明

<<:  非ルートユーザーを使用してDockerコンテナでスクリプト操作を実行する

>>:  HTMLでのフォーム送信の実装

推薦する

指定フィールドによるMySQLカスタムリストのソートの実装

問題の説明ご存知のとおり、MySQL でフィールドを昇順に並べ替える SQL は次のとおりです (i...

Vueフォームで画像を処理する方法

質問: Vue にブログ投稿をアップロードするためのフォームがあり、タイトル、本文、説明、スニペット...

XHTML 入門チュートリアル: シンプルな Web ページの作成

1 分で最初の Web ページを作成します。簡単な Web ページを作ってみましょう。ぜひフォローし...

JDKネイティブスレッドプールのバグを修正するTomcatの実装原理

処理能力と同時実行性を向上させるために、Web コンテナは通常、リクエストを処理するタスクをスレッド...

Linux(中心OS7)は、Java Webプロジェクトの実行環境を構築するためにJDK、Tomcat、MySQLをインストールします。

1. JDKをインストールする1. 古いバージョンまたはシステム独自のJDKをアンインストールする...

ウェブデザインの達人がよく使うレスポンシブフレームワークを共有する(要約)

この記事では、Web デザインの達人がよく使用するレスポンシブ フレームワーク (概要) を紹介し、...

MySQLデータベースのマスタースレーブ同期構成と読み取り書き込み分離

MySQL マスター スレーブ レプリケーションを使用する利点は次のとおりです。 1. 安定性を向上...

HTML で入力ボックスに純粋な数字のみを入力するように制限する方法

inputボックスを純粋な数字のみに制限する1、onkeyup = "value=valu...

MySQL の全体的なアーキテクチャの紹介

MySQL の全体的なアーキテクチャは、サーバー層とストレージ エンジン層に分かれています。サーバー...

階層化されたピラミッドを実現するための HTML+CSS の例

この記事では主に、HTML+CSS で階層化ピラミッドを実装する例を紹介し、皆さんと共有します。詳細...

モバイルデバイスで 1 ピクセルの境界線の問題を解決するいくつかの方法 (5 つの方法)

この記事では、モバイルデバイス上の 1 ピクセルの境界線の問題を解決する 5 つの方法を紹介します。...

Docker Compose の実践とまとめ

Docker Compose は、Docker コンテナ クラスターのオーケストレーションを実現しま...

Docker コンテナにデータベースをデプロイする場合の欠点は何ですか?

序文Docker は過去 2 年間で非常に人気が高まっています。開発者はすべてのアプリケーションとソ...

DockerプライベートイメージライブラリとAlibaba CloudオブジェクトストレージOSSの簡単な分析

Docker プライベートイメージライブラリDockerプライベートイメージライブラリとAlibab...

MySQL マスタースレーブレプリケーションの原理からインストールと設定までを包括的に解説します。

マスタースレーブレプリケーションがなぜ必要なのでしょうか? 1. 複雑な業務システムでは、SQL 文...