Skip to content

Instantly share code, notes, and snippets.

@mharyst
Created October 5, 2018 08:29
Show Gist options
  • Save mharyst/6e86e4733eedbf2dd033bd6bcf5dc34d to your computer and use it in GitHub Desktop.
Save mharyst/6e86e4733eedbf2dd033bd6bcf5dc34d to your computer and use it in GitHub Desktop.
Weblium School

Up & Going

выражение - любая ссылка на переменную или значение или набор ссылок и переменных объединенных операторами

2 - это выражение литерального значения
b - это выражение переменной, которое тут означает извлечение его текущего значения
b * 2 - это арифметическое выражение, в данном случае выполнение умножения
a = b * 2 - это выражение присваивания, в данном случае это присвоить результат выражения b * 2 переменной a (подробнее о выражениях далее)
f() - выражение вызова

инструкция - группа выражений которые выполняют специфическую задачу

a = b * 2

оператор - синтаксически выделенная функция для выполнения тех или инных операций над переменными или значениями

  • бинарные +, -, * etc.
  • унарные !, ++, -- etc.
  • тернарные ?:

типы - структура данных

  • примитивы (6)
    • string
    • boolean
    • NaN
    • undefined
    • null
    • Symbol
  • object (object, array, function, etc.)

boxing - механизм заворачивания типов в соответствующий ему объект обвертку при обращении к свойству

функция - участок кода который можно вызвать (выполнить) по ссылке

Scope & Closures

банда движка: scope и компилятор

компиляция

  • токенизация / лексирование - разбиение на ключевые слова (токены)
  • парсинг - преобразование массива токенов в дерево (AST - abstract syntax tree) которое представляет грамматическую структуру программы
  • код генерация - процесс преобразования AST в исполняемый код

scope - набор правил для поиска переменных по их идентификаторам

  • LHS - для присваивания значений
  • RHS - для получения значений
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment