0

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

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

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

谢谢

4

1 回答 1

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,他什么都知道 :)。

于 2014-02-21T05:28:11.060 回答