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

Компонентные операции

Компонентные операции открывают доступ к компоненте структурного значения – к элементу массива или свойству объекта – для присваивания или извлечения значения этой компоненты.

Операция

Результат

Примеры

массив[индекс]

Открывает доступ к элементу массива по его индексу. И массив, и индекс элемента могут задаваться произвольными выражениями. Если их значения не являются массивом или целым числом, соответственно, то выдаётся ошибка.

[1,2,3][0] выдаст доступ к элементу, хранящему 1

[1,[2,3]][1][0] выдаст доступ к элементу, хранящему 2, т.к. [1,[2,3]][1] выдаст доступ к элементу, хранящему массив [2,3], а затем [2,3][0] выдаст доступ к элементу, хранящему 2

объект.свойство

Открывает доступ к указанному свойству объекта. Объект задаётся выражением, а свойство – своим именем. Если значение выражения не является объектом, выдаётся ошибка.

{d:1,b:{c:2,d:3}}.b.d выдаст доступ к свойству d, хранящему 3, т.к. {d:1,b:{c:2,d:3}}.b выдаст доступ к свойству b, хранящему {c:2,d:3}, а {c:2,d:3}.d выдаст доступ к свойству d, хранящему 3

{a:[1,2]}.a[1] выдаст доступ к 2

Операции присваивания

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

Основной операцией присваивания является =. Её синтаксис и семантика определяются следующим образом:

Синтаксис операции

Семантика операции

Примеры применения

имя = выражение

Значение выражения становится значением переменной, указанной именем, и самой операции =. Если такой переменной ещё нет, то она создаётся.

1) v=1+2; v=v+2

v сначала присваивается число 3, а потом 5.

2) x=(v=5)+2

сначала выполняется v=5, а затем x=7.

массив[индекс]= выражение

Сначала выполняется операция []. Если индекс больше или равен длины массива, добавляется необходимое количество элементов, вычисляется выражение и его результат присваивается последнему элементу (остальным добавленным элементам присваивается undefined).

1) А=[1,2,3]; А[1]=5 Массив, на который ссылается переменная А, преобразуется в массив [1,5,3].

2) А=[1,[2,3]]; В=А; А[1][0]=0 Массив, на который ссылаются переменные А и В, преобразуется в массив [1,[0,3]].

2) А=[1,2]; А[4]=0 Массив, на который ссылается переменная А, преобразуется в массив [1,2,,,0].

объект.имя = выражение

Сначала выполняется операция «.», которая выдаёт доступ к свойству объекта. Если у объекта нет свойства с указанным именем, оно создаётся. Затем вычисляется выражение и его результат присваивается свойству. Если значение выражения объект не является объектом, то присваивания не происходит и программа работает дальше.

1) А={а:1,b:[2,3]}; A.b[1]="кот" В объекте, на который ссылается переменная А, изменяется меняется, но сам объект станет равным {а:1,b:[2,"кот"]}.

Остальные операции присваивания определяются через операцию =, как показано в таблице, гдех– произвольныйполучатель, аy– произвольноевыражение:

Операция

Смысл операции

x += y

x = x+y

x -= y

x = x-y

x *= y

x = x*y

x /= y

x = x/y

x %= y

x = x%y

++x (префиксный инкремент)

x = x+1

т.е., значение x увеличивается на 1, и выдаётся новое значение x

x++ (постфиксный инкремент)

x = x+1; x-1

т.е., значение x увеличивается на 1, а выдаётся старое значение x

--x (префиксный декремент)

x = x-1

т.е., значение x уменьшается на 1, и выдаётся новое значение x

x-- (постфиксный декремент)

x = x-1; x+1

т.е., значение x уменьшается на 1, а выдаётся старое значение x

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