【问题标题】:WebIDL defines unsigned short to JS Number typeWebIDL 定义 JS Number 类型的 unsigned short
【发布时间】:2014-03-16 18:34:03
【问题描述】:

我阅读了一个文档,它指出 WebIDL 定义了 IDL 无符号短映射到 JS 编号。

unsigned short 的范围是 0 到 65535。JS Number 可以是 -9007199254740992 到 9007199254740992。

这真的让我很困惑,因为这两个定义之间的差距很大。谁能解释一下?

谢谢

【问题讨论】:

  • 你能链接你实际阅读的文档吗?
  • 是的,请参考以下链接。 mcc.id.au/2013/lca-webidl/?full#What
  • 我很确定有一个演示视频。它并不能完全解释一切。我的猜测是,如果您使用 unsigned short 定义了 IDL,IDL 的重点是在您的本机代码中将 JS Number 转换为 Unsigned short。内部 JS Number 比 unsigned short 复杂得多。但这并不妨碍使用 IDL 将 js 编号映射到本机类型......这就是 IDL 的重点。
  • 感谢您的回复。

标签: javascript firefox firefox-os b2g webidl


【解决方案1】:

正如 Loïc Faure-Lacroix 所说,JS 数字比 unsigned short 复杂得多。

JS 有几种类型:

Undefined – undefined
Boolean – false, true
Number – 0, -2.5, Infinity, NaN
String – "", "hello"
Object – { }, { "key": "value" }, [1, 2, 3], function() { }, /^regexp?$/

这里的重点是,当您在 WebIDL 中定义一个数字时,您需要考虑您对精确度和准确性的需求。因此,如果您希望存储比 unsigned short 更大的内容,请声明类似 unsigned int 的内容,最多可容纳 4,294,967,295。

这里的想法是不依赖于 JavaScript 类型,而是依赖于 WebIDL(可能被翻译成 Python、C 或 C++ 或其他东西)。

希望我能够澄清您的问题。如果没有,我建议你在 irc.mozilla.org 上戳@heycam,他什么都知道:)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    • 2014-03-12
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    相关资源
    最近更新 更多