JavaScript заметки
الذهاب إلى القناة على Telegram
Регулярные заметки по практическому JavaScript. Обучащию посты позволят прокачать навыки во Frontend-разработке. Можно почитать пока компилируется проект :) Сотрудничество: @noname_media Канал на бирже: telega.in/channels/notesjs/card?r=Wj7h1mbl
إظهار المزيد7 368
المشتركون
-124 ساعات
-167 أيام
-5730 أيام
أرشيف المشاركات
7 368
Другие типы узлов
Есть и некоторые другие типы узлов, кроме элементов и текстовых узлов.
Например, узел-комментарий, который вы можете увидеть на картинке выше.
Здесь мы видим узел нового типа – комментарий, обозначенный как
#comment, между двумя текстовыми узлами.
Казалось бы – зачем комментарий в DOM? Он никак не влияет на визуальное отображение. Но есть важное правило: если что-то есть в HTML, то оно должно быть в DOM-дереве.
Все, что есть в HTML, даже комментарии, является частью DOM.
Даже директива <!DOCTYPE...>, которую мы ставим в начале HTML, тоже является DOM-узлом. Она находится в дереве DOM прямо перед <html>. Мы не будем рассматривать этот узел, мы даже не рисуем его на наших диаграммах, но он существует.
Даже объект document, представляющий весь документ, формально является DOM-узлом.
Существует 12 типов узлов. Но на практике мы в основном работаем с 4 из них: document, узлы-элементы, текстовые узлы, комментарии.
#браузер #документ #dom7 368
Как я стал айтишником, не умея писать код
1. Забил на курсы и онлайн-школы. Они не работают.
2. Подписался на IT Helper.
3. Через неделю написал свой первый сайт.
С чего начать кодить, какие сайты/приложения писать на старте, по каким урокам учиться – ребята запихнули всю теорию в реальные примеры и объяснили всё пошагово.
Самая востребованная профессия 21 века ждёт тебя по ссылке: @it_helper
7 368
Автоисправление
Если браузер сталкивается с некорректно написанным HTML-кодом, он автоматически корректирует его при построении DOM.
Например, в начале документа всегда должен быть тег
<html>. Даже если его нет в документе – он будет в дереве DOM, браузер его создаст. То же самое касается и тега <body>.
Например, если HTML-файл состоит из единственного слова "Привет", браузер обернёт его в теги <html> и <body>, добавит необходимый тег <head>.
При генерации DOM браузер самостоятельно обрабатывает ошибки в документе, закрывает теги и так далее.
В примере единственный тег <p> не закрыт, однако DOM будет нормальным, потому что браузер сам закроет тег и восстановит отсутствующие детали.
#браузер #документ #dom7 368
Хочешь постоянно практиковаться в решении задач и получать подробное объяснение?
Тогда подписывайся на JavaScript | Тесты для проверки знаний! Здесь ты найдешь огромное количество задач по JS с подробными объяснениями!
Переходи и развивайся ежедневно! 👇
7 368
Пример DOM
DOM – это представление HTML-документа в виде дерева тегов.
На картинке слева отображён пример простого HTML-документа, а справа DOM дерево тегов.
Каждый узел этого дерева – это объект.
Теги являются узлами-элементами (или просто элементами). Они образуют структуру дерева:
<html> – это корневой узел, <head> и <body> его дочерние узлы и т.д.
Текст внутри элементов образует текстовые узлы, обозначенные как #text. Текстовый узел содержит в себе только строку текста. У него не может быть потомков, т.е. он находится всегда на самом нижнем уровне.
Например, в теге <title> есть текстовый узел "О лосях".
Обратите внимание на специальные символы в текстовых узлах:
- перевод строки: ↵ (в JavaScript он обозначается как \n)
- пробел: ␣
#браузер #документ #dom7 368
МАРАФОН ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ «СВОЯ ОНЛАЙН-БИБЛИОТЕКА 1984»
⠀
С 4 по 17 апреля вы сможете погрузиться в мир IT и испытать свои силы в вёрстке и JavaScript'e на крутом обучающем марафоне от онлайн-школы METHED🔥
⠀
Кому подходит? ⬇️
🔹Начинающим фронтендерам — новые знания + полноценный проект в портфолио.
🔹Опытным специалистам — повышение мастерства + прокачка навыков и умений.
⠀
На марафоне будем верстать сайт библиотеки по макету Figma с помощью HTML, CSS/SCSS и JavaScript. Весь интерактив пишем на JavaScript — ES6 и выше (современный стандарт)
⠀
А также вы ⬇️
▪️Соберёте готовый проект при помощи gulp
▪️Напишете стили для проекта используя SCSS, адаптив.
▪️Научитесь работать с элементами DOM-дерева.
▪️Поработаете со стилями CSS с помощью JavaScript.
▪️Познакомитесь с шаблонными строками и интерполяцией.
Марафон пройдёт с 4 по 17 апреля в формате видеотрансляций с домашним заданием и проверкой от куратора. Стоимость — 990 ₽. Бонус - среди всех участников разыграем место на полном курсе от METHED по вёрстке или JavaScript на выбор.
⠀
Запись и подробная программа по ссылке ⬇️
⠀
https://bit.ly/3JWbFdQ
7 368
BOM (Browser Object Model)
Объектная модель браузера (Browser Object Model, BOM) – это дополнительные объекты, предоставляемые браузером (окружением), чтобы работать со всем, кроме документа.
Например:
- Объект navigator даёт информацию о самом браузере и операционной системе. Среди множества его свойств самыми известными являются:
navigator.userAgent – информация о текущем браузере, и navigator.platform – информация о платформе (может помочь в понимании того, в какой ОС открыт браузер – Windows/Linux/Mac и так далее).
- Объект location позволяет получить текущий URL и перенаправить браузер по новому адресу.
Пример как мы можем использовать объект location показан на рисунке.
Функции alert/confirm/prompt тоже являются частью BOM: они не относятся непосредственно к странице, но представляют собой методы объекта окна браузера для коммуникации с пользователем.
#браузер #документ7 368
⚡️Пользователей Windows атакует шпионская программа Vidar
Шпионское ПО скрыто в скомпилированных html-файлах справки Microsoft (chm)…
Впервые слышишь? Тогда тебе необходимо быть подписанным на канал Дверь в айти
Авторы канала позволят тебе оставаться в тренде последний событий, которые произошли в IT-сфере. Важные новости, лайфаки и советы- все это вы найдёте на канале Дверь в айти
7 368
DOM (Document Object Model)
Document Object Model, сокращённо DOM – объектная модель документа, которая представляет все содержимое страницы в виде объектов, которые можно менять.
Объект
document – основная «входная точка». С его помощью мы можем что-то создавать или менять на странице.
Мы использовали в примере только document.body.style, но на самом деле возможности по управлению страницей намного шире. Различные свойства и методы описаны в спецификации:
DOM Living Standard на https://dom.spec.whatwg.org
#браузер #документ7 368
Python теперь в телеграм!
Python — второй по популярности язык в мире. Он очень универсален: можно писать сайты, а можно искусственный интеллект. Теперь у Python есть русскоязычный канал. Это первоисточник всего, что появляется в платных курсах и остальных ресурсах. Стоит подписаться!
7 368
Браузерное окружение, спецификации
Язык JavaScript изначально был создан для веб-браузеров. Но с тех пор он значительно эволюционировал и превратился в кроссплатформенный язык программирования для решения широкого круга задач.
Сегодня JavaScript может использоваться в браузере, на веб-сервере или в какой-то другой среде, даже в кофеварке. Каждая среда предоставляет свою функциональность, которую спецификация JavaScript называет окружением.
Окружение предоставляет свои объекты и дополнительные функции, в дополнение базовым языковым. Браузеры, например, дают средства для управления веб-страницами. Node.js делает доступными какие-то серверные возможности и так далее.
P.S. На картинке в общих чертах показано, что доступно для JavaScript в браузерном окружении.
#браузер #документ
7 368
JavaScript теперь в телеграм!
JavaScript — самый популярный язык в мире, он используется в 95% всех сайтов, которые вообще существуют. Теперь у JS есть русскоязычный канал. Это первоисточник всего, что появляется в платных курсах и остальных ресурсов. Стоит подписаться!
7 368
Методы в Date, String, Number
Методы форматирования также поддерживаются в обычных строках, датах, числах:
String.prototype.localeCompare(that [, locales [, options]])
Сравнивает строку с другой, с учётом локали.
Date.prototype.toLocaleString([locales [, options]])
Форматирует дату в соответствии с локалью.
Date.prototype.toLocaleDateString([locales [, options]])
То же, что и выше, но опции по умолчанию включают в себя год, месяц, день.
Date.prototype.toLocaleTimeString([locales [, options]])
То же, что и выше, но опции по умолчанию включают в себя часы, минуты, секунды.
Number.prototype.toLocaleString([locales [, options]])
Форматирует число, используя опции Intl.NumberFormat.
Все эти методы при запуске создают соответствующий объект Intl.* и передают ему опции, можно рассматривать их как укороченные варианты вызова.
P.S. Примеры по каждому методу показаны на картинке.
#разное #Intl #интернационализация7 368
Codecademy сделали канал в телеграм!
Codecademy — это крупнейшая в мире онлайн платформа для изучения программирования. Нас плохо знают русскоговорящие люди.
Именно для таких мы и сделали канал с переводом лучших материалов на русский язык!
Обязательно подписывайтесь, такой информации не будет ни на одном форуме: @ccademy
7 368
Числа, Intl.NumberFormat
Форматтер
Intl.NumberFormat умеет красиво форматировать не только числа, но и валюту, а также проценты.
P.S. На скрине показаны примеры создания и использования числового форматтера.
#разное #Intl #интернационализация7 368
Каналы от Senior разработчиков
Хотите быстро выучить JavaScript, Python или другой язык программирования? Подписывайтесь на каналы от опытных разработчиков, где они объясняют код и учат программировать.
💻 Канал Senior JavaScript разработчика:
@senior_front
🐍 Канал Python разработчика:
@seniorpy
☕️ Канал Senior Java разработчика:
@seniorjavist
🤖 Канал C++ разработчика:
@seniorcpp
📚 Заметки программиста:
@progersbooks
7 368
Даты, Intl.DateTimeFormat
Первый аргумент – такой же, как и в Collator, а в объекте
options мы можем определить, какие именно части даты показывать (часы, месяц, год…) и в каком формате.
Все локали обязаны поддерживать следующие наборы настроек:
- weekday, year, month, day, hour, minute, second
- weekday, year, month, day
- year, month, day
- year, month
- month, day
- hour, minute, second
Если указанный формат не поддерживается, то настройка formatMatcher задаёт алгоритм подбора наиболее близкого формата: basic – по стандартным правилам и best fit – по умолчанию, на усмотрение окружения (браузера).
#разное #Intl #интернационализация7 368
IT вакансии с релокацией по всему миру✈️
GoTechPeople - канал для cпециалистов из IT сектора России, Украины, Беларуси, а также IT HR и рекрутеров. Мы ежедневно размещаем новые и актуальные вакансии IT компаний с релокацией в разные страны мира.
Присоединяйтесь https://t.me/Gotechpeople!
7 368
Строки, Intl.Collator
Intl.Collator - конструктор для «сортировщиков», которые представляют собой объекты, позволяющие сравнивать строки с учетом языка.
Общая проблема строк JavaScript – они «не в курсе» языка и особенностей стран, где находится посетитель.
При сравнении сравниваются коды символов, а это неправильно, к примеру, в русском языке оказывается, что
"ё" > "я" и "а" > "Я", хотя всем известно, что я – последняя буква алфавита и это она должна быть больше любой другой.
Intl.Collator решает все эти проблемы.
P.S. Результат compare имеет значение 1 (больше), 0 (равно) или -1 (меньше).
#разное #Intl #интернационализация