0

ドキュメントを読んだところ、WebIDL では JS Number にマップされた IDL unsigned short が定義されていることが指摘されています。

unsigned short の範囲は 0 ~ 65535 です。JS 番号は -9007199254740992 ~ 9007199254740992 です。

これら2つの定義の間に大きなギャップがあるため、これは私を本当に混乱させます。誰でもこれを説明できますか?

ありがとう

4

1 に答える 1

1

Loïc Faure-Lacroix が述べたように、JS Number は 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 よりも大きなものを格納することを期待している場合は、最大 4,294,967,295 を保持する unsigned int のようなものを宣言します。

ここでの考え方は、JavaScript の型に依存するのではなく、WebIDL (Python、C、C++ などに変換される可能性があります) に依存することです。

あなたの質問を明確にすることができたことを願っています。そうでない場合は、irc.mozilla.org で @heycam を突くことをお勧めします。彼はすべてを知っています :)。

于 2014-02-21T05:28:11.060 に答える