Выразительный JavaScript | страница 16
>var x = 30;
>console.log("the value of x is", x);
>// → the value of x is 30
Хотя в именах переменных нельзя использовать точку – она, очевидно, содержится в названии >console.log
. Это оттого, что >console.log
– не простая переменная. Это выражение, возвращающее свойство >log
переменной >console
. Мы поговорим об этом в главе 4.
Возвращаемые значения
Показ диалогового окна или вывод текста на экран – это побочный эффект. Множество функций полезны оттого, что они производят эти эффекты. Функции также могут производить значения, и в этом случае им не нужен побочный эффект для того, чтобы быть полезной. К примеру, функция >Math.max
принимает любое количество переменных и возвращает значение самой большой:
>console.log(Math.max(2, 4));
>// → 4
Когда функция производит значение, говорят, что она возвращает значение. Всё, что производит значение – это выражение, то есть вызовы функций можно использовать внутри сложных выражений. К примеру, возвращаемое функцией >Math.min
(противоположность Math.max) значение используется как один из аргументов оператора сложения:
>console.log(Math.min(2, 4) + 100);
>// → 102
В следующей главе описано, как писать собственные функции.
prompt и confirm
Окружение браузера содержит другие функции, кроме >alert
, которые показывают всплывающие окна. Можно вызвать окно с вопросом и кнопками OK/Cancel при помощи функции >confirm
. Она возвращает булевское значение – >true
, если нажато OK, и >false
, если нажато Cancel.
>confirm("Ну что, поехали?");
Функцию >prompt
можно использовать, чтобы задать открытый вопрос. Первый аргумент – вопрос, второй – текст, с которого пользователь начинает. В диалоговое окно можно вписать строку текста, и функция вернёт его в виде строки.
>prompt("Расскажи мне всё, что знаешь.", "...");
Эти функции нечасто используют, потому что нельзя изменять внешний вид этих окон — но они могут пригодиться для экспериментальных программ.
Управление порядком выполнения программы
Когда в программе больше одной инструкции, они выполняются сверху вниз. В этом примере у программы две инструкции. Первая спрашивает число, вторая, выполняемая следом, показывает его квадрат.
>var theNumber = Number(prompt("Выбери число", ""));
>alert("Твоё число – квадратный корень из " + theNumber * theNumber);
Функция >Number
преобразовывает величину в число. Нам это нужно, потому что >prompt
возвращает строку. Есть сходные функции >String
и >Boolean
, преобразующие величины в соответствующие типы.