Javascript.RU

Базовые типы: Строки, Числа, Boolean

Update: Более новый материал по этой теме находится по адресу https://learn.javascript.ru/types-intro.

В этой статье собраны особенности базовых типов данных, которые важны для программистов из других областей.

В Javascript есть и объектные типы данных и элементарные, которые можно интерпретировать как объекты.

типы данных

Элементарные - создаются простым указанием данных:

var orange = "Апельсин"

Объектные - например, через оператор new:

var orange = new String("Апельсин")

На практике, хотя для каждого элементарного типа есть соответствующий объект, использовать их не рекомендуется. Это - отмершая часть языка.

var ok = new Boolean(true) // не надо

Элементарные типы автоматически интерпретируются как объекты при вызовах методов, поэтому можно, определять длину строки как:

alert("Апельсин".length)

Поэтому иногда говорят, что в javascript - все объекты. Так удобно думать, но определенная разница все же есть.

Например, typeof выдаст разный результат:

alert(typeof "test")
alert(typeof new String("test"))

Это - еще одна причина избегать использования объектов там, где существует элементарный тип: меньше путаницы.

Преобразование типа можно явным образом сделать через его название:

var test = Boolean("something") // true

Кроме всем известных типов данных - в javascript есть специальное значение undefined, которое, условно говоря, обозначает что "данных нет". Не null, а данных нет. Понимайте как хотите.

Далее рассмотрим особенности каждого из этих типов.

Все числа хранятся в формате float64, т.е 8 байт с плавающей точкой. В этом формате не всегда возможны точные вычисления.

Например,

alert(0.1+0.2)  // выведет не 0.3!

При операциях с Number - никогда не происходят ошибки. Зато могут быть возвращены специальные значения:

1/0
Number.POSITIVE_INFINITY (плюс бесконечность)
-1/0
Number.NEGATIVE_INFINITY (минус бесконечность)
Number(“something”)
NaN (Not-a-Number, результат ошибочной операции)

Бесконечность бывает полезно использовать в обычном коде. Например, положительная бесконечность Number.POSITIVE_INFINITY больше любого Number, и даже больше самой себя.

NaN - особый результат.

  • Любая математическая операция с NaN дает NaN:
    • NaN + 1 = NaN
  • NaN не равен сам себе:
    • NaN == NaN // false
  • Можно проверить с помощью функции isNaN:
    • isNaN(NaN) // true

Для этого используется метод toFixed.

0.1234.toFixed(2)  = 0.12

Стандартно конвертация осуществляется вызовом Number(). Можно и попроще: +str.

// эквивалентные записи
var str = "002"
var a = Number(str) // 2
// нечисла превращаются в NaN
+"0.1"  // => 0.1
+"0.1z" // => Number.NaN

Кроме жесткой конвертации есть и более мягкая фильтрация в число:

// обрезается все после числа
parseFloat("0.1zf") = 0.1
parseInt("08f.4", 10) = 8
// тут числа вообще нет, поэтому NaN
parseFloat("smth") = Number.NaN

parseFloat , parseInt переводят слева направо, пока это возможно. Если вообще невозможно - то NaN.

Второй аргумент parseInt - основание системы счисления. Если его нет, то система сама пытается угадать систему счисления:

parseInt("0x10") = 16 // т.к 0x обозначает 16-ричную систему
parseInt("010") = 8 // т.к ведущий 0 обозначает 8-ричную систему
// если хотите без сюрпризов - указывайте основание явно
parseInt("010",10) = 10

Все математические функции находятся в "пакете" Math. Не то, чтобы в javascript есть реальные пакеты, просто так получилось.

  • Math.floor() / Math.round() / Math.ceil() - округление
  • Math.abs() - модуль числа
  • Math.sin() и т.д

Строки в javascript - полностью юникодные.

  • Кавычки двойные и одинарные работают одинаково
  • Можно указывать юникодные символы через \uXXXX:
    • "звездочка:\u002a"
  • Встроены регулярные выражения, методы replace/match:
    • "превед медвед".replace(/(.*?)\s(.*)/, "$2, $1!") // => медвед, превед!

Как это обычно и бывает, в регулярках символ \w обозначает латинские буквоцифры или подчеркивание, но не русские буквы.

Длина строки хранится в свойстве length.

В javascript - особый список значений, которые при приведении к Boolean становятся false. Он отличается, например, от аналогичного списка в PHP.

False
false
null
undefined
“”
0
Number.NaN
True – все остальное
“0”
“false”

Чтобы привести значение к булевому - используется либо явное указание типа: Boolean(a), либо двойное отрицание: !!a

Boolean(a) == !!a

Автор: 토토사이트 (не зарегистрирован), дата: 16 августа, 2023 - 07:36
#permalink

I have a lot of trouble. I wish someone like you was by my side. Then you can get a lot of advice. your post I am very happy to know you through Your posts helped me a lot. This is a great and very interesting blog. 토토사이트


Автор: Гость (не зарегистрирован), дата: 17 августа, 2023 - 06:09
#permalink

I'm really inspired with your writing abilities and also with the layout in your weblog. Is that this a paid subject or did you customize it yourself? Either way keep up the excellent quality writing, it is uncommon to peer a nice blog like this one nowadays.
SkyMoviesHD


Автор: ashyjones489 (не зарегистрирован), дата: 23 августа, 2023 - 01:59
#permalink

Actually, it's pretty good to see! Tiler Adelaide


Автор: ashyjones489 (не зарегистрирован), дата: 23 августа, 2023 - 02:06
#permalink

Actually, it's pretty good to see! Tiler Adelaide


Автор: 토토사이트 (не зарегистрирован), дата: 25 августа, 2023 - 05:19
#permalink

This article provides a bright light that we can use to observe reality. This is a very good one and provides in-depth information. 토토사이트


Автор: 토토사이트 (не зарегистрирован), дата: 25 августа, 2023 - 05:21
#permalink

This article provides a bright light that we can use to observe reality. This is a very good one and provides in-depth information. 토토사이트


Автор: ashyjones489 (не зарегистрирован), дата: 25 августа, 2023 - 18:39
#permalink

Actually, it's pretty good to see! Tiler Adelaide


Автор: UFABET168GO (не зарегистрирован), дата: 3 сентября, 2023 - 16:49
#permalink

ufabet168 เว็บตรงแทงบอล และคาสิโนออนไลน์ดีที่สุด สล็อต PG ทดลองเล่น เล่นฟรีทุกค่าย เล่นได้ก่อนใคร


Автор: Jhansi (не зарегистрирован), дата: 12 сентября, 2023 - 16:23
#permalink

As we gather around the table, let's give thanks for the precious moments and treasured people in our lives. Happy Thanksgiving 2023.


Автор: John Narayan (не зарегистрирован), дата: 12 сентября, 2023 - 16:26
#permalink

Автор: James Patrissi (не зарегистрирован), дата: 12 сентября, 2023 - 21:18
#permalink

alamo15sigAmerican Eaglerugerbeneli

taurusglock20fnberetta458socomremhornremiton 87050 beowulfnoslereaa witnesscitadelsig p365ruger lcrbenelli superseekinsbrowningtikka t1xsig sauerlcrx rugerberetta a400winchester sx4fh 502p322
remington etronx
winchester231
winchester 12 gauge
sierra ammo
barnes ttsx
cz reaper
subsonic
imr 4064h4831ccismall rifleFactory OverAguilamagtechsellerwinchesterAmerican Eaglewin usaRemingtonIMIHornadyHornady LeverleverTop BrassLapaupowerbeltmuzzle powerbeltImperialAccurateVihtavuoriAccurate 2230BlackhornRamshotcfe pistolhodgon cfeRamshot enforceshooter20n29ramshot powderGoexgoex-blackfederalGoex fffwin primcci smallccicci largeFiocchicci perwin primsmall rifflelarge rifle magcci small rifleWinchester largeFederal Premiumcci pistol primerscci large primersFederal premium goldRemington primerscci small rifle primerFederal primerRemington smallRemingtonWinchester small riflewinchester usawinchester small mathFederal gold medalrifle primeralliantblackhorn209large primersalliant green45acphornady brassWin 350338 win300 winHodgdon trailimr 350smokelessblack gunpowderpowderRemington umcaguila9mm lugerFederal 9mm65 prendelmagnum small primersmagtech556 pmc556 pmc ammunition45 autoblazer38 specialsig-sauer-ammoblackout-30030-winchester-270-winchesterwinchester-longhornady-223gauge-shot-2030-carbine-ammosmall-pistol-primercolt-defender-2disposablecactuscactus jackwild bajapurple popgelato pinkpink starbustberry skittlezbananajollyjiucy melonberry blowXanax (alprazolam)VicoprofenStilnoxsuboxoneSubutex 2 mgSubutex 8 mgTramadol 100ValiumSaxendaRybelsusRoxicodone 30mgRitalin 10 mgPregabalinOzempicOxycontin 80 mgOxycodone 30 mgMifepriston 10 mgMethadone 10 mgDemerolDemerol (meperDiazepam 10 mgdihydrocodeineDilaudid 8 mgIbuprofen 200 mgXanax 0,25 mgArimidexAdderall XR 10 mgAdderall 5 mg – 30 mgAcxion PhentermineSomaPercocetMagic Mushrooms
A+ Magic Mushrooms
African Pyramid Mushroom

African Transkei Mushrooms

Albino Penis Envy Magic Mushrooms

Amazonian Mushroom

Avery Albino Mushroom

Blue Meanies Mushroom

Brazilian Magic Mushroom

Burmese Mushroom

Golden Mammoth Magic Mushrooms

Golden Teacher Mushroom

Hawaiian Magic Mushrooms

Ko Samui Super Mushroom

Liberty Cap Mushroom

Martinique

Mexican Mushrooms

Penis Envy 6 (PE6) Magic Mushrooms

Penis Envy XL Magic Mushrooms

Texas Yellow Caps

Transkei Magic Mushrooms

Treasure Coast Magic Mushrooms

Wavy Caps Magic Mushrooms

Hero Magic Mushrooms

Micro dosing Capsules
100MG Psilocybin Microdose | 30 Capsules | 1 Bottle

500mg Psilocybin Microdose | 30 Capsules | 1 Bottle
Be Brilliant (Booster) Mushroom Supplement Capsules

Be Calm (Booster) Mushroom Supplement Capsules


KINOKO – Mushroom Microdose Caps

Love Capsules (50mg-200mg)

Mood Capsules (50mg-200mg)

Mushroom Edibles
INfinite Rx Shroom Infused Albino Penis Envy Edition Block Gummies Edibles (2000mg)
INfinite Rx Shroom Infused Large Heart Gummies Edibles (4000mg)
Silo Jubes Microdose Psilocybin Mushroom Gummies Edibles
Vegan Dark Chocolate – Psychedelic Chocolate Bar
Penis Envy – Psychedelic Chocolate Bar
Golden Teacher Chocolate Bar

Автор: Emma Stone (не зарегистрирован), дата: 16 сентября, 2023 - 23:35
#permalink

This is surely very useful but i think you can make some amendments while working on your own projects too.. You can watch aus open live streaming free anywhere in the world


Автор: marventis (не зарегистрирован), дата: 20 сентября, 2023 - 12:40
#permalink

Great article, thanks for sharing. Wnu and Oola


Автор: Гость (не зарегистрирован), дата: 21 сентября, 2023 - 08:42
#permalink

Thank you for investing your time and creativity to create such valuable content. It's appreciated!CINCH Playoffs


Автор: Другие (не зарегистрирован), дата: 21 сентября, 2023 - 08:45
#permalink

Thank you for investing your time and creativity to create such valuable content. CINCH Playoffs appreciated!


Автор: Defania (не зарегистрирован), дата: 21 сентября, 2023 - 12:06
#permalink

BONUS NEW MEMBER 100%
Minimal Deposit adalah Rp. 10,000
Bonus Kekalahan 100%
Deposit Pulsa Tanpa potongan
Situs Anti Rungkad
PEDRO77
https://daftarpedro77.com/

Math.round() / Math.ceil() - округление
Math.abs() - модуль числа


Автор: Club World Cup Schedule (не зарегистрирован), дата: 21 сентября, 2023 - 20:39
#permalink

You always share some amazing ideas, thanks for sharing it on your website

club world cup schedule


Автор: helmet (не зарегистрирован), дата: 23 сентября, 2023 - 17:56
#permalink

very nice helmet motorcycle store
new helmet shop in tehran


Автор: kancilbola (не зарегистрирован), дата: 25 сентября, 2023 - 08:39
#permalink

Keberuntungan yang selalu datang dari situs kancilbola

Langsung di coba dan pastikan sendiri keberuntungan situs kancilbola


Автор: kancilbola (не зарегистрирован), дата: 25 сентября, 2023 - 08:40
#permalink

Keberuntungan yang selalu datang dari situs kancilbola

Langsung di coba dan pastikan sendiri keberuntungan situs kancilbola


Автор: kancilbola (не зарегистрирован), дата: 25 сентября, 2023 - 08:40
#permalink

Keberuntungan yang selalu datang dari situs kancilbola

Langsung di coba dan pastikan sendiri keberuntungan situs kancilbola


Автор: minjie (не зарегистрирован), дата: 28 сентября, 2023 - 09:34
#permalink

Thank you very much for your information. That's exactly the information I was looking for on my topic. If you are interested, it is my great honor to recommend the 캡주소 website for football enthusiasts, live scores and football analysis. The most fun bets can be placed right here.


Автор: Запчасти для Грузовиков (не зарегистрирован), дата: 7 октября, 2023 - 13:24
#permalink

Запчасти и аксессуары для Грузовиков и прицепной техники от компании SPACSER


Автор: 토토사이트 (не зарегистрирован), дата: 17 октября, 2023 - 13:21
#permalink

I have added your blog to my bookmark. I will read your article more frequently!토토사이트


Автор: nidaye (не зарегистрирован), дата: 18 октября, 2023 - 08:21
#permalink

Thank you very much for your information. That's the information I was looking for on my subject. If you are interested, it is a great honor to recommend this website for real-time soccer score and soccer analysis. The most interesting bets are on 캡포탈 right away.


Автор: cab 주소 (не зарегистрирован), дата: 18 октября, 2023 - 08:23
#permalink

Thank you very much for your information. That's the information I was looking for on my subject. If you are interested, it is a great honor to recommend this website for real-time soccer score and soccer analysis. The most interesting bets are on cab 주소 right away.


Автор: linkt (не зарегистрирован), дата: 18 октября, 2023 - 08:27
#permalink

Great post! I really enjoyed reading your insights on this topic.
cab portal cab 주소


Автор: fewafwe (не зарегистрирован), дата: 23 октября, 2023 - 12:17
#permalink

Автор: pgslot168z (не зарегистрирован), дата: 10 ноября, 2023 - 11:00
#permalink

I have been reading your blog posts for month and its been the greatest thing I am doing in past few months. keep up the good work for sharing the information. pgสล็อต168" title="pgสล็อต168">pgสล็อต168


Автор: ufa168 (не зарегистрирован), дата: 10 ноября, 2023 - 19:50
#permalink

In the wake of taking a gander at your article I was shocked. I understand that you clear up it amazingly well. Moreover, I expect that contrasting perusers will in like way experience how I feel in the wake of looking at your article. ufa168


Автор: UFABET168GO (не зарегистрирован), дата: 13 ноября, 2023 - 07:30
#permalink

ทางเข้าufabet168 vip เว็บตรง เสถียร ใช้งานง่ายที่สุด


Автор: Гостьsdf (не зарегистрирован), дата: 15 ноября, 2023 - 20:23
#permalink

Great article, thanks for sharing.


Автор: betflix vip (не зарегистрирован), дата: 17 ноября, 2023 - 13:06
#permalink

betflix vip Thanks for ones marvelous posting! I truly enjoyed reading it, you will be a great author. I will make sure to bookmark your blog and will often come back sometime soon. I want to encourage yourself to continue your great writing, have a nice holiday weekend!


Автор: SDSDA (не зарегистрирован), дата: 21 ноября, 2023 - 18:21
#permalink

부천오피

Thanks for picking out the time to discuss this, I feel great about it and love studying more on this topic. It is extremely helpful for me. Thanks for such a valuable help again.


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
10 + 6 =
Введите результат. Например, для 1+3, введите 4.
 
Текущий раздел
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum