このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
BigInt.prototype.toString()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年9月.
toString() はBigInt 値のメソッドで、指定した長整数 (BigInt) 値を表す文字列を返します。末尾の "n" は文字列の一部にはなりません。
In this article
試してみましょう
console.log(1024n.toString());// 予想される結果: "1024"console.log(1024n.toString(2));// 予想される結果: "10000000000"console.log(1024n.toString(16));// 予想される結果: "400"構文
toString()toString(radix)引数
radix省略可2 から 36 までの整数で、長整数の表現に使用する基数を指定します。デフォルトは 10 です。
返値
指定したBigInt オブジェクトを表す文字列。
例外
RangeErrortoString()に 2 未満または 36 より大きな基数を与えられた場合。
解説
BigInt オブジェクトはObject のtoString() メソッドをオーバーライドします。つまり、Object.prototype.toString() を継承しません。BigInt オブジェクトでは、toString() メソッドは指定された基数によるオブジェクトの文字列表現を返します。
10 より大きな基数が指定された場合は、 9 より大きな数字をアルファベットで示します。例えば、16 進数(底が 16)ではa からf が使用されます。
指定された長整数値が負の場合、符号は保持されます。基数が 2 の場合でも同様です。返される文字列は、長整数値の 2 進数表現に- 符号を付加したものであり、長整数値の 2 の補数ではありません。
toString() メソッドは、そのthis 値がBigInt プリミティブまたはラッパーオブジェクトである必要があります。他のthis 値に対しては、長整数値への強制変換を試みることなくTypeError が発生します。
BigInt には[Symbol.toPrimitive]() メソッドがないため、JavaScript はBigInt オブジェクトが文字列のコンテキストで使用される際に自動的にtoString() メソッドを呼び出します。メソッドを持たないため、JavaScript はBigIntオブジェクト が文字列を期待するコンテキスト(テンプレートリテラルなど)で使用される際に、自動的にtoString() メソッドを呼び出します。ただし、BigInt のプリミティブ値は、文字列への型変換を行う際にtoString() メソッドを参照しません。代わりに、最初のtoString() 実装と同じアルゴリズムを用いて直接変換されます。
BigInt.prototype.toString = () => "Overridden";console.log(`${1n}`); // "1"console.log(`${Object(1n)}`); // "Overridden"例
>toString() の使用
17n.toString(); // "17"66n.toString(2); // "1000010"254n.toString(16); // "fe"(-10n).toString(2); // "-1010"(-0xffn).toString(2); // "-11111111"BigInt における負の 0
整数に負の 0 が存在しないのと同様に、BigInt には負の 0 がありません。-0.0 は JavaScript の数値型(Number)にのみ現れる、IEEE 浮動小数点数の概念です。
(-0n).toString(); // "0"BigInt(-0).toString(); // "0"仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-bigint.prototype.tostring> |