Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЯП-Лекция 02.docx
Скачиваний:
17
Добавлен:
11.06.2015
Размер:
349.33 Кб
Скачать

1.6. Дополнительные понятия и правила синтаксиса Ограничения на идентификаторы

Вводимые пользователем идентификаторы не должны совпадать с клю­чевыми и зарезервированными словамиязыка и именами стандартных (системных) функций, свойств и переменных. Со стандартными именами мы ещё познакомимся (некоторые у нас уже встречались –alert,toStringи другие), а ключевые слова перечислены ниже (некоторые из них входят в операторы, которые мы ещё будем изучать):

break do if switch typeof

case else in this var

catch false new throw void

continue finally null true while

default for return try with

delete function

Комментарии

Любой текст, присутствующий между символами //и концом строки, рассматривается каккомментарийи игнорируется (вместе с символами//)JavaScript. Любой текст между символами/*и*/также рассматривается каккомментарий(вместе с символами/*и*/). Эти комментарии могут состоять из нескольких строк и не могут быть вложенными. Следующие строки кода представляют собой корректныеJavaScript-комментарии:

s=1+ // Это однострочный комментарий.

''/* Это тоже комментарий */5//Другой комментарий.

/* alert(s) выдаст "15"

* Это ещё один комментарий.

* Он располагается в нескольких строках.

*/

Лексемы, пробельные символы и комментарии

Весь текст программы разделяют на лексемы. Лексема– это наименьшая последовательность символов, имеющая самостоятельное синтаксическое или семантическое значение. В языкеJavaScriptлексемами являютсяимена(идентификаторы),числа,строки,ключевые слова,операциии отдельные знаки, играющие рольразделителей(;,,,(,),", / и др.).

Лексемы являются неделимымисимволами, т.е. в них нельзя использовать пробельные символы (пробел, табуляция, новая строка) и комментарии. Пробелы и комментарии могут входить в строки только в качестве отдельных символов строки.

Пробельные символы и комментарии не считаются лексемами. Их безболезненно можно удалить отовсюду, кроме тех мест, где их использование необходимо в качестве разделителя лексем, например, где отсутствие разделителя не позволяет правильно распознать лексему. Так, удаление пробела в операторе var x=1 даст совсем другой оператор varx=1.

Также для удобства чтения и отладки их можно вставлять между любыми лексемами. Только при вставке символа новой строки следует опасаться ситуации, когда один оператор будет разбит на два, что может привести к неправильной работе программы. Например, вставка новой строки в оператор return xравносильна вставке точки с запятой и даст два оператораreturn; x, что приведёт к неправильной работе программы.

2. Регулярные структуры данных

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

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

Здесь мы рассмотрим некоторые часто используемые регулярные структуры данных

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]