这是什么类型的javascript数据类型



console.log写入此数据类型-

<key1 : value1 , key2 : value2>

语法与对象和数组都不相似。那么这是什么数据类型呢?

以下是如何繁殖。

安装bsv

const bsv = require("bsv");
console.log(bsv.PrivateKey.fromRandom())

来自节点终端

> bsv = require("bsv");
> bsv.PrivateKey.fromRandom()

TL;DR

您看到的只是一个对象,特别是bsv库中的PrivateKey对象。当console.log在Node.js.的过时版本中记录时,bsv库具有对象的自定义表示

详细信息

我终于能够复制你的输出了,这是从Node.js:的一个过时副本中得到的

<私钥:a909d298d55c8fa3afdb641eb46e90cebad4f2d3f5e0d4149e3bac16f12ee5b,网络:livenet>

如上所述,它只是bsv库中的一个PrivateKey对象。您看到的原因是bsv库使用了Node.js的一个长期不推荐使用的功能:Node.js中的console.log用于查找inspect方法,如果它存在,则会调用该方法来获取要记录的对象的字符串表示。bsvPrivateKey上有一个inspect方法,目前位于第372行(当然,该行号会随着时间的推移而腐烂(。

你只会在Node.js的(稍微(过时的副本中看到这一点。我偶然发现了这个解决方案,因为我在使用v10.20.1的CodeSandbox上尝试了它。这个有用的消息就在CodeSandbox:中的输出之后

(节点:887([DEP0079]弃用警告:通过.inspect((对对象的自定义检查功能已弃用

此后,我通过安装Node.js v10.20.1在本地复制了这一点。

有了Node.js的最新副本(v12.16.3是我写这篇文章时的当前LTS,v14.1.0是当前版本(,Node.js不再寻找或使用inspect方法,所以你可以看到Node.js标准的对象输出,如下所示:

PrivateKey{bn:bn{阴性:0,文字:[66428877、21624768,4550278519604474,35981886、10091365,29744843、24740201,15504496、1628002,0],长度:10,红色:空},压缩:true,网络:网络{name:"livenet",别名:'mainnet',pubkeyhash:0,私钥:128,scripthash:5,xpubkey:76067358,xprivkey:76066276,cashAddrPrefix:'比特币现金',cashAddrPrefixArray:[2、9、20、3、15,9、14、3、1、19,8.],networkMagic:<缓冲器e3 e1 f3 e8>,端口:8333,dnsSeeds:['seed.bitcoinsv.org.,'seed.bitscoinsunlimited.info']},公钥:[Getter]}

因此:它只是一个对象,由bsv库以非标准格式显示。