2014-02-17 18 views
0

我讀了一個文檔,它指出WebIDL定義了IDL unsigned short映射到JS Number。WebIDL定義了unsigned short到JS數字類型

無符號短的範圍是從0到65535 JS數量可以-9007199254740992到9007199254740992

這確實讓我困惑,因爲這兩個定義之間的大張口。任何人都可以解釋嗎?

感謝

+0

你能鏈接你實際閱讀的文件嗎? –

+0

是的,請參考以下鏈接。 http://mcc.id.au/2013/lca-webidl/?full#What – Sam

+0

我很確定有一個演示視頻。它並不完全解釋一切。我的猜測是,如果你使用unsigned short定義了一個IDL,那麼IDL的要點就是在你的本地代碼中將JS Number轉換爲Unsigned short。內部JS編號比無符號短編碼複雜得多。但它並不能阻止使用IDL將js數字映射到本機類型,這是IDL的要點。 –

回答

1

正如盧瓦克福雷 - 拉克魯瓦提到,JS數字比無符號短複雜得多。

JS有幾個類型:

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

是這裏的關鍵是,當您在WebIDL定義一個數字,你需要考慮你需要的精度和準確度。所以,如果你期望存儲更大的東西然後是未簽名的short,則聲明類似unsigned int的東西,最多可以包含4,294,967,295。

這裏的想法是不依賴於JavaScript類型,而是依賴於WebIDL(可能會翻譯成Python,C或C++或其他)。

希望我能夠澄清你的問題。如果沒有,我建議你在irc.mozilla.org上戳@heycam,他知道這一切:)。

相關問題