Artem Gorev

Мой дорогой дневничок


Первое, что происходит с программой при ее подготовке к выполнению - это лексический анализ. Он заключается в выделение токенов или лексем из входящей последовательности символов. Лексемы нужны для синтаксического анализа.

Кодировка

При написание программ на JavaScript используется стандарт кодирования информации Unicode. Поэтому можно использовать символы практически всех алфавитов мира и Emoji в своем исходном коде.

Что отделяет точка с запятой?

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

Пробелы и Табуляция

Существует два подхода к расстановке отступов в исходном коде: с помощью символа табуляции и с помощью пробелов. Я использую символ табуляции “Tab”, но с развитием утилит форматирования исходного кода, такими как Prettier, все подобные преобразования выполняются за меня, и мне не приходится задумываться об этом.

Комментарии

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

// Однострочный комментарий

/*
	Многострочный
комментарий
*/

Литералы и идентификаторы

Литералы - запись в исходном коде программы, представляющая собой фиксированное значение. Бывают числовые литералы 5 Строковые литералы ”Hello World” Булевы литералы true А могут быть и более сложные литералы, такие как массивы или объекты:

[1, 2, 3, 4, 5] // Инициализатор массива
{x:1, y:2} // Инициализатор объекта

Бывают литералы функции, такие как анонимные функции: let inc = (x) => x+1

Идентификатор - уникальное название переменной, объекта, функции, позволяющее отличать его от других сущностей, то есть идентифицировать. В JavaScript идентификатор может начинаться с буквы, символа подчеркивания _ или знака доллара $. После может следовать любое количество букв, цифр, знаков подчеркивания и знаков доллара. Идентификатором не может быть зарезервированное слово.

Примеры валидных идентификаторов:

let 	a,
		_secret_variable_from_storage,
		$Proxy2Object,
		MyAwesomeVariable123;

Примеры невалидных идентификаторов:

let 5DollarsBillYa, 		// начинается с цифры
	  Where’smycard.dude,	// содержит запрещенный символ (‘)
	  Twenty%%in,			// содержит запрещенные символы (%)		
	  class, 				// зарезервированное слово
   

Верхний или нижний регистр

Прошли те времена, когда идентификаторы были регистронезависимыми. Последний раз я видел такое в языке Basic. Все идентификаторы в JavaScript являются регистрозависимыми, это значит, что если вы объявите переменную let myAwesomeVariable = 0, то нельзя будет ее использовать с другими именем, например: myawesomevariable++. Всегда используйте одно и тоже написание имени идентификатора, иначе получите ошибку от интерпретатора > ReferenceError: myawesomevariable is not defined

Зарезервированные слова

Знакомство с зарезервированными словами поможет в самой трудной задаче программиста - выбора имени переменной. Вы будете знать, что такие имена использоваться не получится, тем самым сократив возможные варианты. Некоторые ключевые слова широко применяются, некоторые зарезервированы разработчиками языка на будущее, некоторые практически никогда не используются. Перечислю их:

abstract    else        instanceof  super       boolean     enum  
int         switch      break       export      interface   synchronized  
byte        extends     let         this        case        false  
long        throw       catch       final       native      throws  
char        finally     new         transient   class       float  
null        true        const       for         package     try  
continue    function    private     typeof      debugger    goto  
protected   var         default     if          public      void  
delete      implements  return      volatile    do          import  
short       while       double      in          static      with  

В следующей статье…

В следующей статье мы разберемся с устройством переменных в языке JavaScript