Выбор имени функции


Функция – это действие, поэтому имя функции обычно является глаголом. Оно должно быть простым и точно описывать действие функции.

Как правило в названии функции используются глагольные префиксы, обозначающие общий характер действия.

show – что – то показывает;

get – возвращает значение;

calc – вычисляет;

create – создает;

check – проверяет и возвращает логическое значение.

Благодаря префиксам становится относительно понятным роль функции в данном блоке.

Функция должна выполнять только одно действие, которое явно подразумевается ее названием. Два независимых действия разделяются на две функции с определенными названиями.

Функциональные выражения

Существует другой синтаксис создания функций, называется функциональным выражением. Выглядит следующим образом:

let hello = function(){

alert('Привет!');

}

alert(hello);

 

В коде функция создается и явно присваивается переменной, как любое другое значение. Если мы просмотрим выполнение кода в браузере, то увидим код самой функции:

Попробуем переписать код по другому:

function hello(){ // 1 - создаем

alert('Привет!');

}

let func = hello; // 2 - копируем

 

func(); // 3 - вызываем копию

hello() // 4 - вызываем функцию

 

В данном случае код сработает, и мы увидим результат, который и планировали увидеть.

Стрелочные функции

Стрелочные функции (arrow function) представляют сокращенную версию обычных функций. Стрелочные функции образуются с помощью знака стрелки (=>), перед которым в скобках идут параметры функции, а после – тело функции. Например:

let sum = (x, y) => x + y;

let a = sum(4, 5); // 9

let b = sum(10, 5); // 15

 

В данном случае функция (x, y) => x + y осуществляет сложение двух чисел и присваивается переменной sum. Функция принимает два параметра – x и y. Ее тело составляет сложение значений этих параметров. Поскольку после стрелки фактически идет конкретное значение, которое представляет сумму чисел, то функция возвращает это значение. Мы можем через переменную sum вызвать данную функцию и получить ее результат в переменные а и b.

Рассмотрим пример динамического создания функции:

let age = prompt('Сколько вам лет?', 18);

 

let welcome = (age < 18) ?

() => alert('Привет!') :

() => alert('Здравствуйте!');

welcome();

В примерах выше аргументы использовались слева от =>, а справа вычислялось выражение с их значениями. Иногда нужно что-то посложнее, например, выполнить несколько инструкций. Это возможно, нужно лишь заключить инструкции в фигурные скобки и использовать оператор return внутри них, как в обычной функции.

let sum = (a, b) => {

let result = a + b;

return result;

}

 

alert (sum(2, 5));

Тема 1.6 События

Сценарий может быть выполнен сразу же, после загрузки веб – страницы, но иногда нужно, чтобы он выполнился после каких-либо действий пользователя, например, нажатия на кнопку, т.е. в ответ на пользовательское событие. Для этого в тегах элементов страницы вводятся параметры обработки событий, задающие действия, которые выполняются при возникновении события, связанного с элементом. Например,

<div onClick=”addText();”> </div>

Здесь Click – событие (щелчок мыши), onClick – обработчик события, addText()- имя функции, которая срабатывает при возникновении события.

Событие – это сигнал от браузера о том, что что-то произошло.

Перечислим наиболее часто используемые события, которые поддерживаются JavaScript:

Событие Когда происходит Обработчик события
События мыши
click Щелчок левой кнопкой мыши по элементу (на устройствах с сенсорными экранами оно происходит при касании) onclick
contextmenu Щелчок правой кнопкой мыши по элементу onContextmenu
mouseover/ mouseout Указатель мыши помещается над элементом/ покидает его onMouseOver/ onMouseOut
mousedown/ mouseup Нажали / отпустили кнопку мыши на элементе onMouseDown/ onMouseUp
mousemove При движении мыши onMouseMove
События на элементах управления
submit Нажатие кнопки Отправить в форме onSubmit
focus Окно или элемент формы получает фокус onFocus
Клавиатурные события
keydown/ keyup Нажатие/ отпускание клавиши клавиатуры onKeyDown/ onKeyUp
Дополнительные события
blur Потеря объектом фокуса onBlur
DOMContentLoaded HTML документ загружен и обработан, DOM полностью построен и доступен onDOMContentLoaded
transitionend CSS – анимация завершена onTransitionEnd
dblclick Двойной щелчок мышью по объекту onDblClick
dragdrop Перетаскивание мышью объект onDragDrop
keypress Удержание нажатой клавиши клавиатуры onKeyPress
keyup Отпускание клавиши клавиатуры onKeyUp
load Документ загружается в браузер onLoad
reset Нажатие кнопки сброса в форме onReset
resize Изменение размера окна или элемента onResize
select Выбор элемента формы onSelect
unload Закрытие документа onUnload

 

Обычно, действия, выполняющиеся при обработке события, оформляются в виде функций.

<html>

<head>

<script>

function myFc() {

alert("Вы щелкнули по тексту");

}

</script>

<body>

<div onClick="myFc();">Щелкни меня</div>

</body>

</html>

Другой пример:

 

<input id="elem" type="button" value="Нажми меня!">

<script>

elem.onclick = function() {

alert('Спасибо');

};

</script>

Можно доступ к элементу осуществить через this:

 

<button onclick="alert(this.innerHTML)">Нажми меня</button>

 

Работа с формой

Напишем сценарий, который будет рассчитывать площадь прямоугольника по введенным пользователем длине и ширине. Для этого на html – странице разместим нужные элементы формы:

<html>

<head>

<title>Введение в JavaScript</title>

<script src= "script.js"></script>

</head>

<body>

<form name="form1">

Длина: <input type="text" name="t1" size="5"> <br><br>

Ширина: <input type="text" name="t2" size="5"> <br><br>

<input type="button" name="button" value="Вычислить"><br><br>

Площадь прямоугольника: <input type="text" name="res" size="5">

</form>

</body>

</html>

В браузере наша страница будет выглядеть так:

 

Пользователь вводит значения ширины и длины и нажимает кнопку «Вычислить». После чего, в поле площадь должен появиться результат. Таким образом, событие наступает при нажатии кнопки, значит именно к ней мы привяжем обработчик события. Функцию вычисления площади назовем plPr():

<input type="button" name="button" value="Вычислить" onClick="plPr()">

Теперь напишем саму функцию "plPr()", для этого откроем страницу script.js и напишем тело функции:

function plPr() {

let a=document.form1.t1.value;

let b=document.form1.t2.value;

let s=a*b;

document.form1.res.value=s;

}

Параметры функции

Если рассматривать предыдущий пример, где вычислялась площадь прямоугольника по введенным пользователем данным, то там мы написали всего одну функцию, которая производила вычисления. Но если у нас будет несколько веб – страниц, на которых нам надо вычислить площадь прямоугольника, то нам придется для каждой страницы писать свою функцию.

Разумнее написать один раз функцию и в дальнейшем использовать ее на всех страницах. Для этого HTML – страница должна каким – то образом указать функции, какие именно значения (с какой страницы) брать для вычисления. Здесь нам понадобятся параметры, которые указываются в круглых скобках.

В функции мы используем имя формы - form1, его мы и сделаем параметром. Перепишем функцию следующим образом:

function plPr (obj) {

let a=obj.t1.value;

let b=obj.t2.value;

let s=a*b;

obj.res.value=s;

}

Мы указали, что функция должна принять в качестве параметра какой – то объект (obj) и производить все действия с ним. Нам осталось указать на нашей html – странице имя объекта:

<input type="button" name="button" value="вычислить" onClick="plPr (form1)">

Теперь, когда нам понадобиться вычислить площадь на какой-либо другой странице, нам достаточно будет вызвать функцию plPr (), а в скобках указать имя формы.

В качестве параметров функции можно передавать любые значения, причем их может быть несколько. Рассмотрим следующую задачу: у нас три квадрата, при щелчке по каждому должно появляться окно с сообщением, где указывается цвет квадрата, по которому щелкнули.

Начала напишем на странице script2.js код функции, которая будет открывать окно сообщений, назовем eе «soob». Вызов окна сообщений осуществляется с помощью метода alert(), а текст сообщения будем передавать в качестве параметра, обозначим его «m»:

function soob (m) {

alert(m);

}

 

На html – странице напишем код самих квадратиков:

<html>

<head>

<script src="script2.js"></script>

<link rel="stylesheet" type="text/css" href="style.css">

</head>

<body>

<table><tr>

<td><div id="red" onClick="soob('Вы щелкнули по красному квадрату')"></div></td>

<td><div id="green" onClick="soob('Вы щелкнули по зеленому квадрату')"></div></td>

<td><div id="blue" onClick="soob('Вы щелкнули по синему квадрату')"></div></td>

</tr></table>

</body>

</html>

 

Здесь мы указали, что при щелчке по квадратикам, должна срабатывать функция «soob», а в качестве параметров указали текст нужных сообщений.

Оформим наши квадраты через таблицу стиля – style.css

#red, #green, #blue {

width:20px;

height:20px;

margin:5px;

}

#red {

background:red;

}

#green {

background:green;

}

#blue {

background:blue;

}

 

 

Рассмотрим еще один пример. Пусть у нас будет список ягод, а при наведении мышкой на название ягоды, ее описание появится в текстовом поле.

 

Нам потребуется два параметра: один с именем объекта (формы), второй с описанием ягод. Параметры в таком случае записываются через запятую. Наша функция будет выглядеть так:

function ИмяФункции(obj, n) {

obj.desc.value=n;

}

где desc – имя текстового поля для ввода описания. Эта функция будет срабатывать, когда на название ягоды наведен курсор.

Теперь напишем код html – страницы. Обработчик события, когда указатель мыши помещается над элементом, называется onMouseOver.

<html>

<head>

<title>Введение в JavaScript</title>

<script src= "script.js"></script>

</head>

<body>

<form name="ИмяФормы">

<textarea name="desc" cols= rows= ></textarea>

</form>

<ul>

<li onMouseOver="ИмяФункции(ИмяФормы, 'Малина обыкновенная - кустарник с многолетним корневищем');">Малина</li>

</ul>

</body>

</html>




Дата добавления: 2021-01-26; просмотров: 329;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.027 сек.