<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>Дима</title><author><name>Дима</name></author><id>https://teletype.in/atom/dimas3729</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/dimas3729?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@dimas3729?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=dimas3729"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/dimas3729?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-09-21T09:54:56.442Z</updated><entry><id>dimas3729:FefISAQAxQ</id><link rel="alternate" type="text/html" href="https://teletype.in/@dimas3729/FefISAQAxQ?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=dimas3729"></link><title>Операторы сравнения</title><published>2025-12-01T19:18:12.685Z</published><updated>2025-12-01T19:18:12.685Z</updated><summary type="html">Операторы сравнения</summary><content type="html">
  &lt;p id=&quot;RO0u&quot;&gt;&lt;strong&gt;&lt;u&gt;Операторы сравнения&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;6YG9&quot;&gt;Больше/меньше: a &amp;gt; b, a &amp;lt; b.&lt;br /&gt;Больше/меньше или равно: a &amp;gt;= b, a &amp;lt;= b.&lt;br /&gt;Равно: a == b. Обратите внимание, для сравнения используется двойной знак равенства ==. Один знак равенства a = b означал бы присваивание.&lt;br /&gt;Не равно. В математике обозначается символом ≠, но в JavaScript записывается как a != b.&lt;/p&gt;
  &lt;h3 id=&quot;SlbE&quot;&gt;Результат сравнения имеет логический тип&lt;/h3&gt;
  &lt;p id=&quot;3wYG&quot;&gt;&lt;u&gt;Все операторы сравнения возвращают значение логического типа:&lt;/u&gt;&lt;br /&gt;true – означает «да», «верно», «истина».&lt;br /&gt;false – означает «нет», «неверно», «ложь».&lt;/p&gt;
  &lt;p id=&quot;4sZI&quot;&gt;&lt;strong&gt;&lt;u&gt;Сравнение строк&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;PKWc&quot;&gt;Чтобы определить, что одна строка больше другой, JavaScript использует «алфавитный» или «лексикографический» порядок.&lt;br /&gt;Другими словами, строки сравниваются посимвольно.&lt;/p&gt;
  &lt;p id=&quot;AIkd&quot;&gt;Алгоритм сравнения двух строк довольно прост:&lt;/p&gt;
  &lt;p id=&quot;mTDW&quot;&gt;Сначала сравниваются первые символы строк.&lt;br /&gt;Если первый символ первой строки больше (меньше), чем первый символ второй, то первая строка больше (меньше) второй. Сравнение завершено.&lt;br /&gt;Если первые символы равны, то таким же образом сравниваются уже вторые символы строк.&lt;br /&gt;Сравнение продолжается, пока не закончится одна из строк.&lt;br /&gt;Если обе строки заканчиваются одновременно, то они равны. Иначе, большей считается более длинная строка.&lt;br /&gt;В примерах выше сравнение &amp;#x27;Я&amp;#x27; &amp;gt; &amp;#x27;А&amp;#x27; завершится на первом шаге, тогда как строки &amp;#x27;Коты&amp;#x27; и &amp;#x27;Кода&amp;#x27; будут сравниваться посимвольно:&lt;/p&gt;
  &lt;p id=&quot;eKgC&quot;&gt;1. К равна К.&lt;br /&gt;2. о равна о.&lt;br /&gt;3. т больше, чем д. На этом сравнение заканчивается. Первая строка больше.&lt;/p&gt;
  &lt;p id=&quot;KYku&quot;&gt;&lt;strong&gt;&lt;u&gt;Сравнение разных типов&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;nYzy&quot;&gt;При сравнении значений разных типов JavaScript приводит каждое из них к числу.&lt;/p&gt;
  &lt;p id=&quot;b1Xh&quot;&gt;&lt;u&gt;Например:&lt;/u&gt;&lt;br /&gt;alert( &amp;#x27;2&amp;#x27; &amp;gt; 1 ); // true, строка &amp;#x27;2&amp;#x27; становится числом 2&lt;br /&gt;alert( &amp;#x27;01&amp;#x27; == 1 ); // true, строка &amp;#x27;01&amp;#x27; становится числом 1&lt;br /&gt;Логическое значение true становится 1, а false – 0.&lt;/p&gt;
  &lt;p id=&quot;8wPi&quot;&gt;Например:&lt;br /&gt;alert( true == 1 ); // true&lt;br /&gt;alert( false == 0 ); // true&lt;/p&gt;
  &lt;p id=&quot;5h26&quot;&gt;&lt;strong&gt;&lt;u&gt;Строгое сравнение&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;h3 id=&quot;hT4h&quot;&gt;Оператор строгого равенства === проверяет равенство без приведения типов.&lt;/h3&gt;
  &lt;p id=&quot;HbMw&quot;&gt;Другими словами, если a и b имеют разные типы, то проверка a === b немедленно возвращает false без попытки их преобразования.&lt;/p&gt;
  &lt;p id=&quot;F2vI&quot;&gt;&lt;u&gt;Давайте проверим:&lt;/u&gt;&lt;br /&gt;alert( 0 === false ); // false, так как сравниваются разные типы&lt;/p&gt;
  &lt;h3 id=&quot;YqJ1&quot;&gt;Ещё есть оператор строгого неравенства !==, аналогичный !=.&lt;/h3&gt;
  &lt;p id=&quot;LFFN&quot;&gt;&lt;strong&gt;&lt;u&gt;Сравнение с null и undefined&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;3aqU&quot;&gt;&lt;strong&gt;&lt;u&gt;Nтого&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Операторы сравнения возвращают значения логического типа.&lt;br /&gt;Строки сравниваются посимвольно в лексикографическом порядке.&lt;br /&gt;Значения разных типов при сравнении приводятся к числу. Исключением является сравнение с помощью операторов строгого равенства/неравенства.&lt;br /&gt;Значения null и undefined равны == друг другу и не равны любому другому значению.&lt;br /&gt;Будьте осторожны при использовании операторов сравнений вроде &amp;gt; и &amp;lt; с переменными, которые могут принимать значения null/undefined. Хорошей идеей будет сделать отдельную проверку на null/undefined.&lt;/p&gt;

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

</content></entry><entry><id>dimas3729:esauqwS429</id><link rel="alternate" type="text/html" href="https://teletype.in/@dimas3729/esauqwS429?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=dimas3729"></link><title>Преобразование типов</title><published>2025-11-28T19:51:12.555Z</published><updated>2025-11-28T19:51:12.555Z</updated><summary type="html">Строковое преобразование</summary><content type="html">
  &lt;p id=&quot;HwXE&quot;&gt;&lt;strong&gt;&lt;u&gt;Строковое преобразование&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;IFnU&quot;&gt;Строковое преобразование происходит, когда требуется представление чего-либо в виде строки.&lt;br /&gt;&lt;u&gt;Например&lt;/u&gt;, alert(value) преобразует значение к строке.&lt;br /&gt;Также мы можем использовать функцию String(value), чтобы преобразовать значение к строке:&lt;br /&gt;let value = true;&lt;br /&gt;alert(typeof value); // boolean&lt;br /&gt;value = String(value); // теперь value это строка &amp;quot;true&amp;quot;&lt;br /&gt;alert(typeof value); // string&lt;br /&gt;&lt;strong&gt;Преобразование происходит очевидным образом. false становится &amp;quot;false&amp;quot;, null становится &amp;quot;null&amp;quot; и т.п.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;1mmg&quot;&gt;&lt;strong&gt;&lt;u&gt;Численное преобразование&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;twaj&quot;&gt;Численное преобразование происходит в математических функциях и выражениях.&lt;br /&gt;&lt;u&gt;Например&lt;/u&gt;, когда операция деления / применяется не к числу:&lt;br /&gt;alert( &amp;quot;6&amp;quot; / &amp;quot;2&amp;quot; ); // 3, строки преобразуются в числа&lt;/p&gt;
  &lt;p id=&quot;FtA2&quot;&gt;&lt;strong&gt;Мы можем использовать функцию Number(value), чтобы явно преобразовать value к числу:&lt;/strong&gt;&lt;br /&gt;let str = &amp;quot;123&amp;quot;;&lt;br /&gt;alert(typeof str); // string&lt;br /&gt;let num = Number(str); // становится числом 123&lt;br /&gt;alert(typeof num); // number&lt;/p&gt;
  &lt;p id=&quot;67k3&quot;&gt;&lt;strong&gt;&lt;u&gt;Логическое преобразование&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;8uBA&quot;&gt;Происходит в логических операциях (позже мы познакомимся с условными проверками и подобными конструкциями), но также может быть выполнено явно с помощью функции Boolean(value).&lt;br /&gt;&lt;u&gt;Правило преобразования:&lt;/u&gt;&lt;br /&gt;Значения, которые интуитивно «пустые», вроде 0, пустой строки, null, undefined и NaN, становятся false.&lt;br /&gt;Все остальные значения становятся true.&lt;/p&gt;
  &lt;p id=&quot;DDSq&quot;&gt;&lt;u&gt;Например:&lt;/u&gt;&lt;br /&gt;alert( Boolean(1) ); // true&lt;br /&gt;alert( Boolean(0) ); // false&lt;br /&gt;alert( Boolean(&amp;quot;Привет!&amp;quot;) ); // true&lt;br /&gt;alert( Boolean(&amp;quot;&amp;quot;) ); // false&lt;/p&gt;
  &lt;p id=&quot;ImRx&quot;&gt;&lt;strong&gt;&lt;u&gt;Итого&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Существует 3 наиболее широко используемых преобразования: строковое, численное и логическое.&lt;/p&gt;
  &lt;p id=&quot;oCwn&quot;&gt;&lt;strong&gt;Строковое&lt;/strong&gt; – Происходит, когда нам нужно что-то вывести. Может быть вызвано с помощью String(value). Для примитивных значений работает очевидным образом.&lt;/p&gt;
  &lt;p id=&quot;zdie&quot;&gt;&lt;strong&gt;Численное&lt;/strong&gt; – Происходит в математических операциях. Может быть вызвано с помощью Number(value).&lt;/p&gt;
  &lt;p id=&quot;D5QU&quot;&gt;&lt;u&gt;Преобразование подчиняется правилам:&lt;/u&gt;&lt;br /&gt;Значение Становится…&lt;br /&gt;undefined NaN&lt;br /&gt;null 0&lt;br /&gt;true / false 1 / 0&lt;br /&gt;string Пробельные символы по краям обрезаются. Далее, если остаётся пустая строка, то получаем 0, иначе из непустой строки «считывается» число. При ошибке результат NaN.&lt;/p&gt;
  &lt;p id=&quot;BwSM&quot;&gt;&lt;strong&gt;Логическое&lt;/strong&gt; – Происходит в логических операциях. Может быть вызвано с помощью Boolean(value).&lt;/p&gt;
  &lt;p id=&quot;vsKw&quot;&gt;&lt;u&gt;Подчиняется правилам:&lt;/u&gt;&lt;br /&gt;Значение Становится…&lt;br /&gt;0, null, undefined, NaN, &amp;quot;&amp;quot; false&lt;br /&gt;любое другое значение true&lt;/p&gt;
  &lt;p id=&quot;gBDL&quot;&gt;Большую часть из этих правил легко понять и запомнить. Особые случаи, в которых часто допускаются ошибки:&lt;br /&gt;undefined при численном преобразовании становится NaN, не 0.&lt;br /&gt;&amp;quot;0&amp;quot; и строки из одних пробелов типа &amp;quot; &amp;quot; при логическом преобразовании всегда true.&lt;/p&gt;

</content></entry><entry><id>dimas3729:ZJR9KOMXTR</id><link rel="alternate" type="text/html" href="https://teletype.in/@dimas3729/ZJR9KOMXTR?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=dimas3729"></link><title>Взаимодействие: alert, prompt, confirm</title><published>2025-11-27T19:01:58.309Z</published><updated>2025-11-27T19:01:58.309Z</updated><summary type="html">alert - Она показывает сообщение и ждёт, пока пользователь нажмёт кнопку «ОК».</summary><content type="html">
  &lt;p id=&quot;5Blk&quot;&gt;&lt;strong&gt;&lt;u&gt;alert&lt;/u&gt;&lt;/strong&gt; - Она показывает сообщение и ждёт, пока пользователь нажмёт кнопку «ОК».&lt;/p&gt;
  &lt;p id=&quot;AZvt&quot;&gt;Например: &lt;br /&gt;alert(&amp;quot;Hello&amp;quot;);&lt;/p&gt;
  &lt;p id=&quot;ghbZ&quot;&gt;&lt;strong&gt;&lt;u&gt;prompt&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;mHLX&quot;&gt;&lt;strong&gt;Функция prompt принимает два аргумента:&lt;/strong&gt;&lt;br /&gt;1. result = prompt(title, [default]); &lt;br /&gt;Этот код отобразит модальное окно с текстом, полем для ввода текста и кнопками OK/Отмена.&lt;br /&gt;title - Текст для отображения в окне.&lt;br /&gt;default - Необязательный второй параметр, который устанавливает начальное значение в поле для текста в окне.&lt;/p&gt;
  &lt;p id=&quot;dj8K&quot;&gt;let age = prompt(&amp;#x27;Сколько тебе лет?&amp;#x27;, 100);&lt;br /&gt;alert(&lt;code&gt;Тебе ${age} лет!&lt;/code&gt;); // Тебе 100 лет!&lt;/p&gt;
  &lt;p id=&quot;vFAJ&quot;&gt;&lt;strong&gt;&lt;u&gt;confirm&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;6Qd2&quot;&gt;&lt;strong&gt;Синтаксис:&lt;/strong&gt;&lt;br /&gt;result = confirm(question);&lt;/p&gt;
  &lt;p id=&quot;5u0M&quot;&gt;Функция confirm отображает модальное окно с текстом вопроса question и двумя кнопками: OK и Отмена.&lt;br /&gt;Результат – true, если нажата кнопка OK. В других случаях – false.&lt;/p&gt;
  &lt;p id=&quot;as3n&quot;&gt;Например:&lt;br /&gt;let isBoss = confirm(&amp;quot;Ты здесь главный?&amp;quot;);&lt;br /&gt;alert( isBoss ); // true, если нажата OK&lt;/p&gt;
  &lt;p id=&quot;22Ao&quot;&gt;&lt;strong&gt;&lt;u&gt;Итого&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;Мы рассмотрели 3 функции браузера для взаимодействия с пользователем:&lt;/p&gt;
  &lt;p id=&quot;Il3O&quot;&gt;&lt;strong&gt;alert&lt;/strong&gt;&lt;br /&gt;показывает сообщение.&lt;/p&gt;
  &lt;p id=&quot;iQun&quot;&gt;&lt;strong&gt;prompt&lt;/strong&gt;&lt;br /&gt;показывает сообщение и запрашивает ввод текста от пользователя. Возвращает напечатанный в поле ввода текст или null, если была нажата кнопка «Отмена» или Esc с клавиатуры.&lt;/p&gt;
  &lt;p id=&quot;3lv6&quot;&gt;&lt;strong&gt;confirm&lt;/strong&gt;&lt;br /&gt;показывает сообщение и ждёт, пока пользователь нажмёт OK или Отмена. Возвращает true, если нажата OK, и false, если нажата кнопка «Отмена» или Esc с клавиатуры.&lt;/p&gt;
  &lt;p id=&quot;bADh&quot;&gt;Все эти методы являются модальными: останавливают выполнение скриптов и не позволяют пользователю взаимодействовать с остальной частью страницы до тех пор, пока окно не будет закрыто.&lt;/p&gt;
  &lt;p id=&quot;wWCe&quot;&gt;На все указанные методы распространяются два ограничения:&lt;br /&gt;Расположение окон определяется браузером. Обычно окна находятся в центре.&lt;br /&gt;Визуальное отображение окон зависит от браузера, и мы не можем изменить их вид.&lt;br /&gt;Такова цена простоты. Есть другие способы показать более приятные глазу окна с богатой функциональностью для взаимодействия с пользователем, но если «навороты» не имеют значения, то данные методы работают отлично.&lt;/p&gt;

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

</content></entry></feed>