HTML5: основы клиентской разработки

JavaScript. Работа с функциями и массивами

Показывать лекцию целиком

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

Работа с циклами

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

Циклы – это выражения, позволяющие повторить определенный участок кода несколько раз.

Традиционно, различают три вида циклов:

  • цикл - счетчик;
  • цикл с предусловием;
  • цикл с постусловием.
  • Цикл - счетчик используется в тех случаях, когда точно можно определить какое количество раз необходимо выполнить заданный участок кода. Оформляется данный цикл следующим образом:

    for (переменная итерации = начальное значение; условие; шаг цикла)
    {
      блок операторов или тело цикла
    }
    

    К примеру, цикл оформленный следующим образом выполнится 10 раз:

    for ( i =0; i<10; i++)
    {......}
    

    Переменной итерации (i) было присвоено начальное значение 0. Если условие: i < 10 является истиной, то выполняется одна итерация цикла. После выполнения каждой итерации происходит i++ (то есть увеличение переменной i на 1). Снова проверяется условие, и если оно истинно, то выполняется ещё одна итерация. И так до тех пор, пока условие i < 10 не станет ложным.

    Цикл с предусловием выполняется до тех пор пока верно условие. Оформляется цикл следующим образом:

    while(условие)
    {
      тело цикла
    }
    

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

    Следующие пример описывает цикл while, выполняющийся 10 раз:

    var i =0;
    while (i<10)
    {
    ....
    i++;
    ....
    }
    

    Цикл с постусловием похож на цикл while, однако, здесь есть всего одно, но очень принципиальное отличие. Если цикл while сначала проверяет условие, а потом уже выполняет или нет итерацию. То цикл do-while сначала именно выполняет итерацию, и только потом проверяет условие. И если оно ложно, то выходит из цикла. Другими словами, независимо от условия данный цикл гарантированно выполнится хотя бы 1 раз. Пример оформления данного цикла:

    do
    {
      тело цикла
    }
    while (условие)
    

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

    Работа с функциями

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

    Телом функции называется код, размещенный в ее пределах.

    Функция объявляется в коде следующим образом:

    Function имя функции (список параметров)
    {
      Тело функции
    }
    

    Имя функции должно быть уникальным в пределах веб - страницы. Список параметров – это перечень переменных, или входных данных для функции.

    В случае, если функция возвращает какое - либо значение, используется оператор return.

    Например, следующая функция вернет значение указанного, в качестве параметра, факториала:

    function fctrl (a)
    {
    result = 1;
    for(i=2; i<=a; i++)
       {
         result = result * i;
       }
    return result;
    }
    

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

    s = fctrl (5);
    

    Или, если функция не возвращает никаких значений:

    Somefunction(a,b,c);
    

    Также javascript позволяет использовать функциональный тип данных. Иными словами можно присвоить переменной функцию, именно саму функцию, а не возвращаемое ею значение:

    var a = fctrl;
    c = a(5);
    

    Работа с массивами

    Массив (также индексный массив, иногда таблица, ряд) — именованный (упорядоченный) набор однотипных переменных (данных), расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу. В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа.

    Индекс массива — это число целое, указывающее на конкретный элемент массива.

    Количество используемых индексов массива может быть различным. Массивы с одним индексом называют одномерными, с двумя — двумерными и т. д.

    Одномерный массив нестрого соответствует вектору в математике, двумерный — матрице. Чаще всего применяются массивы с одним или двумя индексами, реже — с тремя, ещё большее количество индексов встречается крайне редко.

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

    В JavaScript массив задается следующим образом:

    var sampleArray = [3,8,3,1,0,5,2,7];
    

    Нами создан массив из восьми элементов. Нумерация элементов массива начинается с нуля. Таким образом, если самих элементов массива восемь, то максимальный индекс элемента массива равен семи.

    К любому элементу массива можно обратиться по его индексу:

    f = sampleArray[4];
    

    В приведенном примере переменной f будет присвоено значение пятого элемента массива, т.е. 0.

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

    var sampleArray;
    sampleArray["one"] = "some text";
    sampleArray["two"] = "some text_2";
    sampleArray["three"] = "some text_3";
    

    Массивы хранят данные по числовым ключам, упорядоченным в порядке возрастания и начинающимися от нуля.

    Хэши хранят данные по произвольным строково-числовым ключам, упорядоченным соответственно времени добавления их в хэш. Используется хэши, как правило, для создания разветвлённых структур данных, позволяя выбирать только одно из множества значений, сохранённых в нем, по заранее определённому ключу.

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

    Ключевые термины и определения

    Цикл – конструкция языка программирования, предназначенная для организации многократного исполнения ряда команд.

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

    Массив – именованный набор переменных, расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу.

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

    Краткие итоги

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

    Следующая лекция будет посвящена основам работы с объектами в JavaScript.

    Список материалов для самостоятельного обучения

  • http://www.nsc.ru/win/docs/JS/st_ov.html#10_2
  • http://www.site-do.ru/js/js10.php
  • http://javascript.ru/function-syntax
  • http://yehudakatz.com/2011/08/11/understanding-javascript-function-invocation-and-this/
  • http://javascript.ru/Array
  • http://on-line-teaching.com/js/js.arrays.htm
  • Вернуться к учебному плану