ドキュメントを読んだところ、WebIDL では JS Number にマップされた IDL unsigned short が定義されていることが指摘されています。
unsigned short の範囲は 0 ~ 65535 です。JS 番号は -9007199254740992 ~ 9007199254740992 です。
これら2つの定義の間に大きなギャップがあるため、これは私を本当に混乱させます。誰でもこれを説明できますか?
ありがとう
ドキュメントを読んだところ、WebIDL では JS Number にマップされた IDL unsigned short が定義されていることが指摘されています。
unsigned short の範囲は 0 ~ 65535 です。JS 番号は -9007199254740992 ~ 9007199254740992 です。
これら2つの定義の間に大きなギャップがあるため、これは私を本当に混乱させます。誰でもこれを説明できますか?
ありがとう
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 を突くことをお勧めします。彼はすべてを知っています :)。