Синтаксис оператора return ReturnStatement [Yield, Await] : return ; return [не LineTerminator здесь] Expression [+In, ?Yield, ?Await] ; Примечание Оператор return заставляет функцию прекращать выполнение и, в большинстве случаев, возвращает значение вызывающей стороне. Если выражение Expression не указано, возвращаемое значение является undefined (не определено). В противном случае возвращаемое значение […]
Архивы по дням: 10.09.2021
Синтаксис оператора break BreakStatement [Yield, Await] : break ; break [не LineTerminator здесь] LabelIdentifier [?Yield, ?Await] ; 14.9.1 Статическая семантика: ранние ошибки BreakStatement : break ; Это синтаксическая ошибка, если этот BreakStatement не вложен, прямо или косвенно (но не пересекает границы функции), в IterationStatement или SwitchStatement. 14.9.2 Семантика […]
Синтаксис оператора continue ContinueStatement [Yield, Await] : continue ; continue [не LineTerminator здесь] LabelIdentifier [?Yield, ?Await] ; 14.8.1 Статическая семантика: Ранние Ошибки ContinueStatement : continue ; continue LabelIdentifier ; Это синтаксическая ошибка, если этот ContinueStatement не вложен, прямо или косвенно (но не пересекает границы функции), в IterationStatement. 14.8.2 […]
Синтаксис операторов итерации IterationStatement [Yield, Await, Return] : DoWhileStatement [?Yield, ?Await, ?Return] WhileStatement [?Yield, ?Await, ?Return] ForStatement [?Yield, ?Await, ?Return] ForInOfStatement [?Yield, ?Await, ?Return] 14.7.1 Семантики 14.7.1.1 LoopContinues ( completion, labelSet ) Абстрактная операция LoopContinues принимает аргументы completion и labelSet. На русском эта функция выглядит примерно так «Цикл продолжается (завершение, […]
14.1.1 Семантика времени выполнения: Оценка HoistableDeclaration : GeneratorDeclaration AsyncFunctionDeclaration AsyncGeneratorDeclaration 1. Вернуть NormalCompletion(empty). HoistableDeclaration : FunctionDeclaration 1. Вернуть результат вычисления FunctionDeclaration. BreakableStatement : IterationStatement SwitchStatement 1. Пусть newLabelSet будет новым пустым Списком. 2. Верните результат выполнения маркированной оценки LabelledEvaluation этого BreakableStatement с аргументом newLabelSet. Информационные ссылки Стандарт ECMAScript […]
Синтаксис Блока BlockStatement [Yield, Await, Return] : Block [?Yield, ?Await, ?Return] Block [Yield, Await, Return] : { StatementList [?Yield, ?Await, ?Return] opt } StatementList [Yield, Await, Return] : StatementListItem [?Yield, ?Await, ?Return] StatementList [?Yield, ?Await, ?Return] StatementListItem [?Yield, ?Await, ?Return] StatementListItem [Yield, Await, Return] : Statement [?Yield, ?Await, ?Return] Declaration […]
14.3.1 Объявления Let и Const Примечание Объявления let и const определяют переменные, которые привязаны к «лексической среде» (LexicalEnvironment) текущего контекста выполнения. Переменные создаются при создании экземпляра содержащейся в них «записи среды«(Environment Record), но к ним нельзя получить доступ каким-либо образом до тех пор, пока не будет вычислена «лексическая привязка» (LexicalBinding) […]
Синтаксис оператора пустоты EmptyStatement : ; 14.4.1 Семантика времени выполнения: Оценка EmptyStatement : ; 1. Верните NormalCompletion(empty). Информационные ссылки Стандарт ECMAScript — Раздел «14.4 Empty Statement» — https://tc39.es/ecma262/#sec-empty-statement
Синтаксис оператора выражения ExpressionStatement [Yield, Await] : [lookahead ∉ { {, function, async [не LineTerminator здесь] function, class, let [ }] Expression [+In, ?Yield, ?Await] ; Примечание ExpressionStatement не может начинаться с левой фигурной скобки { U+007B (LEFT CURLY BRACKET), потому что это может сделать его неоднозначным с производством […]
Синтаксис оператора if IfStatement [Yield, Await, Return] : if ( Expression [+In, ?Yield, ?Await] ) Statement [?Yield, ?Await, ?Return] else Statement [?Yield, ?Await, ?Return] if ( Expression [+In, ?Yield, ?Await] ) Statement [?Yield, ?Await, ?Return] [lookahead ≠ else] Примечание Ограничение просмотра вперед [lookahead ≠ else] решает классическую проблему «висящего ИНАЧЕ» […]