WebIDL определяет unsigned short для типа номера JS
Я прочитал документ, и он указывает, что WebIDL определяет беззнаковый короткий IDL, сопоставленный с номером JS.
Диапазон беззнаковых коротких позиций составляет от 0 до 65535. Номер JS может быть от -9007199254740992 до 9007199254740992.
Это действительно смущает меня, так как большой разрыв между этими двумя определениями. Кто-нибудь может объяснить это?
Спасибо
1 ответ
Как упомянул Loïc Faure-Lacroix, JS Numbers намного сложнее, чем 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++, или что-то еще).
Надеюсь, я смог уточнить ваш вопрос. Если нет, я рекомендую вам ткнуть @heycam на irc.mozilla.org, он все это знает:).