【问题标题】:what type of javascript datatype is this?这是什么类型的 javascript 数据类型?
【发布时间】:2020-05-05 10:22:37
【问题描述】:

console.log 写入此数据类型 -

<key1 : value1 , key2 : value2>

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

这里是如何复制。

安装 bsv

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

从节点终端

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

【问题讨论】:

    标签: javascript arrays object data-structures


    【解决方案1】:

    TL;DR

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

    详情

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

    正如我上面所说,它只是来自bsv 库的PrivateKey 对象。您看到的原因是 bsv 库使用 Node.js 的一个长期弃用的功能:Node.js 的 console.log 用于查找 inspect 方法,如果它存在,将调用该方法来获取要记录的对象的字符串表示形式。 bsvPrivateKey 上有一个 inspect 方法,目前位于 line 372(当然,该行号会随着时间的推移而失效)。

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

    (node:887) [DEP0079] DeprecationWarning: 通过 .inspect() 对对象的自定义检查功能已弃用

    我已经通过安装 Node.js v10.20.1 在本地复制了它。

    有了up-to-date copy of Node.js(我写这篇文章时v12.16.3是当前的LTS,v14.1.0是当前版本),Node.js不再寻找或使用inspect方法,所以你看Node.js 的标准对象输出,大致如下:

    私钥{ BN:BN { 负数:0, 字: [ 66428877, 21624768, 45502785, 19604474, 35981886, 10091365, 29744843, 24740201, 15504496, 1628002, 0 ], 长度:10, 红色:空 }, 压缩:真实, 网络:网络{ 名称:'livenet', 别名:'主网', 公钥哈希:0, 私钥:128, 脚本哈希:5, xpubkey: 76067358, xprivkey: 76066276, cashAddrPrefix: 'bitcoincash', 现金地址前缀数组:[ 2, 9, 20, 3, 15, 9、14、3、1、19、 8 ], networkMagic: , 端口:8333, dnsSeeds:['seed.bitcoinsv.org','seed.bitcoinunlimited.info'] }, 公钥:[获取者] }

    所以,再说一遍:它只是一个对象,由bsv 库以非标准格式显示。

    【讨论】:

      猜你喜欢
      • 2012-05-16
      • 2011-02-03
      • 2020-01-19
      • 1970-01-01
      • 2018-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多