|
|||
Выражение переменной. Синтаксис. var СписокОбъявленияПеременных ;. Описание. Семантика12.2 Выражение переменной Синтаксис ИнструкцияПеременной : var СписокОбъявленияПеременных ; СписокОбъявленияПеременных : ОбъявлениеПеременной СписокОбъявленияПеременныхБезIn : ОбъявлениеПеременнойБезIn ОбъявлениеПеременной : Идентификатор Инициализаторопц ОбъявлениеПеременнойБезIn : Идентификатор ИнициализаторБезInопц Инициализатор : = ВыражениеПрисваивания ИнициализаторБезIn : = ВыражениеПрисваиванияБезIn Описание Если инструкция переменной встречается внутри ОбъявленияФункции, переменные объявляются внутри локальной области видимости для данной функции согласно описанию в разделе 10.1.3. В противном случае они объявляются в глобальной области видимости (т.е. создаются как поля глобального объекта согласно описанию в разделе 10.1.3) с использованием атрибутов свойств { DontDelete }. Переменные создаются, когда происходит вход в область выполнения. Блок не определяет новой области выполнения. Только Программа и ОбъявлениеФункции создают новую область видимости. Переменные инициализируются при создании значением undefined. Переменной, для которой определён Инициализатор, присваивается значение его ВыраженияПрисваивания в момент выполнения ИнструкцииПеременной, а не в момент создания переменной. Семантика Значение нетерминала ИнструкцияПеременной : var СписокОбъявленияПеременных ; вычисляется по следующей схеме: 1. Вычислить значение СпискаОбъявленияПеременных. 2. Вернуть (normal, empty, empty). Значение нетерминала СписокОбъявленияПеременных :ОбъявлениеПеременной вычисляется по следующей схеме: 1. Вычислить значение ОбъявленияПеременной. Значение нетерминала СписокОбъявленияПеременных : СписокОбъявленияПеременных , ОбъявлениеПеременной вычисляется по следующей схеме: 1. Вычислить значение СпискаОбъявленияПеременных. 2. Вычислить значение ОбъявленияПеременной. Значение нетерминала ОбъявлениеПеременной : Идентификатор вычисляется по следующей схеме: 1. Вернуть строковое значение, содержащее ту же последовательность символов, что и Идентификатор. Значение нетерминала ОбъявлениеПеременной : Идентификатор Инициализатор вычисляется по следующей схеме: 1. Вычислить значение Идентификатора согласно описанию в разделе 11.1.2. 2. Вычислить значение Инициализатора. 3. Вызвать ПолучитьЗначение(Результат(2)). 4. Вызвать ЗаписатьЗначение(Результат(1), Результат(3)). 5. Вернуть строковое значение, содержащее ту же последовательность символов, что и Идентификатор. Значение нетерминала Инициализатор : = ВыражениеПрисваивания вычисляется по следующей схеме: 1. Вычислить значение ВыраженияПрисваивания. 2. Вернуть Результат(1). Значения нетерминалов СписокОбъявленияПеременныхБезIn, ОбъявлениеПеременнойБезIn и ИнициализаторБезIn вычисляются по той же схеме, что и СписокОбъявленияПеременных, ОбъявлениеПеременной и Инициализатор за исключением того, что значение вложенных СпискаОбъявленияПеременныхБезIn, ОбъявленияПеременнойБезIn, ИнициализатораБезIn и ВыраженияПрисваиванияБезIn вычисляются соответственно вместо вложенных СпискаОбъявленияПеременных, ОбъявленияПеременной, Инициализатора и ВыраженияПрисваивания.
|
|||
|