recursal/MDN huggingface dataset:
Блок
====

Термин **блок** в зависимости от контекста имеет несколько значений:

Блок (CSS)
**Блок** на Веб-странице это HTML element, который начинается с новой строки, т.е. под предыдущим элементом и над следующим (обычно называется *блочным элементом*). Например, `p` по умолчанию блочный элемент, в то время как `a` — *строчной элемент*: можно разместить несколько ссылок (одну за другой) в вашем HTML-коде и они все будут выводиться на одной и той же строке.
Блок (скриптинг)
В JavaScript блок это набор связанных statement заключённых в скобки `{}`. Например, можно поместить блок инструкций после блока `Statements/if...else`, чтобы интерпретатор выполнял код в блоке, если условие имеет значение true, или пропускал целый блок, если значение условия false.
Expando
=======

Expando-свойства — это свойства, добавленные в узлы DOM с помощью JavaScript, когда эти свойства не являются частью DOM-спецификации объекта:


```js
window.document.foo = 5; // foo — это expando
```


Термин может быть применён к свойствам, добавленным к объекту без учёта его изначального предназначения, например, когда свойства с не числовым именем добавлены к массиву.
Boolean (Булев, Логический тип данных)
======================================

**Boolean (Булев, Логический тип данных)** — примитивный тип данных в информатике, которые могут принимать два возможных значения, иногда называемых истиной (`true`) и ложью (`false`). Например, в JavaScript Булевы состояния часто используются для того, чтобы определить какие части кода выполнять (например, в операторах if) или повторять (например, циклы for).

Ниже приведён некоторый псевдокод JavaScript (это не действительно исполняемый код), демонстрирующий эту концепцию.

Пример использования оператора `if`:
```

if (условие) {
    блок кода, выполняемый если условие возвращает true
} else {
    блок кода, выполняемый если условие возвращает false
}
```


К примеру:


```js
if (hour < 18) {
  greeting = "Добрый день";
} else {
  greeting = "Добрый вечер";
}
```


Пример использования логического условия в цикле `for`:
```

for (начало; условие; шаг) {
    // ... тело цикла ...
}
```


К примеру:


```js
for (let i = 0; i < 3; i++) {
  alert(i);
}
```


Булевы значения названы в честь английского математика Джорджа Буля, который был первопроходцем в области математической логики.

Смотрите также
--------------

### Техническая справка

* Глобальный объект JavaScript: `Boolean`
* Типы данных JavaScript и структуры данных
Заголовок сущности
==================

Заголовок сущности - это HTTP header (en-US), описывающий содержимое тела сообщения. Заголовки сущности используются в HTTP-запросах и ответах. Заголовки, такие как `Content-Length`, `Content-Language`, `Content-Encoding` являются заголовками сущности.

Даже если заголовки сущности не являются заголовками запросов или ответов, они часто включаются в эти понятия.

В следующем примере, `Content-Length` - это заголовок сущности, в то время как `Host` и `User-Agent` представляют собой заголовок запроса:
```

POST /myform.html HTTP/1.1
Host: developer.mozilla.org
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
Content-Length: 128
```

Узнать больше
-------------

### Технические знания

* Список всех HTTP заголовков
Грязный режим
=============

ECMAScript 5 и более поздние версии выполняют скрипты в Строгом режиме, который определённым образом изменяет семантику JavaScript для улучшения стабильности, и который упрощает понимание того, что происходит в программе при возникновении проблем.

Обычный, нестрогий, режим выполнения JavaScript иногда называется **Грязным режимом** (Sloppy mode). Это неофициальное название, но вы, вероятно, сталкивались с ним при серьёзной разработке на JavaScript.

Смотрите также
--------------

### Общие знания

* "Strict Mode" в части 7 ("Синтаксис JavaScript")в книге Speaking *JavaScript*.
SEO
===

**SEO** (Search Engine Optimization) Поисковая оптимизация - это комплекс мер по оптимизации, для поднятия сайта в рейтингах поисковых систем. Её ещё называют "Повышением поискового рейтинга"

Поисковые системы исследуют интернет, переходят по ссылкам со страницы на страницу и индексируют найденный контент. Когда вы ищите что то в интернете, поисковые системы отображают индексированный контент. Сканнеры пользуются определёнными алгоритмами. Если вы будете знать и внимательно следовать этим правилам, когда внедряете SEO для сайта, у такого сайта будут более высокие шансы оказаться в числе первых результатов поискового запроса, а следовательно - более высокий трафик и, как следствие - доход (для интернет продаж и рекламы).

Поисковые системы дают некоторые рекомендации для SEO, но большие поисковые системы сохраняют алгоритмы и результаты поиска как коммерческую тайну. SEO объединяет в себе рекомендации поисковых систем содержащиеся в свободном доступе, эмпирический опыт и теоретические знания, подчерпываемые из научных статей и патентов.

Методы SEO делятся на три объёмных класса:

технический

Создание тегов контента, используя семантику HTML. Сканируя сайт, алгоритмы поиска находят только тот контент, который вы хотите проиндексировать.

копирайтинг

Создавайте контент, используя словарь ваших потенциальных посетителей. Используйте тексты и изображения, которые помогли бы помочь алгоритмам поисковой системы понять суть предмета представленного на вашем ресурсе.

популяризация

Вы можете значительно увеличить поток трафика, если ссылки на ваш сайт будут размещены на других развитых ресурсах.

Изучить больше
--------------

### Основной источник

* Поисковая оптимизация На Википедии
### Learn SEO

* Google Webmaster Central
ICANN
=====

**ICANN** (Internet Corporation of Assigned Names and Numbers) является международной некоммерческой организацией, которая поддерживает domain name system и запись IP addresses.

Смотрите также
--------------

* Official website
Пересчёт (Reflow)
=================

**Пересчёт** (*Reflow*) происходит, когда браузер должен снова обработать и отрисовать часть или всю веб-страницу, например, после изменения размера какого-нибудь блока или изменения его позиции на интерактивном сайте.

Learn more
----------

* Google article "Minimizing browser reflow"
Canvas
======

HTML *`<canvas>`* (англ. **canvas** — «холст», рус. **канва́с**) элемент предоставляет пустую графическую зону, на которой специальные JavaScript API могут рисовать (такие как Canvas 2D или WebGL (en-US)).

Смотрите также
--------------

### Обучающие ресурсы

* Руководство по Canvas в MDN
### Техническая информация

* HTML-элемент `<canvas>` в MDN
* Canvas общая документация в MDN
* `CanvasRenderingContext2D`: Canvas 2D API для рисования
* Canvas 2D API спецификация
Grid
====

*CSS Гриды (они же сетки или CSS Grid)* устанавливаются с помощью значения `grid` в свойстве `display`; вы можете определить колонки и строки в сетке с помощью свойств `grid-template-columns` и `grid-template-rows` соответственно.

Сетка, которую вы создаёте, используя эти свойства, является явной сеткой.

If you place content outside of this explicit grid, or if you are relying on auto-placement and the grid algorithm needs to create additional row or column tracks (en-US) to hold grid items, then extra tracks will be created in the implicit grid. The *implicit grid* is the grid created automatically due to content being added outside of the tracks defined.

В примере ниже отображена *точная сетка* из трёх колонок и двух рядов. The *third* row on the grid is an *implicit grid* row track, formed due to their being more than the six items which fill the explicit tracks.

Пример
------
```

\* {
  box-sizing: border-box;
}

.wrapper {
  border: 2px solid #f76707;
  border-radius: 5px;
  background-color: #fff4e6;
}

.wrapper > div {
  border: 2px solid #ffa94d;
  border-radius: 5px;
  background-color: #ffd8a8;
  padding: 1em;
  color: #d9480f;
}
```



```css
.wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: 100px 100px;
}
```



```html
<div class="wrapper">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
  <div>Four</div>
  <div>Five</div>
  <div>Six</div>
  <div>Seven</div>
  <div>Eight</div>
</div>
```

Дополнительные материалы
------------------------

### Руководство по свойствам

* `grid-template-columns`
* `grid-template-rows`
* `grid`
* `grid-template`
### Что почитать ещё

* Руководство по CSS Grid: *Базовые принципы CSS сеток*
DOM
===

DOM (Document Object Model) это API который представляет и взаимодействует со всеми HTML или XML документами. DOM это модель документа загруженная в браузер и представляющая документ как дерево, где каждый узел представляет часть документа (например элемент, строка текста, или комментарий).

DOM это самый используемый API в Web потому, что он даёт коду запущенному в браузере доступ и взаимодействие с каждым узлом в документе. Узлы могут быть созданы, перемещены и изменены. Обработчики событий могут быть добавлены к узлам и срабатывают при наступлении данного события.

DOM не был определён изначально — он пришёл когда браузеры начали реализовывать поддержку JavaScript. Этот унаследованный DOM иногда называют DOM 0. Сегодня, W3C руководит процессом спецификации DOM, и DOM Working Group в настоящее время подготавливают 4-ую версию.

Узнать больше
-------------

### Техническая информация

* Документация DOM на MDN (en-US)
* Различные спецификации DOM на сайте W3C
Host
====

Хост - это устройство, подключённое к Интернету (или локальной сети). Некоторые хосты, называемые серверами (en-US), предлагают дополнительные услуги, такие как обслуживание веб-страниц или хранение файлов и электронных писем.
PHP
===

PHP, расшифровывающийся как "*PHP: Hypertext Preprocessor*" - «PHP: Препроцессор Гипертекста», является распространённым интерпретируемым языком общего назначения с открытым исходным кодом. PHP создавался специально для ведения web-разработок и код на нем может внедряться непосредственно в HTML-код. Синтаксис языка берёт начало из C, Java и Perl, и является лёгким для изучения. Основной целью PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц, однако область применения PHP не ограничивается только этим.

Узнать больше
-------------

* Официальная страница PHP
* Официальная страница PHP wiki
* Изучения PHP - Codecademy
HTTPS
=====

**HTTPS** (*HTTP Secure*) является зашифрованной версией HTTP протокола. Обычно он использует SSL (en-US) или TLS для шифрования соединения между клиентом и сервером. Это безопасное соединение позволяет клиентам безопасно обмениваться конфиденциальными данными с сервером, например, для банковских операций или онлайн-покупок.
WAI
===

*WAI* или *Web Accessibility Initiative* (англ. Инициатива доступности веб-сайтов) — это попытка Консорциума World Wide Web (W3C) улучшить доступность для людей с различными проблемами, которым могут понадобиться нестандартные браузер или устройства.

Узнай больше
------------

### Базовые знания

* Сайт WAI
Элемент
=======

 Элемент - это часть веб-страницы. В XML и HTML элемент может содержать данные, фрагмент текста или изображения, или не содержать ничего. Обычный элемент включает в себя открывающий тэг с некоторыми атрибутами, текст и закрывающий тэг.

 ![Example: in <p class="nice">Hello world!</p>, '<p class="nice">' is an opening tag, 'class="nice"' is an attribute and its value, 'Hello world!' is enclosed text content, and '</p>' is a closing tag.](/ru/docs/Glossary/Element/anatomy-of-an-html-element.png)

Элементы и тэги это *не* одни и те же вещи. Тэги открывают или закрывают элементы в исходном коде, тогда как элементы являются частью DOM, объектной моделью документа для отображения страницы в браузере.

Смотрите также
--------------

* Интерфейс `Element`, представляющий элемент в DOM.
* Подробнее об элементах.
* Web\_Components/Custom\_Elements (en-US)
chrome
======

Не путать с Google Chrome (en-US); chrome (хром) — видимые элементы браузера, не относящиеся к веб-страницам (например, панели инструментов, панель меню, вкладки).
Тег
===

В HTML теги используются для создания элементов. **Имя** HTML-элемента - это **имя** заключённое в угловые скобки, как например <p> для "абзаца". Обратите внимание, что концу **имени** предшествует символ косой черты (слеша), "</p>", и что в пустых элементах закрывающий тег не требуется и не допускается. Если атрибуты не указаны, то для них применяются значения по умолчанию.

Узнать больше
-------------

### Общие знания

* HTML Теги на W3
### Техническое руководство

* Введение в HTML
Node.js
=======

Node.js является межплатформенной средой выполнения, созданной на JavaScript, которая позволяет разработчикам создавать серверные и сетевые приложения с помощью JavaScript.

Узнать больше
-------------

### Общая информация

* Веб-сайт Node.js
### Техническая информация

* API документация
* Руководство
Инструкция
==========

В компьютерном языке программирования **инструкция** — строка кода, выполняющая задачу. Каждая программа состоит из последовательности инструкций.

Узнать больше
-------------

### Техническая справка

* JavaScript инструкции и объявления
Глобальная переменная
=====================

Глобальная переменная это переменная, которая была объявлена в глобальной области видимости. Иначе говоря, переменная, доступ к которой, можно получить со всех других областей видимости.

В JavaScript это свойство глобального объекта.

Материалы для обучения
----------------------

### Общие

* Глобальная переменная в Википедии
IndexedDB
=========

IndexedDB это Web API интерфейс, который позволяет хранить большие данные внутри браузера. Также используется индексирование для поддержания высоко-производительного поиска по данным. Подобно SQL (en-US)-основанным RDBMS, IndexedDB это транзакционная система базы данных. Но в отличие от RDBMS, которая для хранения использует таблицы с фиксированными колонками, IndexedDB использует JavaScript объекты.

Смотрите также
--------------

* Описание IndexedDB API на MDN
* The W3C specification for IndexedDB
CSS-селектор
============

**CSS-селектор** это часть CSS-правила, которая позволяет вам указать, к какому элементу (элементам) применить стиль. Например:
```

***HTML***
<div> I am inside of a div element. </div>
<p> I am inside of a paragraph element. </p>

***CSS***
div {
 color: green;
}

p {
 color: red;
}
```


В первом CSS-правиле я выбираю элемент div и задаю его стиль (цвет текста — зелёный). Во втором CSS-правиле выбираю элемент p и задаю красный цвет текста. Вот как выглядит результат:

![CSS selector coding results](/ru/docs/Glossary/CSS_Selector/cssselectormdnglossary.jpg)

Смотрите также
--------------

### Основные статьи

1. Базовые селекторы
    1. Селекторы по типу `elementname`
    2. Селекторы по классу `.classname`
    3. Селекторы по ID `#idname`
    4. Универсальные селекторы `* ns|* *|*`
    5. Атрибутивные селекторы `[attr=value]`
    6. Селекторы состояния элементов `a:active, a:visited`
2. Группирующие селекторы
    1. Список селекторов `A, B`
3. Комбинаторы
    1. Adjacent sibling selectors `A + B`
    2. General sibling selectors `A ~ B`
    3. Child selectors `A > B`
    4. Descendant selectors `A B`
4. Псевдо
    1. Псевдоклассы `:`
    2. Псевдоэлементы `::`
API
===

API (Application Programming Interface - интерфейс программных приложений) — это установка функций и правил позволяющая взаимодействовать между программным обеспечением, которое предоставляет API и другими программными компонентами. В Веб разработке, под API обычно подразумевают набор стандартных методов, свойств, событий и URL ссылок для взаимодействия с Веб контентом.

В веб-разработке API обычно представляет собой набор элементов кода (например методов, свойств, событий и URL), которые разработчик может использовать в своих приложениях для взаимодействия с компонентами веб-браузера пользователя или другим программным/аппаратным обеспечением на компьютере пользователя, а также сторонними веб-сайтами и сервисами.

Узнать больше
-------------

* Интерфейсы веб API
ARIA
====

**ARIA** (*Accessible Rich Internet Applications*) является W3C спецификацией для добавления семантики и других метаданных в HTML при использовании вспомогательных технологий.

Например, вы можете добавить атрибут `role="alert"` в тег `<p>`, чтобы оповестить пользователя о том, что информация является важной и зависимой от времени (иначе вы могли бы передать это через цвет текста).

Материалы для изучения
----------------------

* ARIA
Кодировка символов
==================

Кодировка определяет связность между байтами и текстом. Последовательность байтов допускает различные текстовые интерпретации. Указывая конкретную кодировку (например, UTF-8), мы указываем, как следует интерпретировать последовательность байтов.

Например, в HTML мы обычно указываем кодировку символов UTF-8, используя следующую строку:


```html
<meta charset="utf-8" />
```


Это гарантирует, что вы можете использовать символы практически любого человеческого языка в вашем HTML-документе, и они будут отображаться надёжно.

Узнать больше
-------------

### Общие сведения

* Кодировка символов на W3C
Doctype
=======

В HTML объявление типа документа тегом "`<!DOCTYPE html>`" - обязательная преамбула, расположенная в верхней части документа. Единственное предназначение тега - не допустить переключение браузера в так называемый режим совместимости ("quirks mode") во время рендеринга документа; то есть, тег "`<!DOCTYPE html>`" гарантирует, что браузер с максимальными усилиями будет следовать соответствующей спецификации, а не использовать другой тип рендеринга, несовместимый с некоторыми спецификациями.

Смотрите также
--------------

### Основная информация

* Definition of the DOCTYPE in the HTML specification
* Quirks Mode and Standards Mode
### Техническая документация

* Document.doctype, a JavaScript method that returns the doctype
Scroll-контейнер
================

**Scroll-контейнер** создаётся путём применения к элементу свойства `overflow: scroll` или `overflow: auto`, при условии, что содержимого достаточно много для появления переполнения.

Scroll-контейнер позволяет пользователю с помощью прокрутки достигать участков переполняющего содержимого, которые в ином случае были бы обрезаны и поэтому недоступны для просмотра. Видимая часть scroll-контейнера называется scrollport (en-US).

* MDN Web Docs Glossary:
    + Scroll container
    + Scrollport (en-US)
* Related CSS Properties:
    + `overflow`
Алгоритм
========

Алгоритм — это независимая серия инструкций для выполнения функции.

Другими словами, алгоритм — это средство описания способа решения проблемы, чтобы её можно было многократно решать с помощью людей или машин. Учёные сравнивают эффективность алгоритмов с помощью понятия «Алгоритмическая Сложность» или «Big O» нотация.

Например:

* Рецепт приготовления — это простой алгоритм для людей.
* Алгоритм сортировки часто используется в программировании, чтобы объяснить компьютеру, как сортировать данные.

Распространёнными алгоритмами являются алгоритмы поиска пути, такие как задача коммивояжёра, алгоритмы обхода дерева и так далее.

Существуют также алгоритмы машинного обучения, такие как линейная регрессия, логистическая регрессия, дерево решений, случайный лес, машина опорных векторов, рекуррентная нейронная сеть (РНС), долгая краткосрочная память (LSTM), свёрточная нейронная сеть (CNN), глубокая свёрточная нейронная сеть и так далее.

Дополнительные ресурсы
----------------------

### Технические материалы

* Пояснения к алгоритмам сортировки
* Пояснения алгоритмической сложности
BiDi
====

**BiDi** (BiDirectional) относится к документу, содержащему текст справа налево и слева направо. Даже когда оба направления встречаются в одном и том же абзаце, текст на каждом языке должен отображаться в правильной направленности.

Подробности
-----------

### Техническая справка

* Разработка Bidi приложений
Прототип
========

Прототип — модель, отображающая внешний вид и поведение приложения или продукта в начале цикла разработки.

См. в разделе Наследование и цепочка прототипов
Частота кадров (FPS)
====================

**Частота кадров** - это скорость, с которой браузер может пересчитывать, размещать и отображать содержимое на дисплее. **FPS** (англ. frames per second) - количество сменяемых кадров за одну секунду.

Целевая частота кадров для компьютерной графики на веб-сайте составляет 60 кадров в секунду.

Общемировой стандарт частоты киносъёмки и проекции звукового кинематографа - 24 кадра в секунду. Для замедления или ускорения движения на экране существует ускоренная и замедленная или покадровая съёмки.
UX
==

**UX** — это аббревиатура от User eXperience. Это исследование взаимодействия между пользователями и системой. Его цель — упростить взаимодействие с системой с точки зрения пользователя.

Система может быть любым продуктом или приложением, с которым может взаимодействовать конечный пользователь. Например, исследования UX, проведенные на веб-странице, могут продемонстрировать, легко ли пользователям понимать содержимое страницы, легка ли навигация по ней, не возникает ли трудностей в выполнении каких-либо действий и наоборот.

Узнайте больше
--------------

* Опыт взаимодействия на Википедии.
TLS
===

**Transport Layer Security (TLS)** - **Безопасность Транспортного Уровня** (протокол), ранее известный как **Secure Sockets Layer (SSL)** - **Уровень Защищённых Соединений** используется приложениями для организации защищённой передачи данных через интернет, предотвращая взлом и прослушивание электронной почты, просмотра сайтов, переписки и прочих протоколов.

Все современные браузеры поддерживают TLS протокол, требуя у сервера предоставить действующий "цифровой сертификат", подтверждающий подлинность в порядке обеспечения безопасного соединения. Это осуществляется для обоих - клиента и сервера, для обоюдной проверки подлинности каждого, если обе стороны обмена данных обеспечены их собственными цифровыми сертификатами.

### General knowledge

* Transport Layer Security (en-US)
* OWASP: Transport Layer Protection Cheat Sheet
### Specifications

* RFC 5246 (The Transport Layer Security Protocol, Version 1.2)
Псевдокод
=========

Псевдокод относится к кодоподобному синтаксису, который обычно используется для указания людям, как работает некоторый синтаксис кода, или для иллюстрации конструкции элемента архитектуры кода. Он **не сработает**, если вы попытаетесь запустить его как код.
Card sorting
============

Сортировка карточек - это простая техника, используемая в информационной архитектуре, когда людям, участвующим в разработке веб-сайта (или другого типа продукта), предлагается записать контент / услуги / функции, которые, по их мнению, должен содержать продукт, а затем организовать эти функции в категории или группировки. Это может быть использовано, например, для определения того, что должно идти на каждой странице веб-сайта. Название происходит от того факта, что сортировка карточек часто осуществляется путём буквального написания предметов для сортировки на карточках, а затем размещения карточек в стопки.

Узнать больше
-------------

### Общие знания

* Card sorting на Википедии (англ.)
Браузер
=======

*Веб браузер —* это программа которая извлекает и показывает страницы из Web, и даёт пользователям доступ к веб-страницам через гиперссылки (en-US).

Узнай больше
------------

### Общие знания

* Эволюция веб
### Скачай браузер

* Mozilla Firefox
* Google Chrome
* Microsoft Internet Explorer
* Opera Browser
ООП
===

**ООП** (**О**бъектно-**О**риентированное **П**рограммирование) это подход в программировании, согласно которому, данные инкапсулированы внутри **объектов**, а сам объект существует как составная часть целого.

JavaScript сильно объектно-ориентирован. Он следует модели, базирующейся на прототипах (в отличии от модели, базирующейся на классах (en-US)).

Смотреть также
--------------

### Общие знания

* Введение в объектно-ориентированный JavaScript
Общий заголовок
===============

**Общий заголовок (основной заголовок)** - это заголовок (en-US), который используется и в запросе, и в ответе (в отличие от заголовка запроса (en-US) и заголовка ответа), однако общий заголовок не описывает тело сообщения, как заголовок сущности.

Наиболее часто встречающиеся общие заголовки: `Date`, `Cache-Control` или `Connection`.