0
我讀了一個文檔,它指出WebIDL定義了IDL unsigned short映射到JS Number。WebIDL定義了unsigned short到JS數字類型
無符號短的範圍是從0到65535 JS數量可以-9007199254740992到9007199254740992
這確實讓我困惑,因爲這兩個定義之間的大張口。任何人都可以解釋嗎?
感謝
我讀了一個文檔,它指出WebIDL定義了IDL unsigned short映射到JS Number。WebIDL定義了unsigned short到JS數字類型
無符號短的範圍是從0到65535 JS數量可以-9007199254740992到9007199254740992
這確實讓我困惑,因爲這兩個定義之間的大張口。任何人都可以解釋嗎?
感謝
正如盧瓦克福雷 - 拉克魯瓦提到,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,他知道這一切:)。
你能鏈接你實際閱讀的文件嗎? –
是的,請參考以下鏈接。 http://mcc.id.au/2013/lca-webidl/?full#What – Sam
我很確定有一個演示視頻。它並不完全解釋一切。我的猜測是,如果你使用unsigned short定義了一個IDL,那麼IDL的要點就是在你的本地代碼中將JS Number轉換爲Unsigned short。內部JS編號比無符號短編碼複雜得多。但它並不能阻止使用IDL將js數字映射到本機類型,這是IDL的要點。 –