<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Дима</title><generator>teletype.in</generator><description><![CDATA[Дима]]></description><image><url>https://img4.teletype.in/files/3c/28/3c281016-aa14-42ac-b804-3b2987efb6e1.png</url><title>Дима</title><link>https://teletype.in/@dimas3729</link></image><link>https://teletype.in/@dimas3729?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=dimas3729</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/dimas3729?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/dimas3729?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Mon, 21 Sep 2026 09:55:03 GMT</pubDate><lastBuildDate>Mon, 21 Sep 2026 09:55:03 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@dimas3729/FefISAQAxQ</guid><link>https://teletype.in/@dimas3729/FefISAQAxQ?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=dimas3729</link><comments>https://teletype.in/@dimas3729/FefISAQAxQ?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=dimas3729#comments</comments><dc:creator>dimas3729</dc:creator><title>Операторы сравнения</title><pubDate>Mon, 01 Dec 2025 19:18:12 GMT</pubDate><description><![CDATA[Операторы сравнения]]></description><content:encoded><![CDATA[
  <p id="RO0u"><strong><u>Операторы сравнения</u></strong></p>
  <p id="6YG9">Больше/меньше: a &gt; b, a &lt; b.<br />Больше/меньше или равно: a &gt;= b, a &lt;= b.<br />Равно: a == b. Обратите внимание, для сравнения используется двойной знак равенства ==. Один знак равенства a = b означал бы присваивание.<br />Не равно. В математике обозначается символом ≠, но в JavaScript записывается как a != b.</p>
  <h3 id="SlbE">Результат сравнения имеет логический тип</h3>
  <p id="3wYG"><u>Все операторы сравнения возвращают значение логического типа:</u><br />true – означает «да», «верно», «истина».<br />false – означает «нет», «неверно», «ложь».</p>
  <p id="4sZI"><strong><u>Сравнение строк</u></strong></p>
  <p id="PKWc">Чтобы определить, что одна строка больше другой, JavaScript использует «алфавитный» или «лексикографический» порядок.<br />Другими словами, строки сравниваются посимвольно.</p>
  <p id="AIkd">Алгоритм сравнения двух строк довольно прост:</p>
  <p id="mTDW">Сначала сравниваются первые символы строк.<br />Если первый символ первой строки больше (меньше), чем первый символ второй, то первая строка больше (меньше) второй. Сравнение завершено.<br />Если первые символы равны, то таким же образом сравниваются уже вторые символы строк.<br />Сравнение продолжается, пока не закончится одна из строк.<br />Если обе строки заканчиваются одновременно, то они равны. Иначе, большей считается более длинная строка.<br />В примерах выше сравнение &#x27;Я&#x27; &gt; &#x27;А&#x27; завершится на первом шаге, тогда как строки &#x27;Коты&#x27; и &#x27;Кода&#x27; будут сравниваться посимвольно:</p>
  <p id="eKgC">1. К равна К.<br />2. о равна о.<br />3. т больше, чем д. На этом сравнение заканчивается. Первая строка больше.</p>
  <p id="KYku"><strong><u>Сравнение разных типов</u></strong></p>
  <p id="nYzy">При сравнении значений разных типов JavaScript приводит каждое из них к числу.</p>
  <p id="b1Xh"><u>Например:</u><br />alert( &#x27;2&#x27; &gt; 1 ); // true, строка &#x27;2&#x27; становится числом 2<br />alert( &#x27;01&#x27; == 1 ); // true, строка &#x27;01&#x27; становится числом 1<br />Логическое значение true становится 1, а false – 0.</p>
  <p id="8wPi">Например:<br />alert( true == 1 ); // true<br />alert( false == 0 ); // true</p>
  <p id="5h26"><strong><u>Строгое сравнение</u></strong></p>
  <h3 id="hT4h">Оператор строгого равенства === проверяет равенство без приведения типов.</h3>
  <p id="HbMw">Другими словами, если a и b имеют разные типы, то проверка a === b немедленно возвращает false без попытки их преобразования.</p>
  <p id="F2vI"><u>Давайте проверим:</u><br />alert( 0 === false ); // false, так как сравниваются разные типы</p>
  <h3 id="YqJ1">Ещё есть оператор строгого неравенства !==, аналогичный !=.</h3>
  <p id="LFFN"><strong><u>Сравнение с null и undefined</u></strong></p>
  <p id="3aqU"><strong><u>Nтого</u></strong><br />Операторы сравнения возвращают значения логического типа.<br />Строки сравниваются посимвольно в лексикографическом порядке.<br />Значения разных типов при сравнении приводятся к числу. Исключением является сравнение с помощью операторов строгого равенства/неравенства.<br />Значения null и undefined равны == друг другу и не равны любому другому значению.<br />Будьте осторожны при использовании операторов сравнений вроде &gt; и &lt; с переменными, которые могут принимать значения null/undefined. Хорошей идеей будет сделать отдельную проверку на null/undefined.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@dimas3729/x9sPRakO6n</guid><link>https://teletype.in/@dimas3729/x9sPRakO6n?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=dimas3729</link><comments>https://teletype.in/@dimas3729/x9sPRakO6n?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=dimas3729#comments</comments><dc:creator>dimas3729</dc:creator><title>Базовые операторы, математика</title><pubDate>Sat, 29 Nov 2025 20:56:38 GMT</pubDate><description><![CDATA[Термины: «унарный», «бинарный», «операнд»]]></description><content:encoded><![CDATA[
  <p id="eh4O"><strong><u>Термины: «унарный», «бинарный», «операнд»</u></strong></p>
  <p id="xJed"><strong>Операнд</strong> – то, к чему применяется оператор. Например, в умножении 5 * 2 есть два операнда: левый операнд равен 5, а правый операнд равен 2. Иногда их называют «аргументами» вместо «операндов».</p>
  <p id="uiZ1"><strong>Унарным называется оператор</strong>, который применяется к одному операнду. Например, оператор унарный минус &quot;-&quot; меняет знак числа на противоположный:<br />let x = 1;<br />x = -x;<br />alert( x ); // -1, применили унарный минус</p>
  <p id="UD55"><strong>Бинарным называется оператор</strong>, который применяется к двум операндам. Тот же минус существует и в бинарной форме:<br />let x = 1, y = 3;</p>
  <p id="1aFO"><strong>Сложение и преобразование строк — это особенность бинарного плюса +</strong>. Другие арифметические операторы работают только с числами и всегда преобразуют операнды в числа.<br /><u>Например, вычитание и деление:</u><br />alert( 6 - &#x27;2&#x27; ); // 4, &#x27;2&#x27; приводится к числу<br />alert( &#x27;6&#x27; / &#x27;2&#x27; ); // 3, оба операнда приводятся к числам<br />alert( y - x ); // 2, бинарный минус вычитает значения</p>
  <p id="JDWw"><strong><u>Математика</u></strong></p>
  <p id="CFTj"><u>Поддерживаются следующие математические операторы:</u><br />Сложение +,<br />Вычитание -,<br />Умножение *,<br />Деление /,<br />Взятие остатка от деления %,<br />Возведение в степень **.</p>
  <h3 id="86SL">Взятие остатка %</h3>
  <p id="axAb">Оператор взятия остатка %, несмотря на обозначение, никакого отношения к процентам не имеет.<br />Результат a % b – это остаток от целочисленного деления a на b.<u>Например:</u><br />alert( 5 % 2 ); // 1, остаток от деления 5 на 2<br />alert( 8 % 3 ); // 2, остаток от деления 8 на 3<br />alert( 8 % 4 ); // 0, остаток от деления 8 на 4</p>
  <h3 id="L9dz">Возведение в степень **</h3>
  <p id="ZqJK">Оператор возведения в степень a ** b возводит a в степень b.<br />В школьной математике мы записываем это как ab.<br /><u>Например:</u><br />alert( 2 <strong> 2 ); // 2² = 4alert( 2 </strong> 3 ); // 2³ = 8<br />alert( 2 <strong> 4 ); // 2⁴ = 16</strong></p>
  <p id="35VM"><strong>Математически, оператор работает и для нецелых чисел. Например, квадратный корень является возведением в степень ½:alert( 4 </strong> (1/2) ); // 2 (степень 1/2 эквивалентна взятию квадратного корня)</p>
  <p id="KOvW"><strong><u>Сложение строк при помощи бинарного +</u></strong></p>
  <p id="b8u6">Если бинарный оператор &#x27;+&#x27; применить к строкам, то он их объединяет в одну:<br />let s = &quot;моя&quot; + &quot;строка&quot;;<br />alert(s); // моястрока</p>
  <p id="dYyy">Если хотя бы один операнд является строкой, то второй будет также преобразован в строку.<br /><u>Например:</u><br />alert( &#x27;1&#x27; + 2 ); // &quot;12&quot;<br />alert( 2 + &#x27;1&#x27; ); // &quot;21&quot;</p>
  <p id="NMoi"><strong><u>Приведение к числу, унарный +</u></strong></p>
  <p id="oHhJ">Унарный, то есть применённый к одному значению, плюс + ничего не делает с числами. Но если операнд не число, унарный плюс преобразует его в число.<br /><u>Например:</u><br />// Не влияет на числа<br />let x = 1;<br />alert( +x ); // 1<br />let y = -2;<br />alert( +y ); // -2<br />// Преобразует не числа в числа<br />alert( +true ); // 1<br />alert( +&quot;&quot; ); // 0</p>
  <h3 id="wHnL">На самом деле это то же самое, что и Number(...), только короче.</h3>
  <p id="Vnvm"><strong><u>Приоритет операторов</u></strong></p>
  <p id="1Jt4">В JavaScript много операторов. Каждый оператор имеет соответствующий номер приоритета. Тот, у кого это число больше, – выполнится раньше. Если приоритет одинаковый, то порядок выполнения – слева направо.</p>
  <p id="4kEn"><strong>Приоритет Название Обозначение</strong><br />… … …<br />15 унарный плюс +<br />15 унарный минус -<br />14 возведение в степень **<br />13 умножение *<br />13 деление /<br />12 сложение +<br />12 вычитание -<br />… … …<br />2 присваивание =<br />… … …</p>
  <p id="hoW4"><strong><u>Присваивание</u></strong></p>
  <p id="XRwU">Когда переменной что-либо присваивают, например, x = 2 * 2 + 1, то сначала выполнится арифметика, а уже затем произойдёт присваивание = с сохранением результата в x.<br />let x = 2 * 2 + 1;<br />alert( x ); // 5</p>
  <p id="KIKW"><u>Вызов x = value записывает value в x и возвращает его.</u><br />Благодаря этому присваивание можно использовать как часть более сложного выражения:<br />let a = 1;<br />let b = 2;<br />let c = 3 - (a = b + 1);<br />alert( a ); // 3<br />alert( c ); // 0</p>
  <p id="OfOS"><strong>Присваивание по цепочке</strong>:<br />let a, b, c;<br />a = b = c = 2 + 2;<br />alert( a ); // 4<br />alert( b ); // 4<br />alert( c ); // 4</p>
  <p id="36Fv"><strong><u>Сокращённая арифметика с присваиванием</u></strong></p>
  <p id="kWp8">Часто нужно применить оператор к переменной и сохранить результат в ней же.<br /><u>Например:</u><br />let n = 2;<br />n = n + 5;<br />n = n * 2;</p>
  <p id="8Vnn"><u>Эту запись можно укоротить при помощи совмещённых операторов += и *=:</u><br />let n = 2;<br />n += 5; // теперь n = 7 (работает как n = n + 5)<br />n *= 2; // теперь n = 14 (работает как n = n * 2)<br />alert( n ); // 14</p>
  <h3 id="i156">Подобные краткие формы записи существуют для всех арифметических и побитовых операторов: /=, -=, **= и так далее.</h3>
  <p id="ks4W"><strong><u>Инкремент/декремент</u></strong></p>
  <p id="QarQ"><strong>Инкремент</strong> ++ увеличивает переменную на 1:<br />let counter = 2;<br />counter++; // работает как counter = counter + 1, просто запись короче<br />alert( counter ); // 3</p>
  <p id="6F4B"><strong>Декремент</strong> -- уменьшает переменную на 1:<br />let counter = 2;<br />counter--; // работает как counter = counter - 1, просто запись короче<br />alert( counter ); // 1</p>
  <p id="DspT"><strong>Важно:</strong><br />Инкремент/декремент можно применить только к переменной. Попытка использовать его на значении, типа 5++, приведёт к ошибке.</p>
  <p id="paQ6"><strong><u>Оператор «запятая»</u></strong></p>
  <p id="18Ac">Оператор «запятая» предоставляет нам возможность вычислять несколько выражений, разделяя их запятой ,. Каждое выражение выполняется, но возвращается результат только последнего.</p>
  <p id="h5fR"><u>Например:</u><br />let a = (1 + 2, 3 + 4);<br />alert( a ); // 7 (результат вычисления 3 + 4)</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@dimas3729/esauqwS429</guid><link>https://teletype.in/@dimas3729/esauqwS429?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=dimas3729</link><comments>https://teletype.in/@dimas3729/esauqwS429?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=dimas3729#comments</comments><dc:creator>dimas3729</dc:creator><title>Преобразование типов</title><pubDate>Fri, 28 Nov 2025 19:51:12 GMT</pubDate><description><![CDATA[Строковое преобразование]]></description><content:encoded><![CDATA[
  <p id="HwXE"><strong><u>Строковое преобразование</u></strong></p>
  <p id="IFnU">Строковое преобразование происходит, когда требуется представление чего-либо в виде строки.<br /><u>Например</u>, alert(value) преобразует значение к строке.<br />Также мы можем использовать функцию String(value), чтобы преобразовать значение к строке:<br />let value = true;<br />alert(typeof value); // boolean<br />value = String(value); // теперь value это строка &quot;true&quot;<br />alert(typeof value); // string<br /><strong>Преобразование происходит очевидным образом. false становится &quot;false&quot;, null становится &quot;null&quot; и т.п.</strong></p>
  <p id="1mmg"><strong><u>Численное преобразование</u></strong></p>
  <p id="twaj">Численное преобразование происходит в математических функциях и выражениях.<br /><u>Например</u>, когда операция деления / применяется не к числу:<br />alert( &quot;6&quot; / &quot;2&quot; ); // 3, строки преобразуются в числа</p>
  <p id="FtA2"><strong>Мы можем использовать функцию Number(value), чтобы явно преобразовать value к числу:</strong><br />let str = &quot;123&quot;;<br />alert(typeof str); // string<br />let num = Number(str); // становится числом 123<br />alert(typeof num); // number</p>
  <p id="67k3"><strong><u>Логическое преобразование</u></strong></p>
  <p id="8uBA">Происходит в логических операциях (позже мы познакомимся с условными проверками и подобными конструкциями), но также может быть выполнено явно с помощью функции Boolean(value).<br /><u>Правило преобразования:</u><br />Значения, которые интуитивно «пустые», вроде 0, пустой строки, null, undefined и NaN, становятся false.<br />Все остальные значения становятся true.</p>
  <p id="DDSq"><u>Например:</u><br />alert( Boolean(1) ); // true<br />alert( Boolean(0) ); // false<br />alert( Boolean(&quot;Привет!&quot;) ); // true<br />alert( Boolean(&quot;&quot;) ); // false</p>
  <p id="ImRx"><strong><u>Итого</u></strong><br />Существует 3 наиболее широко используемых преобразования: строковое, численное и логическое.</p>
  <p id="oCwn"><strong>Строковое</strong> – Происходит, когда нам нужно что-то вывести. Может быть вызвано с помощью String(value). Для примитивных значений работает очевидным образом.</p>
  <p id="zdie"><strong>Численное</strong> – Происходит в математических операциях. Может быть вызвано с помощью Number(value).</p>
  <p id="D5QU"><u>Преобразование подчиняется правилам:</u><br />Значение Становится…<br />undefined NaN<br />null 0<br />true / false 1 / 0<br />string Пробельные символы по краям обрезаются. Далее, если остаётся пустая строка, то получаем 0, иначе из непустой строки «считывается» число. При ошибке результат NaN.</p>
  <p id="BwSM"><strong>Логическое</strong> – Происходит в логических операциях. Может быть вызвано с помощью Boolean(value).</p>
  <p id="vsKw"><u>Подчиняется правилам:</u><br />Значение Становится…<br />0, null, undefined, NaN, &quot;&quot; false<br />любое другое значение true</p>
  <p id="gBDL">Большую часть из этих правил легко понять и запомнить. Особые случаи, в которых часто допускаются ошибки:<br />undefined при численном преобразовании становится NaN, не 0.<br />&quot;0&quot; и строки из одних пробелов типа &quot; &quot; при логическом преобразовании всегда true.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@dimas3729/ZJR9KOMXTR</guid><link>https://teletype.in/@dimas3729/ZJR9KOMXTR?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=dimas3729</link><comments>https://teletype.in/@dimas3729/ZJR9KOMXTR?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=dimas3729#comments</comments><dc:creator>dimas3729</dc:creator><title>Взаимодействие: alert, prompt, confirm</title><pubDate>Thu, 27 Nov 2025 19:01:58 GMT</pubDate><description><![CDATA[alert - Она показывает сообщение и ждёт, пока пользователь нажмёт кнопку «ОК».]]></description><content:encoded><![CDATA[
  <p id="5Blk"><strong><u>alert</u></strong> - Она показывает сообщение и ждёт, пока пользователь нажмёт кнопку «ОК».</p>
  <p id="AZvt">Например: <br />alert(&quot;Hello&quot;);</p>
  <p id="ghbZ"><strong><u>prompt</u></strong></p>
  <p id="mHLX"><strong>Функция prompt принимает два аргумента:</strong><br />1. result = prompt(title, [default]); <br />Этот код отобразит модальное окно с текстом, полем для ввода текста и кнопками OK/Отмена.<br />title - Текст для отображения в окне.<br />default - Необязательный второй параметр, который устанавливает начальное значение в поле для текста в окне.</p>
  <p id="dj8K">let age = prompt(&#x27;Сколько тебе лет?&#x27;, 100);<br />alert(<code>Тебе ${age} лет!</code>); // Тебе 100 лет!</p>
  <p id="vFAJ"><strong><u>confirm</u></strong></p>
  <p id="6Qd2"><strong>Синтаксис:</strong><br />result = confirm(question);</p>
  <p id="5u0M">Функция confirm отображает модальное окно с текстом вопроса question и двумя кнопками: OK и Отмена.<br />Результат – true, если нажата кнопка OK. В других случаях – false.</p>
  <p id="as3n">Например:<br />let isBoss = confirm(&quot;Ты здесь главный?&quot;);<br />alert( isBoss ); // true, если нажата OK</p>
  <p id="22Ao"><strong><u>Итого</u></strong><br />Мы рассмотрели 3 функции браузера для взаимодействия с пользователем:</p>
  <p id="Il3O"><strong>alert</strong><br />показывает сообщение.</p>
  <p id="iQun"><strong>prompt</strong><br />показывает сообщение и запрашивает ввод текста от пользователя. Возвращает напечатанный в поле ввода текст или null, если была нажата кнопка «Отмена» или Esc с клавиатуры.</p>
  <p id="3lv6"><strong>confirm</strong><br />показывает сообщение и ждёт, пока пользователь нажмёт OK или Отмена. Возвращает true, если нажата OK, и false, если нажата кнопка «Отмена» или Esc с клавиатуры.</p>
  <p id="bADh">Все эти методы являются модальными: останавливают выполнение скриптов и не позволяют пользователю взаимодействовать с остальной частью страницы до тех пор, пока окно не будет закрыто.</p>
  <p id="wWCe">На все указанные методы распространяются два ограничения:<br />Расположение окон определяется браузером. Обычно окна находятся в центре.<br />Визуальное отображение окон зависит от браузера, и мы не можем изменить их вид.<br />Такова цена простоты. Есть другие способы показать более приятные глазу окна с богатой функциональностью для взаимодействия с пользователем, но если «навороты» не имеют значения, то данные методы работают отлично.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@dimas3729/RijEYXbtKm</guid><link>https://teletype.in/@dimas3729/RijEYXbtKm?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=dimas3729</link><comments>https://teletype.in/@dimas3729/RijEYXbtKm?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=dimas3729#comments</comments><dc:creator>dimas3729</dc:creator><title>Типы данных.</title><pubDate>Wed, 26 Nov 2025 20:35:37 GMT</pubDate><description><![CDATA[<img src="https://img2.teletype.in/files/dc/00/dc002baa-2f64-44c1-84c5-d739ebf58e7c.png"></img>Есть восемь основных типов данных в JavaScript.]]></description><content:encoded><![CDATA[
  <p id="MQul"><strong><u>Есть восемь основных типов данных в JavaScript.</u></strong></p>
  <p id="l49y"><strong><u>Число</u> - </strong><br />let n = 123;<br />n = 12.345; <br />Числовой тип данных (number) представляет как целочисленные значения, так и числа с плавающей точкой.</p>
  <p id="lvEU"><strong>Кроме обычных чисел, существуют так называемые «специальные числовые значения», которые относятся к этому типу данных: Infinity, -Infinity и NaN. </strong><br />Infinity представляет собой математическую бесконечность ∞<br />NaN означает вычислительную ошибку. Это результат неправильной или неопределённой математической операции.</p>
  <p id="mogT"><br /><strong><u>BigInt</u></strong> - позволяет работать с целыми числами произвольной длины.</p>
  <p id="mBlm">Чтобы создать значение типа BigInt, необходимо добавить n в конец числового литерала: <br />// символ &quot;n&quot; в конце означает, что это BigInt<br />const bigInt = 1234567890123456789012345678901234567890n;</p>
  <p id="ex8c"><strong><u>Строка</u></strong></p>
  <h3 id="ilYn">В JavaScript существует три типа кавычек.</h3>
  <p id="I6VE">Двойные кавычки: &quot;Привет&quot;.<br />Одинарные кавычки: &#x27;Привет&#x27;.<br />Обратные кавычки: &#x60;<code>Привет&#x60;</code>.</p>
  <p id="nRbQ">Обратные кавычки имеют расширенную функциональность. Они позволяют нам встраивать выражения в строку, заключая их в ${…}. Например:<br />alert( &#x60;результат: ${1 + 2}&#x60; ); // результат: 3</p>
  <p id="gJlu"><strong><u>Булевый (логический) тип</u></strong> - Булевый тип (boolean) может принимать только два значения: true (истина) и false (ложь).</p>
  <p id="CljU">Например:<br />let nameFieldChecked = true; // да, поле отмечено<br />let ageFieldChecked = false; // нет, поле не отмечено</p>
  <p id="WeIr">Булевые значения также могут быть результатом сравнений:<br />let isGreater = 4 &gt; 1;<br />alert( isGreater ); // true (результатом сравнения будет &quot;да&quot;)</p>
  <p id="UT8O"><strong><u>Значение «null»</u></strong> - Специальное значение null не относится ни к одному из типов, описанных выше. Оно формирует отдельный тип, который содержит только значение null:</p>
  <p id="0WcN">Например:<br />let age = null;</p>
  <p id="ZW1q"><strong><u>Значение «undefined»</u></strong> - Специальное значение undefined также стоит особняком. Оно формирует тип из самого себя так же, как и null. Оно означает, что «значение не было присвоено».</p>
  <p id="xNQk">Если переменная объявлена, но ей не присвоено никакого значения, то её значением будет undefined:<br />let age;<br />alert(age); // выведет &quot;undefined&quot;</p>
  <p id="dRp6"><strong><u>Объекты и символы</u></strong> - Тип object (объект) – особенный. Все остальные типы называются «примитивными», потому что их значениями могут быть только простые значения (будь то строка, или число, или что-то ещё). В объектах же хранят коллекции данных или более сложные структуры.</p>
  <p id="WTYr">Тип symbol (символ) используется для создания уникальных идентификаторов в объектах. Мы упоминаем здесь о нём для полноты картины, изучим этот тип после объектов.</p>
  <p id="xizs"><strong><u>Оператор typeof</u></strong> - Оператор typeof возвращает тип аргумента. Это полезно, когда мы хотим обрабатывать значения различных типов по-разному или просто хотим сделать проверку.</p>
  <p id="9MbV"><strong>У него есть две синтаксические формы:</strong><br />// Обычный синтаксис<br />typeof 5 // Выведет &quot;number&quot;<br />// Синтаксис, напоминающий вызов функции (встречается реже)<br />typeof(5) // Также выведет &quot;number&quot;</p>
  <p id="8Jak"><strong>Если передается выражение, то нужно заключать его в скобки, т.к. typeof имеет более высокий приоритет, чем бинарные операторы:</strong><br />typeof 50 + &quot; Квартир&quot;; // Выведет &quot;number Квартир&quot;<br />typeof (50 + &quot; Квартир&quot;); // Выведет &quot;string&quot;</p>
  <p id="ONnI"><strong><u>Итого</u></strong><br />В JavaScript есть 8 основных типов данных.</p>
  <p id="UFoN">Семь из них называют «примитивными» типами данных:</p>
  <p id="XEP8"><br /><strong>number -</strong> для любых чисел: целочисленных или чисел с плавающей точкой; целочисленные значения ограничены диапазоном ±(253-1).</p>
  <p id="tD4O"><br /><strong>bigint - </strong>для целых чисел произвольной длины.</p>
  <p id="iT0y"><br /><strong>string -</strong> для строк. Строка может содержать ноль или больше символов, нет отдельного символьного типа.</p>
  <p id="WGx2"><br /><strong>boolean -</strong> для true/false.</p>
  <p id="jGUo"><br /><strong>null -</strong> для неизвестных значений – отдельный тип, имеющий одно значение null.</p>
  <p id="jQiO"><br /><strong>undefined - </strong>для неприсвоенных значений – отдельный тип, имеющий одно значение undefined.</p>
  <p id="zM4o"><br /><strong>symbol - </strong>для уникальных идентификаторов.</p>
  <p id="rMWJ"><br />И один не является «примитивным» и стоит особняком:</p>
  <p id="MujC"><br /><strong>object - </strong>для более сложных структур данных.</p>
  <p id="SAZy"><br />Оператор typeof позволяет нам увидеть, какой тип данных сохранён в переменной.</p>
  <p id="54vj">Имеет две формы: typeof x или typeof(x).<br />Возвращает строку с именем типа. Например, &quot;string&quot;.<br />Для null возвращается &quot;object&quot; – это ошибка в языке, на самом деле это не объект.</p>

]]></content:encoded></item></channel></rss>