Выразительный JavaScript (Хавербеке) - страница 21

. Такой вызов – это выражение и может выдавать значение.

Упражнения

Каждое упражнение начинается с описания задачи. Прочтите и постарайтесь выполнить. В сложных ситуациях обращайтесь к подсказкам. Готовые решения задач можно найти на сайте книги eloquentjavascript.net/code/. Чтобы обучение было эффективным, не заглядывайте в ответы, пока не решите задачу сами, или хотя бы не попытаетесь её решить достаточно долго для того, чтобы у вас слегка заболела голова. Там же можно писать код прямо в браузере и выполнять его.

Треугольник в цикле

Напишите цикл, который за 7 вызовов >console.log выводит такой треугольник:

>#

>##

>###

>####

>#####

>######

>#######

Будет полезно знать, что длину строки можно узнать, приписав к переменной >.length.

>var abc = "abc";

>console.log(abc.length);

>// → 3

FizzBuzz

Напишите программу, которая выводит через >console.log все числа от 1 до 100, с двумя исключениями. Для чисел, нацело делящихся на 3, она должна выводить >"Fizz", а для чисел, делящихся на 5 (но не на 3) – >"Buzz".

Когда сумеете, исправьте её так, чтобы она выводила >"FizzBuzz" для всех чисел, которые делятся и на 3, и на 5.

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

Шахматная доска

Напишите программу, создающую строку, содержащую решётку 8×8, в которой линии разделяются символами новой строки. На каждой позиции либо пробел, либо >#. В результате должна получиться шахматная доска.

># # # #

> # # # #

># # # #

> # # # #

># # # #

> # # # #

># # # #

> # # # #

Когда справитесь, сделайте размер доски переменным, чтобы можно было создавать доски любого размера.

3. Функции

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

Дональд Кнут

Вы уже видели вызовы функций, таких как >alert. Функции – это хлеб с маслом программирования на JavaScript. Идея оборачивания куска программы и вызова её как переменной очень востребована. Это инструмент для структурирования больших программ, уменьшения повторений, назначения имён подпрограммам, и изолирование подпрограмм друг от друга.

Самое очевидное использование функций – создание нового словаря. Придумывать слова для обычной человеческой прозы – дурной тон. В языке программирования это необходимо.

Средний взрослый русскоговорящий человек знает примерно 10000 слов. Редкий язык программирования содержит 10000 встроенных команд. И словарь языка программирования определён чётче, поэтому он менее гибок, чем человеческий. Поэтому нам обычно приходится добавлять в него свои слова, чтобы избежать излишних повторений.