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

1.2. Типы данных, их организация в памяти и литералы

В языке JavaScriptиспользуются следующиетипы данных:

Простые значения числа (целые и вещественные),логические значения(ИСТИНА и ЛОЖЬ),строки(последовательности любых символов), специальные значенияnull,undefined(«не определено»),Infinity(«бесконечность») иNaN(«не число»).

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

Рисунок 2.2. Массив с nэлементами.

Рисунок 2.3. Объект и его свойства.

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

Объект– это структурное значение, которое может иметь некоторое множество поименованныхсвойствиметодов (рис. 2.3). Доступ к свойствам и методам объекта осуществляется по их именам.Свойствообъекта – это его компонента, которая может многократно принимать любое значение.Методобъекта – это некотораяфункция, которую можно к нему применить для выполнения определённого действия. Массив как объект, кроме индексированных элементов, имеет также свои свойства и методы. В частности, каждый массив имеет стандартное свойство с именемlength– длина массива. Его значение всегда равно индексу последнего элемента, увеличенного на единицу.

При создании любого объекта (массива, в том числе), создаётся и специальное значение – ссылкана этот объект. Как бы не изменялось содержание объекта, эта ссылка не меняется и всегда указывает на один и тот же объект. По ссылке на объект программа получает доступ к любой компоненте этого объекта. На диаграмме ссылка на объект обозначается чёрным кружком со стрелкой, ведущей к этому объекту (см. рис. 2.5).

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

Запись имени в тексте программе обычно называется идентификатором, но мы будем использовать оба эти термина в зависимости от контекста. Синтаксис имени определяется следующим правилом:

Имя (идентификатор)– это произвольная последовательность латинских буквa–z,A–Z, цифр0–9и знака подчёркивания_(клавишиShift-). Цифра не может быть первым символом имени.

Формальный синтаксис:

Идентификатор → Буква ПродолжениеИдентификатора │_ ПродолжениеИдентификатора

ПродолжениеИдентификатора СимволИдентификатора ПродолжениеИдентификатора

СимволИдентификатора→ Буква │ Цифра10 │_

Букваa │ b │ c │ … │ z │ A │ B │ C │ … │Z

Цифра100 │ 1 │ 2 │ … │ 9

При выполнении программы, первый раз встретив имя переменной, интерпретатор создаёт переменную с этим именем и присваивает ей значение undefined.

Присваиваниезначения – одно из важнейших действий в процедурных языках программирования. ВJavaScriptприсвоить значение можно только переменной, или элементу массива, или свойству объекта – назовём ихполучателями. Наиболее часто используемая формаоператора присваиванияимеет вид:получатель = выражение(знак «=» читаетсяприсвоить).

В частности, получателем может быть имя переменной, а выражением – имя переменной или литерал (см. ниже).

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

Рисунок 2.2. Независимое изменение значений получателей.

Если же присваивается объект, то значением получателя становится не копия объекта, а копия ссылкина него. Таким образом, все получатели, которым был присвоен некоторый объект, будут ссылаться на него. При изменениях в самом объекте все эти получатели будут по-прежнему ссылаться на него. После присваивания одному из получателей другого объекта остальные получатели будут по-прежнему ссылаться на первый объект (рис. 2.5).

Рисунок 2.3. Присваивание объектов.

Связывая объекты ссылками, можно строить большие и сложныеструктуры данных. Более подробно структуры данных будут рассмотрены ниже.

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