Числа и цифрови стойности в JavaScript – възможности и лимитации

JavaScript има само един числов тип. Числата могат да бъдат написани със или без десетичен знак.

JavaScript Числа

Числата в JavaScript могат да бъдат написани със или без десетичен знак:

Изключително големи или малки номера могат да бъдат написани с експонентен знак:

JavaScript Числата са винаги 64-битови числа с плаващ десетичен знак За разлика от много други езици за програмиране, JavaScript не дефинира различни числови типове, като цели числа, къси, дълги, с плаваща запетая и т.н. JavaScript числата винаги се съхраняват като числа с плаваща запетая с точност до второто число, по международния стандарт IEEE 754:

Стойност (известен още като Фракция / мантисата) Експонат Знак
52 бита (0-51) 11 бита (52-62) 1 бит (63)

Прецизност

Целите числа (номера, без плаваща точка или експонента) се считат за точни до 15-тата цифра.

Опитайте сами »

Максималния брой на знаците след десетичната запетая са 17, но сметките с тези числа не винаги са точни на 100%:

Опитайте сами »

Горния пример решен с точност, чрез умножение:

Опитайте сами »

Шестнадесетични

JavaScript интерпретира числови константи като шестнадесетичен, ако те започват със 0x.

Опитайте сами »

Никога не изписвайте число с водеща нула (07 например). JS може да ги подразбере като осмични и да получите грешни резултати. По подразбиране, Javascript изписва числата като десетични. Но можете да използвате ToString() метод, за да ги изпишете като шестнадесетични, осмични или двуични.

Опитайте сами »

Безкрайност

Infinity (или-Infinity) е стойността, която JS ще върне ако изчислената стойност е над най-голямото възможно число.

Опитайте сами »

Делене на 0 (нула) също генерира Infinity:

Опитайте сами »

Infinity е число: typeOf Infinity връща number.

Опитайте сами »

NaN – Not a Number (Не е число)

NaN е JavaScript запазена дума за това, че дадена стойност не е номер. Можете да използвате глобалната функция в JavaScript isNaN (), за да разберете, дали стойността е число.

Опитайте сами »

 Infinity е число.

Опитайте сами »

Внимавайте с NaN. Ако го използвате в математическа операция, резултатът също ще бъде NaN.

Числата не могат да бъдат обекти

Обикновено те са примитивни стойности, създадени с променливи: varх = 123. Но числата могат да бъдат определени като обекти с ключовата дума newvar у = new Number(123)

Опитайте сами »

Не създавайте Number обекти. Те забавят скоростta на изпълнение, и може да доведат до лоши странични ефекти:

Опитайте сами »

Свойства при числата

Свойствата при числате принадлежат на вградения обект Number. Тези свойства могат да бъдат достъпени само чрез обекта. Например ето така – някакво число.MAX_VALUE. Ако използвате num.MAX_VALUE, където num е променлива резултата ще бъде undefined.

  • Max_Value
  • MIN_VALUE
  • NEGATIVE_INFINITY
  • POSITIVE_INFINITY
  • NaN
  • prototype
  • constructor

Методи при числата

  • toExponential()
  • toFixed()
  • toPrecision()
  • toString()
  • valueOf()

За разлика от свойствата, методите могат да се извикват за всички променливи, числа и изявления.

Опитайте сами »

Нормално, простите стойности (like 3.14) не могат да имат методи и пропъртита, защото не са обекти. JS обаче, когато става дума за пропъртита и методи, третира простите стойности като обекти.

За пълна референция отидете на Complete JavaScript Number Reference. Там се съдържат примери и обяснения на всички методи и пропъртита за числови типове.

Вижте още