JavaScript заметки
Open in Telegram
Регулярные заметки по практическому JavaScript. Обучащию посты позволят прокачать навыки во Frontend-разработке. Можно почитать пока компилируется проект :) Сотрудничество: @noname_media Канал на бирже: telega.in/channels/notesjs/card?r=Wj7h1mbl
Show more7 368
Subscribers
-124 hours
-167 days
-5730 days
Posts Archive
7 368
Глобальный объект
Глобальный объект предоставляет переменные и функции, доступные в любом месте программы.
По умолчанию это те, что встроены в язык или среду исполнения.
В браузере он называется
window, в Node.js — global, в другой среде исполнения может называться иначе.
Недавно globalThis был добавлен в язык как стандартизированное имя для глобального объекта, которое должно поддерживаться в любом окружении.
Ко всем свойствам глобального объекта можно обращаться напрямую.
В браузере глобальные функции и переменные, объявленные с помощью var (не let/const!), становятся свойствами глобального объекта.
#глобальный_объект #window7 368
ТехноГайд | Большой справочник программиста
В канале @Techno_guids тебя ждут полезные видеоуроки, лайфхаки и подробные инструкции, которые можно сразу применять в работе.
7 368
Браузерные события
Событие – это сигнал от браузера о том, что что-то произошло.
Все DOM-узлы подают такие сигналы (хотя события бывают и не только в DOM).
Вот список самых часто используемых DOM-событий:
События мыши:
-
click – происходит, когда кликнули на элемент левой кнопкой мыши (на устройствах с сенсорными экранами оно происходит при касании).
- contextmenu – происходит, когда кликнули на элемент правой кнопкой мыши.
- mouseover / mouseout – когда мышь наводится на / покидает элемент.
- mousedown / mouseup – когда нажали / отжали кнопку мыши на элементе.
- mousemove – при движении мыши.
События на элементах управления:
- submit – пользователь отправил форму <form>.
- focus – пользователь фокусируется на элементе, например нажимает на <input>.
Клавиатурные события:
- keydown и keyup – когда пользователь нажимает / отпускает клавишу.
#браузерные_события #DOM7 368
Какой стек выбрать для разработки web приложений?
Подпишись на Web Stack и узнаешь как разрабатывать современные веб приложения, какие фреймворки использовать на фронте и беке и как писать чистый код.
Админы собирают топовые статьи по front end и backend разработке, фишки ЯП и лучшие практики разработки.
Пиши приложения как профи с Web Stack!
7 368
Function Expression
Функция в JavaScript – это не магическая языковая структура, а особого типа значение.
Синтаксис, который часто используется называется Function Declaration (Объявление Функции).
Существует ещё один синтаксис создания функций, который называется Function Expression (Функциональное Выражение).
На картинке выше функция создаётся и явно присваивается переменной, как любое другое значение. По сути без разницы, как мы определили функцию, это просто значение, хранимое в переменной
sayHi.
Смысл обоих примеров кода одинаков: "создать функцию и поместить её значение в переменную sayHi"
#функции #function_expression7 368
Благодаря этому каналу JavaScript будет тебя бояться!
Хватит думать, что JS сложный. Это всего лишь коробка с инструкциями для решения задач. В канале JS mentor эти инструкции описаны простым и понятным языком.
Подпишись и прокачайся, уделяя всего 5 минут в день
7 368
Кавычки
В JavaScript есть разные типы кавычек.
Строку можно создать с помощью одинарных, двойных либо обратных кавычек.
Одинарные и двойные кавычки работают, по сути, одинаково, а если использовать обратные кавычки, то в такую строку мы сможем вставлять произвольные выражения, обернув их в
${…}.
Ещё одно преимущество обратных кавычек — они могут занимать более одной строки, как на картинке выше.
Одинарные и двойные кавычки в языке с незапамятных времён: тогда потребность в многострочных строках не учитывалась. Что касается обратных кавычек, они появились существенно позже, и поэтому они гибче.
#кавычки #строки7 368
Изучаешь мир frontend и все кажется слишком сложным? Не знаешь, за что хвататься?
Расслабься, все уже придумано за тебя. WEB-dev | Веб-разработка - канал, на котором собрано много интересного из мира веб-разработки. Хочешь узнать, какие факторы влияют на скорость загрузки сайта? А как правильно выстроить изучение JS? Может тебе нужны полезные генераторы или примеры готового кода?
Все это есть на канале WEB-dev | Веб-разработка. Переходи по ссылке и подписывайся, чтобы ничего не пропустить 😉
7 368
innerHTML: содержимое элемента
Свойство
innerHTML позволяет получить HTML-содержимое элемента в виде строки.
Мы также можем изменять его. Это один из самых мощных способов менять содержимое на странице.
На картинке выше содержимое document.body, скрипт полностью заменяет его.
#dom #браузер7 368
📚Теперь JavaScript можно легко выучить по гайдам в картинках.
Первый канал с гайдами по JavaScript — @guides_js
7 368
Рекурсия
Рекурсия – это приём программирования, полезный в ситуациях, когда задача может быть разделена на несколько аналогичных, но простых задач.
В процессе выполнения задачи в теле функции могут быть вызваны другие функции для выполнения подзадач. Частный случай подвызова – когда функция вызывает сама себя. Это как раз и называется рекурсией.
В качестве примера возьмем функцию
pow(x, n), которая возводит x в натуральную степень n.
Иначе говоря, умножает x на само себя n раз.
На картинке выше когда функция pow(x, n) вызывается, исполнение делится на две ветви:
- Если n == 1, тогда всё просто. Эта ветвь называется базой рекурсии, потому что сразу же приводит к очевидному результату: pow(x, 1) равно x.
- Мы можем представить pow(x, n) в виде: x * pow(x, n - 1).
Эта ветвь – шаг рекурсии: мы сводим задачу к более простому действию (умножение на x) и более простой аналогичной задаче (pow с меньшим n).
Функция pow рекурсивно вызывает саму себя до n == 1.
#рекурсия #функции7 368
Как стать классным web разработчиком?
Технологии не стоят на месте и погоня за ними забирает много времени и сил.
FrontEndDev поможет тебе освоить web разработку и писать приложения как профессионал.
Здесь собраны:
▫️фишки и тонкости JS / TS / NodeJS / CSS;
▫️лучшие практики по написанию эффективного кода;
▫️библиотеки, упрощающие разработку;
▫️уроки по языкам программирования и фреймворкам.
Становись профи вместе с FrontEndDev!
7 368
Флаги свойств
Помимо значения
value, свойства объекта имеют три специальных атрибута (так называемые «флаги»).
writable – если true, свойство можно изменить, иначе оно только для чтения.
enumerable – если true, свойство перечисляется в циклах, в противном случае циклы его игнорируют.
configurable – если true, свойство можно удалить, а эти атрибуты можно изменять, иначе этого делать нельзя.
Обычно они скрыты. Когда мы создаём свойство «обычным способом», все они имеют значение true.
Но мы можем изменить их в любое время.
Метод Object.getOwnPropertyDescriptor позволяет получить полную информацию о свойстве.
Синтаксис можете увидеть на картинке выше.
- obj
Объект, из которого мы получаем информацию.
- propertyName
Имя свойства.
Возвращаемое значение – это объект, так называемый «дескриптор свойства»: он содержит значение свойства и все его флаги.
#флаги_свойств #объекты7 368
Профессия «Фронтенд-разработчик» в школе Хекслет.
С нуля. За 8 месяцев. От 6230 ₽/месяц.
Оставьте заявку. Когда, если не сейчас: https://bit.ly/3FsgTeU
7 368
Проверка isFinite и isNaN
Это специальные числовые значения:
-
Infinity — особенное численное значение, которое ведёт себя в точности как математическая бесконечность ∞.
- NaN представляет ошибку.
Эти числовые значения принадлежат типу number, но они не являются «обычными» числами, поэтому есть функции для их проверки:
- isNaN(value) преобразует значение в число и проверяет является ли оно NaN.
Нужна ли нам эта функция? Разве не можем ли мы просто сравнить === NaN? К сожалению, нет.
Значение NaN уникально тем, что оно не является равным ни чему другому, даже самому себе.
- isFinite(value) преобразует аргумент в число и возвращает true, если оно является обычным числом, т.е. не NaN/Infinity.
#isFinite #isNaN7 368
GIT — первая и самая крупная библиотека полезных сервисов в Telegram 🚀
Более 900 уникальных онлайн-инструментов для твоей работы!
Подпишись, пригодится: @gitservices
7 368
Внутреннее устройство массива
Массив – это особый подвид объектов.
Квадратные скобки, используемые для того, чтобы получить доступ к свойству arr[0] – это по сути обычный синтаксис доступа по ключу, как obj[key], где в роли obj у нас arr, а в качестве ключа – числовой индекс.
Массивы расширяют объекты, так как предусматривают специальные методы для работы с упорядоченными коллекциями данных, а также свойство length.
Но в основе всё равно лежит объект.
Следует помнить, что в JavaScript существует 8 основных типов данных.
Массив является объектом и, следовательно, ведёт себя как объект.
Но то, что действительно делает массивы особенными – это их внутреннее представление.
Движок JavaScript старается хранить элементы массива в непрерывной области памяти, один за другим.
#массив #внутреннее_устройство_массива
7 368
На канале ProgNote вы найдёте много статей на тему Web-разработки, операционных системах и в целом о программирование в разных сферах.
Ещё имеются интересные учебники для изучения различных языков и фреймворков, например таких, как Python, PHP, и JavaScript с Express.js, а на данный момент готовиться учебник по Django.
Также периодически выходят новости из мира IT, и в раз неделю выкладывают интересные книги и какие-нибудь JS или HTML скрипты, или PSD, Figma макеты.
Поэтому подписываетесь на канал ProgNote, и начинаете изучать программирование прямо сейчас.
7 368
Синтаксис new Function
Существует ещё один вариант объявлять функции. Он используется крайне редко, но иногда другого решения не найти.
Функция создаётся с заданными аргументами
arg1...argN и телом functionBody.
Главное отличие от других способов объявления функции, которые были рассмотрены ранее, заключается в том, что функция создаётся полностью «на лету» из строки, переданной во время выполнения.
new Function позволяет превратить любую строку в функцию. Например, можно получить новую функцию с сервера и затем выполнить её.
Это используется в очень специфических случаях, например, когда мы получаем код с сервера для динамической компиляции функции из шаблона, в сложных веб-приложениях.
#функции #new_function