Терминология JavaScript

В учебниках часто встречаются понятия и термины, объяснение которых опускается. В этой заметке я расшифрую понятия с которыми сам часто сталкивался.

Литерал — выражение которое используется в теле программы. Например:
«Hello world» // Строковый литерал
123 // Литерал числа
{ //Объектный литерал
x: 1,
y: 2
}

Идентификатор это просто имя. В JavaScript идентификатор должен начинаться с буквы, знака $, или знака _(нижние подчеркивание).

BEMHTML

BEMHTML — шаблонизатор, компилирующийся в JavaScript. На входе получает JSON, на выходе HTML. Каждый шаблон состоит из Предиката (набор условий, при которых сработает шаблон) и тела (инструкция к выполнению).

Предикаты

Предикаты могут состоять из одного и более условий, например:
block vlad, elem khvostov, mod alekseevich
если условия перечислены через запятую то шаблон выполнится только тогда, когда все условия выполнятся.
Условия могут быть такими:
Выражают условия входного БЭМ дерева, применяемая мода, произвольное условие.

BEM в JS

Немного терминологии.
Блок в JavaScript это компонент описывающий поведение какого-то элемента (нескольких элементов). Например поведение выпадающего списка.
Элемент — DOM узел какого либо блока.
Модификатор — хранит информацию о состоянии блока и его элементов

git основные команды

Для того что бы залить файл на гитхаб нужно выполнить минимум 4 команды.

 

 

git init # инициализируем гит в каталоге, где сейчас находимся
git add имя_папки # сообщаем гиту что проиндексировать
git commit -m 'comment' # фиксируем изменения и добавляем комментарий (в нашем случае comment)
git push origin master # заливаем изменения на сервер (в нашем случае он был присвоен гитом по умолчанию как origin) в ветку master

Немного о БЭМ

В БЭМ методологии для имени блока который длине чем одно слово, в качестве разделителя — используется тире (-). А для именования элемента, обычно пишут название блока и двойное нижнее подчеркивание (__), после которого следует непосредственно название самого элемента.
Пример:

<div class="header">(header - имя блока)
<ul class="menu">(menu - имя вложенного блока)
<li class="menu__item">(menu__item - имя элемента)</li>

В терминологии БЭМа есть такое понятие как:
Мультилингвальность это описание блока  на всех языках (CSS HTML JS).

Если блог нужно представить на странице необходимо реализовать следующие технологии:

  • Шаблоны (XSL, TT2, JavaScript и т.д.), превращающие декларацию блока на странице в HTML-код;
  • Стили CSS
  • JavaScript реализацию блока для динамического поведения
  • Картинку относящуюся к блоку
  • Документацию

Отличие блока от элемента в том что элемент не может существовать вне контекста родительского блока. Так же как из блока не может быть извлечен ни один элемент. Если элемент способен существовать вне блока его следует рассматривать как блок.