JavaScript. Подробное руководство, 6-е издание
Шрифт:
• Выражение, стоящее перед ключевым словом
Ниже приводятся несколько более конкретных примеров, которые помогут лучше понять синтаксис:
11.4.5. Выражения-генераторы
В JavaScript 1.8 [23]
можно заменить квадратные скобки в генераторах массивов круглыми скобками и получить выражения-генераторы. Выражение-генератор похоже на генератор массивов (синтаксис в круглых скобках в точности соответствует синтаксису в квадратных скобках), но его значением является объект генератора, а не массив. Преимущество выражений-генераторов перед генераторами массивов в том, что они используют прием отложенных вычислений - вычисления выполняются по мере необходимости, а не все сразу - и позволяют обрабатывать даже бесконечные последовательности. Недостаток генераторов состоит в том, что они обеспечивают только последовательный доступ к своим элементам. То есть, в отличие от массивов, генераторы не позволяют обращаться к элементам по индексам: чтобы получить n-е значение, придется выполнить n-1 итераций.
23
На момент написания этих строк выражения-генераторы не поддерживались в Rhino.
Ранее в этой главе мы реализовали функцию map:
Выражения-генераторы позволяют избежать необходимости создавать или использовать такую функцию map. Чтобы получить новый генератор h, возвращающий f (х) для каждого значения х, возвращаемого генератором g, достаточно использовать такой программный код:
Используя генератор eachline из примера 11.1, можно реализовать отсечение пробельных символов, а также фильтрацию комментариев и пустых строк, как показано ниже:
11.5. Краткая форма записи функций
В JavaScript 1.8 [24]
появилась возможность краткой записи простых функций (называется «лексическим замыканием»). Если функция вычисляет единственное выражение и возвращает его значение, ключевое слово
24
На момент написания этих строк данная особенность не поддерживалась в Rhino.
Это просто и удобно: функции, определяемые таким способом, ведут себя как обычные функции, в определении которых присутствуют фигурные скобки и ключевое слово
11.6. Множественные блоки catch
В JavaScript 1.5 инструкция
Мессия
121. Книга-загадка, книга-бестселлер
Детективы:
триллеры
маньяки
рейтинг книги
Граф
6. Помещик
Фантастика:
альтернативная история
рейтинг книги
Звездная Кровь. Экзарх II
2. Экзарх
Старинная литература:
прочая старинная литература
рейтинг книги
Хозяин Теней 6
6. Безбожник
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
рейтинг книги
На границе империй. Том 10. Часть 10
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
рейтинг книги
Наследник
3. Травник
Фантастика:
фэнтези
рейтинг книги
Практик
5. Ушедший Род
Фантастика:
аниме
фэнтези
попаданцы
рейтинг книги
Бастард Императора. Том 5
5. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Эволюционер из трущоб
1. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
рейтинг книги
Сталин
3. Загадки жизни и смерти
Проза:
историческая проза
рейтинг книги
Вернуть невесту. Ловушка для попаданки
1. Вернуть невесту
Любовные романы:
любовно-фантастические романы
рейтинг книги
Тринадцатый V
5. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Начало
1. Второй шанс
Фантастика:
фэнтези
рейтинг книги