Лексическая структура JavaScript
Лексическая структура языка JavaScript
Лексика — это словарный состав какого-либо языка.
Когда вы будете читать книги по JavaScript, вам часто будут попадаться незнакомые слова, являющиеся частью лексики данного языка. В этой статье, мы рассмотрим лексическую структуру языка JavaScript. Познакомимся с основными терминами и дадим им определения.
Термины и определения лексической структуры языка JavaScript:
Лексема (токен) — это минимальная часть языка, имеющая самостоятельный смысл. В JavaScript к лексемам относятся: разделители, идентификаторы, литералы, операции, операторы и т.д. Лексемы располагаются между разделителями (пробелами, табуляцией или переносом строки). Интерпретатор разделяет код программы на лексемы и затем собирает из них осмысленные конструкции. Примеры лексем:
var myLexeme; // тут 4 лексемы (var, пробел, myLexeme, точка с запятой) myLexeme = "строка"; // тут 6 лексем
Идентификатор — это уникальное имя переменной, константы, пользовательской функции, объекта, массива, ключевых и зарезервированных слов, меток и т.д. Примеры идентификаторов:
var myIdentifier; // тут два идентификатора (var и myIdentifier) function myIdentifier() { } // тут два идентификатора
Литерал — это значение переменной заданное программистом, оно может быть числом, строкой, логическим значением (true/false), регулярным выражением (для поиска по шаблону) и т.д. Значение созданное программой, литералом не является. Примеры литералов:
var myLiteral; myLiteral = "строка"; myLiteral = число; myLiteral = true;
Операнд — это левая или правая часть операции. Примеры операндов:
var myOperand; myOperand = 8 + 2; // здесь в качестве операндов выступают myOperand, 8 и 2
Здесь в качестве операций выступают: +
и =
, в качестве выражений: 8 + 2
и myOperand = 10
, в качестве строки кода (инструкции): myOperand = 8 + 2;
Операция — это специальные знаки которые манипулируют операндами, например: плюс +
, минус -
, больше <
, меньше >
и т.д. Примеры операций:
var myOperator; myOperator = 7 + 3; // здесь в качестве операций выступают = и +
Операции могут быть арифметическими, сравнения, логическими и т.д.
Выражение — это комбинация операндов и операций, которая может быть вычислена интерпретатором для получения значения. Примеры выражений:
5 + 7 // + операция, 5 и 7 операнды (6 - 2) * 5 // - и * операции, (6 - 2) и 5 операнды
Строка кода (команда, инструкция), указывает совершить какое либо действие, оканчивается точкой с запятой. Пример инструкции x = y + z;
Разница между инструкцией и выражением, состоит в том, что выражение вычисляет, но ничего не делает, не изменяет программу, а строка кода изменяет.
Оператор — под операторами обычно имеют ввиду операторы ветвления: if
, else
, switch
, операторы циклов: for
, while
, do while
. Оператор ветвления также еще назвают: условной инструкцией, условным оператором, условной конструкцией.
Ключевое слово — это часть синтаксиса ядра языка, так называемый предопределённый идентификатор. Его нельзя использовать в качестве имени идентификатора. Примеры ключевых слов: break, delete, function, if и т.д.
Зарезервированное слово — это часть синтаксиса ядра языка, которое планируется использовать в будущем, использовать их в качестве идентификатора не рекомендуется. Примеры зарезервированных слов: const, import, int, long и т.д.
Дополнительный материал
Объявление переменной — это создание переменной.
Инициализация переменной — это присваивание переменной какого-либо значения.
Тип данных — это значение присваиваемой переменной, может быть числом, строкой, булевым выражением (true, false) и т.д.
NaN — Not a Number (не число), значение (тип данных) не являющееся числом. NaN появляется, когда в вычислениях появляется ошибка связанная с тем, что один из операндов арифметической операции не имеет числового типа данных. Пример:
var myVariable = "Строка"; alert(5 * myVariable); // выведет NaN
undefined (неопределённая) — состояние не инициализированной переменной. Появляется когда в сценарии участвует переменная которой не присвоили значения. Пример:
var myVariable; alert(myVariable); // выведет undefined
Переменная объявлена, но не инициализирована, значение у неё undefined. В логическом контексте undefined принимает значение false, в числовом NaN, в строковом "undefined"
null — это значение которое не имеет типа данных. Например null может появится, при нажатии в модальном окне на кнопку «Отмена», данное окно вызывается с помощью функции promt();
. В логическом контексте, nul принимает значение false, в числовом 0, в строковом "null"
Конкатенация — это операция соединения строк, в качестве операции выступает знак плюс +
. Для того чтобы произошла операция конкатенации, нужно чтобы один или два операнда имели тип данных string
. Пример:
alert("5" + 3);
Данная функция выведет «53», а не 8, поскольку один из операндов имеет тип данных, строка.
Интерпретатор — это специальная программа, которая понимает код языка и выполняет его команды.
Читать далее: Части языка JavaScript