На уроке будут рассмотрены Javascript функции, как пользовательские, так и встроенные; способы создания и вызов функций; локальные и глобальные переменные в функции, а также рекурсивный вызов функции в javascript
Сайт labs-org.ru предоставляет лабораторные задания по javaScript для закрепления теоретического материала и получения практических навыков создания динамических веб-страниц. Краткие теоретические сведения по теме позволят получить необходимый для этого минимум знаний. Решенные наглядные примеры и лабораторные задания изложены по мере увеличения их сложности, что позволит с легкостью изучить материал с нуля. Желаем удачи!
Встроенные Javascript функции
В javascript достаточно много функций, встроенных в синтаксис языка. Рассмотрим одну из них.
еval(строка)
Функция
еval(строка)
вычисляет выражение в указанной строке (в качестве параметра); выражение должно быть составлено по правилам языка JavaScript и не содержать тегов HTML:
еval("5 * 7 + 1 / 2")
Рассмотрим пример использования функции еval:
Пример: Рассмотреть пример работы кода с функцией
еval.
1
2
3
| let y = 5; // значение у равно 5
let x = "if (y==5) y*2-3"; // значение х равно строке символов
let rezult = eval(x); // rezult равно 7 |
let y = 5; // значение у равно 5
let x = "if (y==5) y*2-3"; // значение х равно строке символов
let rezult = eval(x); // rezult равно 7
Задание js4_1. В скрипте запрашивать у пользователя ввести в диалоговое окно ввода математическое выражение, затем вычислить значение данного выражения и результат вывести в диалоговом окне.
Пользовательские Javascript функции
Пользовательские функции прежде всего необходимы в ситуации, когда в разных частях программы необходимо выполнять одни и те же действия несколько раз. В таком случае повторяемые операторы оформляются в виде функции, к которой можно обращаться и вызывать ее выполнение из разных частей программы.
В javascript предусмотрены два варианта функций: функции, которые при их вызове выполняют какие-то действия (например, выводят сообщение), и функции, которые возвращают значение (число, строку, …).
- Функция в роли процедуры. Если функция выполняет какие-либо действия и не возвращает значение:
Синтаксис объявления (создания) функции:
function имя_функции(аргументы){
код;
} |
function имя_функции(аргументы){
код;
}
Важно: Если аргументы у функции отсутствуют, то после имени функции ставятся пустые скобки
()
:
function имя_функции(){
тело функции;
}
Другой вариант создания функции — Function Expression (Функциональное Выражение):
let имя_функции = function() {
тело функции;
};
Вызов функции:
В javascript вызов функции в роли процедуры происходит следующим образом:
имя_функции (аргументы); // с аргументами
имя_функции (); // без аргументов |
имя_функции (аргументы); // с аргументами
имя_функции (); // без аргументов
Пример: Создать функцию для вывода модального окна со словом hello. Осуществить вызов функции.
✍ Решение:
Создайте код и протестируйте его в браузере:
function sayHello()
{
alert("hello");
}
sayHello(); |
function sayHello()
{
alert("hello");
}
sayHello();
- Если функция возвращает значение:
Синтаксис объявления:
function имя_функции(аргументы){
код;
return результат или выражение
} |
function имя_функции(аргументы){
код;
return результат или выражение
}
Важно: В javascript return
— директива, которая завершает выполнение функции и возвращает значение
Вызов функции:
В javaScript вызов функции, возвращающей значение, происходит, например, следующим образом:
let a = имя_функции (аргументы);
alert(a); // 1-й способ
let b = a + a; // 2-й способ |
let a = имя_функции (аргументы);
alert(a); // 1-й способ
let b = a + a; // 2-й способ
То есть значение нужно либо вывести на экран, либо можно использовать в дальнейших выражениях.
Пример: Рассмотрите фрагмент кода и поясните, что выполняется в данном скрипте:
1
2
3
4
5
6
7
8
| function sayHello()
{
alert("1");
return "привет!";
alert("2");
}
let a=sayHello();
alert(a); |
function sayHello()
{
alert("1");
return "привет!";
alert("2");
}
let a=sayHello();
alert(a);
✍ Решение:
- Рассмотрите работу функции:
1
2
3
4
5
6
| function sayHello()
{
alert("1");// выполнится
return "привет!";// завершаем выполнение функции
alert("2");// не выполнится, т.к. после return
} |
function sayHello()
{
alert("1");// выполнится
return "привет!";// завершаем выполнение функции
alert("2");// не выполнится, т.к. после return
}
Как видно из примера, после return
функция действительно завершает свою работу. Поэтому оператор alert("2")
выполняться уже не будет.
- Проанализируйте вызов функции:
let a=sayHello();
alert(a); |
let a=sayHello();
alert(a);
Вызов функции происходит через присваивание. Вызов в данном примере можно также организовать так: alert(sayHello());
, но это не рекомендуемый вариант.
Важно: Таким образом, директива
return
указывает на возвращаемое значение функции, которое будет передано переменной при следующей форме вызова:
переменная = имя_функции();
Важно: return
может использоваться без значения, чтобы прекратить выполнение функции и выйти из нее:
1
2
3
4
5
| function checkName() {
let name=prompt('введите имя')
if (!name) {
return; // если имя не заполнено, то выходим из функции
} |
function checkName() {
let name=prompt('введите имя')
if (!name) {
return; // если имя не заполнено, то выходим из функции
}
Задание js4_2. Дополните код согласно заданию: В переменную
povtor присвоить результат выполнения функции
confirm
, которая выводит фразу
«Пройти заполнение еще раз?» и принимает ответ пользователя (
ок или
отмена).
Фрагмент кода:
1
2
3
4
5
6
7
| function say() {
document.write("Вы здесь?" + "<br/>");
}
do {
say();
povtor = ...
} while (povtor); |
function say() {
document.write("Вы здесь?" + "<br/>");
}
do {
say();
povtor = ...
} while (povtor);
Задание js4_3. Создать функцию без параметров, которая вычисляет разность двух вводимых пользователем в диалоговые окна числа. Выполнить задание двумя способами: 1) функция выводит сообщение с результатом; 2) в функции выполняется разность, а сообщение с результатом выводится в основной программе.
Примерный фрагмент кода для одного из способов:
1
2
3
4
5
6
| function raznost() {
let a = ...
let b = ...
...
}
... |
function raznost() {
let a = ...
let b = ...
...
}
...
Вопросы для самоконтроля:
- Для чего используются функции?
- Объясните в чем разница использования функции в роли процедуры и функции с классическим оформлением?
- Опишите синтаксис вызова функции в роли процедуры.
- Опишите синтаксис вызова функции с классическим оформлением.
- Для чего служит директива
return
?
Javascript функции с параметрами (аргументами) и возврат значений
Рассмотрим подробнее использование инструкции return
в функции javascript на двух примерах. Кроме того, рассмотрим использование в Javascript функции с параметрами (аргументами).
⇒ 1. Функция в качестве процедуры.
Функция в качестве процедуры возвращает значение undefined
, но выполняет какие-то действия:
Пример: Создать скрипт, выводящий в модальное окно сообщение
‘Привет, имя‘, где
имя передается из программы в качестве аргумента функции.
✍ Решение:
- Объявите функцию sayHello. В скобках аргументов функции укажите аргумент с именем userName:
1
2
3
4
| function sayHello(userName)
{
...
} |
function sayHello(userName)
{
...
}
В примере функция имеет один аргумент, указанный в скобках, т.е. userName.
- В коде функции с помощью метода
alert()
выводите сообщение вместе со значением аргумента функции:
1
2
3
4
| function sayHello(userName)
{
alert("Привет, " + userName);
} |
function sayHello(userName)
{
alert("Привет, " + userName);
}
- В основной программе дважды вызовите функцию с разными значениями:
1
2
3
| ...
sayHello("Вася");
sayHello("Петя"); |
...
sayHello("Вася");
sayHello("Петя");
Переменная userName примет то значение, которое указано в скобках при вызове функции — «Вася» и «Петя». Значит, при первом вызове функция выведет в диалоговое окно Привет, Вася, при втором — Привет, Петя.
- Протестируйте результат в браузере.
⇒ 2. Функция в роли функции (классическое оформление).
Функция в классическом оформлении возвращает конкретное значение.
Пример: Написать функцию, которая принимает в качестве аргумента имя пользователя и возвращает в программу сообщение ‘Привет, имя‘. В основной программе выводить данное сообщение методом alert()
.
✍ Решение:
Объявите функцию sayHello. В скобках аргументов функции укажите аргумент с именем userName:
1
2
3
4
| function sayHello(userName)
{
...
} |
function sayHello(userName)
{
...
}
В примере функция имеет один аргумент, указанный в скобках, т.е. userName.
- В коде функции с помощью директивы
return
верните сообщение вместе со значением аргумента функции:
1
2
3
4
| function sayHello(userName)
{
return "Привет, " + userName;
} |
function sayHello(userName)
{
return "Привет, " + userName;
}
- В основной программе создайте переменную и присвойте ей значение вызова функции. Выведите значение переменной методом
alert()
:
1
2
3
| ...
let a = sayHello("Вася");
alert(a); |
...
let a = sayHello("Вася");
alert(a);
- Протестируйте результат в браузере.
Важно: Обратите внимание на разницу между вызовом функции без директивы
return
и с директивой: в первом случае функция вызывается как оператор, возвращая значение
undefined
; во втором случаем функция вызывается через присваивание, либо участвуя в выражениях (
см. ниже)
Задание js4_4. Что выведет на экран следующий код?
1
2
3
4
5
6
7
8
9
10
11
| let a = 5, b = 10, c = 20, d = 7;
function Sum1() {
let result = a + b;
document.write("Sum1: " + result + "<br/>");
}
function Sum2(x1, x2) {
let result = x1 + x2;
document.write("Sum2: " + result);
}
Sum1();
Sum2(c, d); |
let a = 5, b = 10, c = 20, d = 7;
function Sum1() {
let result = a + b;
document.write("Sum1: " + result + "<br/>");
}
function Sum2(x1, x2) {
let result = x1 + x2;
document.write("Sum2: " + result);
}
Sum1();
Sum2(c, d);
Задание js4_5. Необходимо запросить у пользователя ввести возраст (метод prompt()
). Вызывать функцию, которая выводит диалоговое окно с сообщением ‘Привет, малыш!’, если возраст менее 18, и ‘Здравствуйте, юноша!’, если возраст более или равен 18.
У функций могут быть
необязательные аргументы:
Пример:
function f(x, y = 3) {
return x + y;
}
f(2); // 5 |
function f(x, y = 3) {
return x + y;
}
f(2); // 5
Все способы создания пользовательских функций
- классический синтаксис
function a1(x, y) {
return x + y;
} |
function a1(x, y) {
return x + y;
}
- явное создание объекта
Function
//обязательным является только последний аргумент – тело функции
let a1 = new Function('x', 'y', 'return x + y'); |
//обязательным является только последний аргумент – тело функции
let a1 = new Function('x', 'y', 'return x + y');
или
let a1 = new Function('return "hello"'); |
let a1 = new Function('return "hello"');
- еще один вариант создания
let a1 = function(x, y) { return x + y; }; |
let a1 = function(x, y) { return x + y; };
Вызов функций во всех случаях будет:
let a = a1(3, 4);
alert(a); // вывод значения на экран |
let a = a1(3, 4);
alert(a); // вывод значения на экран
Использование выражений с функциями
Обычное использование javascript функции:
1
2
3
4
5
6
7
| function sum(arg1,arg2)
{
let a=arg1+arg2;
return a;
}
let b=sum(1,2);
alert(b); |
function sum(arg1,arg2)
{
let a=arg1+arg2;
return a;
}
let b=sum(1,2);
alert(b);
Функция как составная часть выражения:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| function sum(arg1,arg2)
{
let a=arg1+arg2;
return a;
}
let b=sum(1,2);
alert(b);
function add()
{
let c=1+sum(1,2);
return c;
}
let d=add();
alert(d); |
function sum(arg1,arg2)
{
let a=arg1+arg2;
return a;
}
let b=sum(1,2);
alert(b);
function add()
{
let c=1+sum(1,2);
return c;
}
let d=add();
alert(d);
Во второй функции (add()
) используется выражение, ссылающееся на первую функцию (sum()
, в 11-й строке).
Задание js4_6. Создать функцию, возвращающую наибольшее из трех чисел. Аргументами функции являются сами числа.
Фрагмент кода:
function findMax(a,b,c){
...
return ...
}
let max = ...
... |
function findMax(a,b,c){
...
return ...
}
let max = ...
...
Другие варианты использования выражений с функциями
(только для функций, которые возвращают результат):
Рассмотрим примеры для функции:
1
2
3
4
| function plRectangle(width, height){
let S = width * height;
return S
} |
function plRectangle(width, height){
let S = width * height;
return S
}
Варианты выражений:
⇒ Вызов функции как часть выражения:
1
| S3 = 0.5 * plRectangle(a, b); |
S3 = 0.5 * plRectangle(a, b);
⇒ Вызов функции в логических выражениях:
1
2
| if (plRectangle(a, b) > plRectangle(c, d))
alert("Первый прямоугольник больше второго"); |
if (plRectangle(a, b) > plRectangle(c, d))
alert("Первый прямоугольник больше второго");
⇒ Вызов javascript функции в качестве параметра другой функции:
1
2
3
| let х = "25рх";
let у = 12;
let S = plRectangle(parselnt(x), у); |
let х = "25рх";
let у = 12;
let S = plRectangle(parselnt(x), у);
Задание js4_7. Используйте функцию для модернизации
примера с окончанием слова про количество ворон. Откройте файл с выполненным заданием про ворон. Необходимо вызывать функцию с параметром – количество ворон.
Задание js4_8. Создайте функцию для расчета степени введенного числа.
Вопросы для самоконтроля:
- Что такое аргументы функции и где они указываются?
- Может ли на месте аргумента функции находиться вызов другой функции?
Область видимости переменных. Javascript глобальные и локальные переменные в функции
Область видимости переменной — область кода, в котором переменная доступна для использования.
- Глобальные переменные
- — создаются на уровне сценария и сохраняются до конца сценария;
- — объявляются до описания javascript функции:
-
-
let a = 1;
function ...
... |
let a = 1;
function ...
...
- — могут быть причиной сложно находимых ошибок;
- Локальные переменные
- — создаются внутри фрагментов кода и не видны извне;
-
-
for (let i=1;i<5;i++){ // i - локальная
...
}
if (x<5) {
let a=5; // a - локальная
} |
for (let i=1;i<5;i++){ // i - локальная
...
}
if (x<5) {
let a=5; // a - локальная
}
- — явно объявляются в теле javascript функции;
-
-
function findA(){
let a = 2*2 // a - локальная
} |
function findA(){
let a = 2*2 // a - локальная
}
- — аргументы (параметры) функции — всегда локальные переменные;
- — лучше использовать локальные переменные, так как доступ к ним больше контролируется.
Задание js4_9. Дополните код согласно заданию:
Создать 2 переменные глобальной и локальной области видимости (то есть внутри функции
func
) с именами:
global
,
local
.
Переменной
global
присвоить текст
“Привет, ”, а
local
—
“Мир”. Используя переменные, выведите их значения дважды: в основной программе и в теле функции.
function func() {
}
func(); |
function func() {
}
func();
Область видимости переменных
Рассмотрим конкретные примеры области видимости переменных в javascript при использовании глобальных и локальных переменных.
1
2
3
4
5
6
7
8
| let S = 2; // Глобальная переменная S
function plRectangle(width, height){
let S = width * height;
return S // Локальная переменная S
}
z = plRectangle(2, 3);
alert(z);
alert(S); |
let S = 2; // Глобальная переменная S
function plRectangle(width, height){
let S = width * height;
return S // Локальная переменная S
}
z = plRectangle(2, 3);
alert(z);
alert(S);
Пример: Значение z
равно 6, а значение S
осталось равным 2, то есть значению глобальной переменной, определенной во внешней программе
1
2
3
4
5
6
7
8
9
10
11
| function plRectangle(width, height)
{
let s = width * height; // аргументы всегда локальны
width = width + 10;
return s
}
width = 2;
height = 3;
z = plRectangle(width, height);
alert(z);
alert(width); |
function plRectangle(width, height)
{
let s = width * height; // аргументы всегда локальны
width = width + 10;
return s
}
width = 2;
height = 3;
z = plRectangle(width, height);
alert(z);
alert(width);
Пример: Значение z
равно 6; значение переменной width
равно 2, то есть осталось без изменений
1
2
3
4
5
6
7
8
9
10
| let S = 2; // Глобальная переменная S
function plRectangle(width, height)
{
S = width * height;
// заменяем глобальную переменную:
return S // S - глобальная переменная (т.к. без определения var)
}
let z = plRectangle(2, 3);
alert(z);
alert(S); |
let S = 2; // Глобальная переменная S
function plRectangle(width, height)
{
S = width * height;
// заменяем глобальную переменную:
return S // S - глобальная переменная (т.к. без определения var)
}
let z = plRectangle(2, 3);
alert(z);
alert(S);
Пример: Значения и z
и S
равны 6; S
— глобальная переменная
1
2
3
4
5
6
7
8
| function Plrectangle(width, height){
S = width * height; //глобальная переменная
return S
}
z = Plrectangle(2, 3);
S=2; // изменяем глобальную переменную
alert(z);
alert (S); |
function Plrectangle(width, height){
S = width * height; //глобальная переменная
return S
}
z = Plrectangle(2, 3);
S=2; // изменяем глобальную переменную
alert(z);
alert (S);
Пример: Значение z
равно 6, а значение S
равно 2, то есть значению измененной глобальной переменной, определенной во внешней программе
1
2
3
4
5
6
7
8
9
10
| function plRectangle(width, height)
{
let S = width * height;
let x = 17;
return S
}
z = plRectangle(2,3);
alert(z);
alert(x); // не определена во внешней программе
alert (S); // не определена во внешней программе |
function plRectangle(width, height)
{
let S = width * height;
let x = 17;
return S
}
z = plRectangle(2,3);
alert(z);
alert(x); // не определена во внешней программе
alert (S); // не определена во внешней программе
Пример: Значение z
равно 6; переменная S
во внешней программе не определена; переменная х
во внешней программе не определена
Задание js4_10. Что выведет на экран следующий код?
1
2
3
4
5
6
7
| let variable = "Глобальная переменная";
function f() {
let variable = "Локальная переменная";
document.write(variable + "<br/>");
}
f();
document.write(variable); |
let variable = "Глобальная переменная";
function f() {
let variable = "Локальная переменная";
document.write(variable + "<br/>");
}
f();
document.write(variable);
Вопросы для самоконтроля:
- Какова разница между локальными и глобальными переменными?
- Зачем в программировании существует необходимость деления переменных на локальные и глобальные?
Рекурсивная функция javascript
Важно: В информатике и программировании, а, соответственно, и в javascript, рекурсия — это вызов функции из самой же функции, т.е. функция в функции
Бывают также косвенная или сложная рекурсия, когда функция вызывается не непосредственно из самой себя, а из вложенной в нее функции: например, функция A
вызывает функцию B
, а функция B
— функцию A
. Количество вложенных вызовов функции или процедуры называется глубиной рекурсии.
Для организации рекурсии необходимо наличие нескольких условий:
- начальное условие (известное значение для переменной, отправной момент рекурсии);
- рекурсивное правило;
- условие окончания рекурсии.
Рекурсия javascript рассмотрена ниже на примере возведения числа в степень.
Для начала рассмотрим итерационный вариант возведения в степень, т.е. с использованием цикла:
Пример: Используя функцию, необходимо вычислять возведение числа в степень. Выполнить задание, используя цикл for
Показать решение:
1
2
3
4
5
6
7
8
| let chislo,stepen;
function degree(chislo,stepen) {
for(let result = 1; stepen > 0; stepen--) {
result *= chislo;
}
return result;
}
document.write(degree(2,4)); // выводит 16 |
let chislo,stepen;
function degree(chislo,stepen) {
for(let result = 1; stepen > 0; stepen--) {
result *= chislo;
}
return result;
}
document.write(degree(2,4)); // выводит 16
Пример: Выполнить возведение числа в степень через рекурсию. Оба значения запрашивать у пользователя. Выдавать результат в виде:
2 в степени 4 = 16
✍ Решение:
- Объявите глобальные переменные для числа и степени и запросите их:
let chislo,stepen;
chislo = parseInt(prompt('число: '));
stepen = parseInt(prompt('степень: ')); |
let chislo,stepen;
chislo = parseInt(prompt('число: '));
stepen = parseInt(prompt('степень: '));
- Создайте функцию с двумя аргументами для числа и степени:
function degree(chislo,stepen) {
} |
function degree(chislo,stepen) {
}
- Поскольку известно, что любое число в степени 0 равно единице, то сделаем это начальным условием. То есть если степень = 0, то функция возвращает 1:
function degree(chislo,stepen) {
if(stepen) {
…
}
return 1; // если степень равна нулю то возвращаем 1
} |
function degree(chislo,stepen) {
if(stepen) {
…
}
return 1; // если степень равна нулю то возвращаем 1
}
- Создадим рекуррентное правило: если степень не равна 0, то нужно число умножить на число в степени на единицу меньше (вызов функции со степенью на единицу меньше):
function degree(chislo,stepen) {
if(stepen) {
return chislo*degree(chislo,stepen-1);
}
return 1;
} |
function degree(chislo,stepen) {
if(stepen) {
return chislo*degree(chislo,stepen-1);
}
return 1;
}
- Вызовите функцию, оформив вывод:
document.write(chislo,' в степени ', stepen, ' = ', degree(chislo,stepen)); |
document.write(chislo,' в степени ', stepen, ' = ', degree(chislo,stepen));
- Протестируйте результат в браузере.
Задание js4_11. Что выведет на экран следующий код?
1
2
3
4
5
6
7
8
| function f(counter) {
counter--;
document.write(counter + "<br/>");
if (counter != 0)
f(counter);
document.write(counter + "<br/>");
}
f(2); |
function f(counter) {
counter--;
document.write(counter + "<br/>");
if (counter != 0)
f(counter);
document.write(counter + "<br/>");
}
f(2);
Пример: Вычисление факториала числа итерационным методом с использованием
цикла:
Показать решение:
1
2
3
4
5
6
7
8
9
10
11
| let m = 2;
x = factorial(m);
document.write(x);
function factorial(n){
if(n <= 1) return 1;
rezult = 2; // result - переменная для результата
for (i = 3; i <=n; i++) {
rezult = rezult*i;
}
return result;
} |
let m = 2;
x = factorial(m);
document.write(x);
function factorial(n){
if(n <= 1) return 1;
rezult = 2; // result - переменная для результата
for (i = 3; i <=n; i++) {
rezult = rezult*i;
}
return result;
}
Вопросы для самоконтроля:
- Что такое рекурсия?
- Назовите основные условия организации рекурсии, как вы их понимаете?
Стрелочные функции или лямбда выражения в javascript
В javascript возможно использование так называемых
лямбда выражений: функции, которые сокращают запись выражения. В записи такой функции используется стрелочка
=>
, отсюда и название «стрелочные функции». Стрелочку можно трактовать, как
«такое, что»:
Пример стрелочной функции с одним аргументом:
let f = x => x + 1;
alert(f(5)) |
let f = x => x + 1;
alert(f(5))
Расшифровываем так:
функция f равна значению x, такое, что x = x + 1.
То есть в результате в окно выведется 6.
Пример стрелочной функции с двумя аргументами:
let g = (x, y) => x + y;
alert(g(5,3)) |
let g = (x, y) => x + y;
alert(g(5,3))
✍ Решение:
Результатом работы скрипта будет вывод числа 8.
Пример: Написать стрелочную функцию для вычисления факториала числа. Функция должна быть рекурсивной.
✍ Решение:
- Назовем функцию factorial.
- Определим рекурсивные правила:
n = factorial(n-1), при n > 0
n = 1, при n = 1
Теперь данные правила опишем в самой рекурсивной функции в скрипте. Для написания функции будем использовать тернарный оператор:
let factorial = n => (n > 0) ? n * factorial(n-1) : 1; |
let factorial = n => (n > 0) ? n * factorial(n-1) : 1;
Выведем значение, например, для 4!:
Протестируйте функцию на других значениях.
Пример: Написать стрелочную функцию для вычисления первых n чисел ряда Фибоначчи. Функция должна быть рекурсивной.
✍ Решение:
- Назовем функцию fib.
- Определим рекурсивные правила:
fib = fib(n-1) + fib(n-2), при n > 2
fib = 1, при n <= 2
Теперь данные правила опишем в самой рекурсивной функции в скрипте. Для написания функции будем использовать тернарный оператор:
let fib = n => (n > 2) ? fib(n-1) + fib(n-2) : 1; |
let fib = n => (n > 2) ? fib(n-1) + fib(n-2) : 1;
Выведем значение, например, для первых 6 чисел ряда (результат: 5 + 3 = 8):
Протестируйте функцию на других значениях.
Задание js4_13:
Написать лямбда-выражение для вычисления квадрата числа.
Например:
alert(kvadr(5))
// результат должен быть 25
Задание js4_14:
Используя стрелочную функцию, создайте последовательность 1 3 9 27 81 243 729 2187 6561 19683
Вопросы для самоконтроля:
- Какие функции называются стрелочными функциями?
- Есть ли разница между стрелочными функциями и лямбда выражениями в javascript?
- Каков синтаксис стрелочных функций?
В вашем задание ответ неправильный. Ответ будет 6 и 6. Попробуйте сами запустить этот код function Plrectangle(width, height){
S = width * height;
return S
}
S=2;
z = Plrectangle(2, 3);
alert(z);
alert (S);
Пример: Значение z равно 6, а значение S осталось равным 2, то есть значению глобальной переменной, определенной во внешней программе
Да нет, всё верно
Всё же не верно. S — глобальная переменная, и в теле функции S изменяется. Результат 6 и 6. Чтобы было верно, надо в в функции поставить var S=…
Я тоже проверил через консоль, значения будут совпадать
Да, вы правы. Имелось в виду:
function Plrectangle(width, height){
S = width * height;
return S
}
z = Plrectangle(2, 3);
S=2;
alert(z);
alert (S);
В таком случае всё верно. Спасибо!