Array  break  case  catch  const  continue  default  Date  do Error  else  Function  false  finally  for

function  if  in  instanceof  Infinity  Math  NaN  Number  new  null  Object  Promise  prototype  RegExp

return  String  switch  this  then  throw  try  true  undefined  var  with  while
	
alert(s)
appendChild(tagName)
fillRect()
pow(base, n)
sin(radians)
cos(radians)
random()
isNaN()
test()
sqrt(n)
prompt(s)
parseInt(s) parseFloat(s)
floor(f) 
ceil(f)
charAt(n)
indexOf(substring, offset)
substring(start, end)
replace(pattern, replacement)
toLowerCase(s)
toUpperCase(s)
abs(n)
splice(start, length, newItem1, newItem2, ...)
split(pattern, limit)
toString()
createElement(tagName)

getElementById(id)

getContext(contextType)

removeChild(domElement)

strokeText(text, x, y)

fillText(text, x, y)

measureText(text)

setItem(key, value)

join(delimeter)

round(floatNumber)
	

Функции

Я писал, что переменные в программировании - это всё. Я не отказываюсь от своих слов, но добавлю, что функции в программировании - это всё остальное!

Итак, что это такое и для чего это нужно? Чтобы ответить на вопрос что это, давайте спросим, а что такое компьютерная программа? Можно понимать программу как записанную последовательность команд, которая будет выполнена компьютером в той же последовательности, в какой она записана. В реальных программах таких команд может быть очень много. Как правило, для описания какого-то действия требуется более одной. Программист может группировать такие команды в группы, может давать этим группам имя (в JavaScript может и не давать!) и работать дальше с этими группами команд, используя заданное имя. Так как команды обычно работают с какими-то данными, функция может принимать неограниченное число аргументов (собственно, данных).

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

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

Если вы пишете игру, вам может например понадобится функция проверки не пересеклись ли управляемые игроком персонажи с другими персонажами или стенами и т. д. Логично оформить это часто повторяющееся действие как функцию. Для описания (в программировании принято писать "для определения") функции на практике часто используется следующий код:

function myFunction(argument_1, argument_2) {//начало определения функции
	//код расположенный здесь (внутри определения или тела функции) можно использовать в программе снова и снова
}//конец определения функции

Например. вы программируете биллиард, у вас может быть функция с именем isIntersect ("пересекается ли?"). Она будет принимать два аргумента, описывающих шары, для которых надо проверить, столкнулись они или нет. (Напомню, что для выполнения примеров кода на этом сайте вы должны "заворачивать" их в одну "главную функцию" с любым в принципе именем. Я так и сделаю. Наводите мышь на все цветные слова в этом примере, это должно многое прояснить. Жирно-синее можно кликать)

function main() {//главная функция
	var quantityBallsOnCanvas;//Количество шаров на сукне
	var aBalls = new Array();//Массив с данными о координатах шаров
	function isIntersect(ball_1, ball_2) {
		function sq(x) {
			return x*x;
		}
		//мне достаточно проверить, меньше ли расстояние между центрами сфер чем радиус сферы
		//вообще такие псевдонимы для аргументов как a и b- плохая практика, имена переменных должны быть понятны
		//но для математических и физических формул я считаю, вполне допустимо
		var a = ball_1, b = ball_2,
			d = Math.sqrt( sq(a.x - b.x) + sq(a.y - b.y) + sq(a.z - b.z) );
		if (d < 2*a.r) {//если расстояние между центрами шаров меньше чем диаметр шара
			return true; //значит пересеклись
		} else {
			return false; //значит не пересеклись
		}
	}
	for(var i = 1; i < quantityBallsOnCanvas; i++) { //проверяем все шары попарно
		if ( isIntersect(aBalls[i], aBalls[i - 1]) ) {//если пересеклись
			//тут обрабатываем столкновение
		}
	}
}

Прочтите все подсказки к подсвеченным словам. Когда у вас не останется вопросов, что значит каждое из них, перечитайте этот пример кода. Думаю, вам должно быть все понятно. Единственные вопросы которые могут возникнуть, должны касаться a.x - b.x и т д. Прочтите подсказку к ключевому слову

Object

чтобы снять вопросы.

Может быть правда еще один вопрос, почему если запустить этот пример кода в редакторе внизу, ошибок не выдается, но и видимого результата нет никакого? Потому, что этот код просто демонстрирует определение и использование функций, он не выполняет работу реально. Единственное, что там должно реально работать, это функция isIntersect. Но так как размер массива aBalls равен нулю (мы ведь ничего не помещаем в него!), программе просто нечего обрабатывать!

Если остались вопросы, по поводу функций читайте здесь javascript.ru

Также прочтите подсказки к ключевым словам

function

Function

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

Тест на новые слова

  • Несохраненный_файл.js
Строка: 0, Символ: 0

  • {name}
  • У вас пока нет файлов
 

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

 

Правильно!

Не забывайте переодически проходить этот тест по мере чтения новых статей.

 

Ошибка!

 

Осталось: 0 сек.

Health:

Score:

 

Что значит:

 

 

 


Информация

Загрузите файл с исходным кодом программы на языке яваскрипт.

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

Например, файл называется task1.js, имя главной функции должно быть task1.

Все остальные функции должны быть определены внутри главной.

*

Информация

Сохраняемый код должен содержать одну главную функцию.

Например:

function myFirstProgram() {
	//Тут все остальное, включая вспомогательные функции
}
					




Простой пароль
Пароли не совпадают