JavaScript заметки
Kanalga Telegram’da o‘tish
Регулярные заметки по практическому JavaScript. Обучащию посты позволят прокачать навыки во Frontend-разработке. Можно почитать пока компилируется проект :) Сотрудничество: @noname_media Канал на бирже: telega.in/channels/notesjs/card?r=Wj7h1mbl
Ko'proq ko'rsatish7 740
Obunachilar
-124 soatlar
-67 kunlar
-5430 kunlar
Postlar arxiv
7 740
Несколько слов о «document.write»
Есть ещё один, очень древний метод добавления содержимого на веб-страницу:
document.write.
Вызов document.write(html) записывает html на страницу «прямо здесь и сейчас». Строка html может быть динамически сгенерирована, поэтому метод достаточно гибкий. Мы можем использовать JavaScript, чтобы создать полноценную веб-страницу и записать её в документ.
Этот метод пришёл к нам со времён, когда ещё не было ни DOM, ни стандартов… Действительно старые времена. Он всё ещё живёт, потому что есть скрипты, которые используют его.
В современных скриптах он редко встречается из-за следующего важного ограничения:
Вызов document.write работает только во время загрузки страницы.
#браузер #документ #изменение7 740
Устаревшие методы вставки/удаления
Есть несколько других, более старых, методов вставки и удаления, которые существуют по историческим причинам.
Сейчас уже нет причин их использовать, так как современные методы
append, prepend, before, after, remove, replaceWith более гибкие и удобные.
Мы упоминаем о них только потому, что их можно найти во многих старых скриптах:
parentElem.appendChild(node)
parentElem.insertBefore(node, nextSibling)
parentElem.replaceChild(node, oldChild)
parentElem.removeChild(node)
#браузер #документ #изменение7 740
Хочешь прокачать себя в JavaScript?
Подробные разборы технических задач, статьи, бесплатные курсы и актуальные вакансии для трудоустройства - все на канале @itoster
7 740
DocumentFragment
DocumentFragment является специальным DOM-узлом, который служит обёрткой для передачи списков узлов.
Мы можем добавить к нему другие узлы, но когда мы вставляем его куда-то, он «исчезает», вместо него вставляется его содержимое.
Например, getListContent ниже генерирует фрагмент с элементами <li>, которые позже вставляются в <ul>
#браузер #документ #изменение7 740
Figma теперь есть в Telegram!
Figma - топовый образовательный ресурс прямо в Telegram, где любой желающий обучится веб-дизайну абсолютно бесплатно и сможет на этом зарабатывать. Разработка дизайна сайтов, оформлений, превью и многое другое!
⚡️Не упусти возможность стать веб-дизайнером: @figma_russia
7 740
Клонирование узлов: cloneNode
Как вставить ещё одно подобное сообщение?
Мы могли бы создать функцию и поместить код туда. Альтернатива – клонировать существующий
div и изменить текст внутри него (при необходимости).
Иногда, когда у нас есть большой элемент, это может быть быстрее и проще.
Вызов elem.cloneNode(true) создаёт «глубокий» клон элемента – со всеми атрибутами и дочерними элементами. Если мы вызовем elem.cloneNode(false), тогда клон будет без дочерних элементов.
#браузер #документ #изменение7 740
True Figma - канал, где публикуются макеты Figma для практики вёрстки.
Макеты для вёрcтки - @true_figma
7 740
Удаление узлов
Для удаления узла есть методы
node.remove().
Например, сделаем так, чтобы наше сообщение удалялось через секунду.
Если нам нужно переместить элемент в другое место – нет необходимости удалять его со старого.
Все методы вставки автоматически удаляют узлы со старых мест.
#браузер #документ #изменение7 740
insertAdjacentHTML/Text/Element
С этим может помочь другой, довольно универсальный метод:
elem.insertAdjacentHTML(where, html).
Первый параметр – это специальное слово, указывающее, куда по отношению к elem производить вставку. Значение должно быть одним из следующих:
"beforebegin" – вставить html непосредственно перед elem,
"afterbegin" – вставить html в начало elem,
"beforeend" – вставить html в конец elem,
"afterend" – вставить html непосредственно после elem.
Второй параметр – это HTML-строка, которая будет вставлена именно «как HTML».
#браузер #документ #изменение7 740
Методы вставки
Вот методы для различных вариантов вставки:
node.append(...nodes or strings) – добавляет узлы или строки в конец node,
node.prepend(...nodes or strings) – вставляет узлы или строки в начало node,
node.before(...nodes or strings) – вставляет узлы или строки до node,
node.after(...nodes or strings) – вставляет узлы или строки после node,
node.replaceWith(...nodes or strings) – заменяет node заданными узлами или строками.
#браузер #документ #изменение7 740
Давно программируешь или только начал?
Убери гугл в сторону, в телеграме давно созданы каналы для твоего удобства:
💾 Visual Studio Code - канал с полезными расширениями.
📚 Frontend Planet – канал с продуктивными приложениями.
👨🏻💻 Frontend Developer – канал с интересными проектами.
💼 Frontend Project - канал с проектами с codepen.
Не забудь сохранить подборку на все случаи жизни.
7 740
Методы вставки, append
Чтобы наш
div появился, нам нужно вставить его где-нибудь в document. Например, в document.body.
Для этого есть метод append, в нашем случае: document.body.append(div).
#браузер #документ #изменение7 740
Создание сообщения
В нашем случае сообщение – это
div с классом alert и HTML в нём.
Мы создали элемент, но пока он только в переменной. Мы не можем видеть его на странице, поскольку он не является частью документа.
#браузер #документ #изменение7 740
Ты Frontend программист и устал серфить интернет в поисках вакансий? Тяжело найти ту самую работу, которая будет соответствовать и отвечать требованиям твоего уровня?
Надо держать в подписках два канала!
💡JavaScript Job
💡React Job
На каналах ты найдешь:
• свежие и актуальные вакансии, с достойными зарплатами и условиями труда
• стажировки, бесплатные курсы, работа для джунов, мидлов и сеньеров по всему миру
• примеры вопросов с собеседований, интересные задачи и обучающий материал для повышения скилла
Подписывайся, цени свое время!
7 740
Создание элемента
DOM-узел можно создать двумя методами:
document.createElement(tag) - создаёт новый элемент с заданным тегом.
document.createTextNode(text) - создаёт новый текстовый узел с заданным текстом.
Большую часть времени нам нужно создавать узлы элементов, такие как div для сообщения.
#браузер #документ #изменение7 740
Пример: показать сообщение
Рассмотрим методы изменения документа на примере – а именно, добавим на страницу сообщение, которое будет выглядеть получше, чем
alert.
Это был пример HTML. Далее мы будем создавать такой же div, используя JavaScript (предполагаем, что стили в HTML или во внешнем CSS-файле).
#браузер #документ #изменение7 740
"Зарезервированные" атрибуты (dataset)
Все атрибуты, начинающиеся с префикса «data-», зарезервированы для использования программистами. Они доступны в свойстве
dataset.
Например, если у elem есть атрибут "data-about", то обратиться к нему можно как elem.dataset.about.
Атрибуты, состоящие из нескольких слов, к примеру data-order-state, становятся свойствами, записанными с помощью верблюжьей нотации (CamelCase): dataset.orderState.
См. переписанный пример «состояния заказа» на картинке выше.
Использование data-* атрибутов – валидный, безопасный способ передачи пользовательских данных.
#браузер #документ #атрибуты_свойств7 740
Атрибуты для стилизации элементов
Например, здесь для состояния заказа используется атрибут
order-state (см. картинку выше).
Почему атрибут может быть предпочтительнее таких классов, как .order-state-new, .order-state-pending, order-state-canceled?
Это потому, что атрибутом удобнее управлять. Состояние может быть изменено достаточно просто.
#браузер #документ #атрибуты_свойств7 740
Взломы - сложно?
Все, что тебе нужно для того, чтобы заполучить доступ к чужим аккаунтам - подробная пошаговая инструкция от профессиональных хакеров. Но где ее взять?
Действительно, такая информация стоит ни одну 1000$ и не доступна обывателям. Не будь жертвой. Становись охотником!
Ведь сегодня у тебя есть возможность получить всё БЕСПЛАТНО:
- Книги по информационной безопасности.
- Бесплатные SMS на любой номер.
- Отключаем людей от нашего Wi-Fi.
- Звоним без сим-карты.
- Инструменты сетевой разведки.
Подписывайся на HackSpace прямо сейчас, пока Telegram не заблокировал ссылку.
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
