JavaScript для продвинутых методическое пособие Минск 2016


Date Функции для работы с датой и временем



страница3/5
Дата09.11.2016
Размер4.67 Mb.
Просмотров1307
Скачиваний0
1   2   3   4   5

Date Функции для работы с датой и временем

Error объект для представления ошибок

EvalError Ошибка при выполнении функции eval

Function Каждая функция в яваскрипт является объектом класса Function.

Math Встроенный объект, предоставляющий константы и методы для математических вычислений.

Number Объект для работы с числами

Object Базовый объект javascript

RangeError Ошибка, когда число не лежит в нужном диапазоне

ReferenceError Ошибку при ссылке на несуществующую переменную

RegExp Позволяет работать с регулярными выражениями.

String Базовый объект для строк. Позволяет управлять текстовыми строками, форматировать их и выполнять поиск подстрок.

SyntaxError Ошибка при интерпретации синтаксически неверного кода

TypeError Ошибка в типе значения

URIError Ошибка при некорректном URI

Объекты браузера

window Два в одном: глобальный объект и окно браузера

1.11. Глобальные методы

alert Выводит модальное окно с сообщением

clearInterval Останавливает выполнение кода, заданное setInterval

clearTimeout Отменяет выполнение кода, заданное setTimeout

confirm Выводит сообщение в окне с двумя кнопками: "ОК" и "ОТМЕНА" и возвращает выбор посетителя

decodeURI Раскодирует URI, закодированный при помощи encodeURI

decodeURIComponent Раскодирует URI, закодированный при помощи encodeURIComponent

encodeURI Кодирует URI, заменяя каждое вхождение определенных символов на escape-последовательности, представляющие символ в кодировке UTF-8.

encodeURIComponent Кодирует компоненту URI, заменяя определенные символы на соответствующие UTF-8 escape-последовательности

eval Выполняет строку javascript-кода без привязки к конкретному объекту.

isFinite возвращает, является ли аргумент конечным числом

isNaN Проверяет, является ли аргумент NaN

parseFloat преобразует строковой аргумент в число с плавающей точкой

parseInt преобразует строковой аргумент в целое число нужной системы счисления

prompt Выводит окно с указанным текстом и полем для пользовательского ввода.

setInterval Выполняет код или функцию через указанный интервал времени

setTimeout Выполняет код или функцию после указанной задержки

1.12. Синтаксические конструкции

break Завершает текущий цикл или конструкции switch и label и передает управление на следующий вызов

continue Прекращает текущую итерацию цикла и продолжает выполнение со следующей итерации

do..while Задает цикл с проверкой условия после каждой итерации

for Создать цикл, указав начальное состояние, условие и операцию обновления состояния

for..in Перебрать свойства объекта, для каждого свойства выполнить заданный код

function Объявить функцию

if Выполняет тот или иной блок кода в зависимости от того, верно ли условие

label Указать идентификатор для использования в break и continue

return Возвратить результат работы функции

switch Сравнивает значение выражения по различными вариантами и при совпадении выполняет соответствующий код

throw Инициировать("бросить") исключение

try..catch Ловить все исключения, выпадающие из блока кода

var Объявить переменную (или несколько) в текущей области видимости

while Задает цикл, который выполняется до тех пор, пока условие верно. Условие проверяется перед каждой итерацией.

with Добавить новую область видимости

Блок Группировка javascript-вызовов внутри фигурных скобок

2. Функции


2.1 Определение функции

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



Определение javaScript-функций. Листинг 2.1

function print(msg)

{

document.write(msg, "


");

}


Функция может быть присвоена переменной, вызываться через эту переменную, и при этом работать как функция.

Функция как переменная. Листинг 2.2

function print(x)

{

return x*x



}

var s = print();

s(4);


Имеется возможность определять вложенные функции.

Вложенные функции. Листинг 2.3

function hypotenuse(a, b) {

function square(x) { return x*x; }

return Math.sqrt(square(a) + square(b));

}

hypotenuse()() // так можно вызывать вложенную функцию



В javaScript существует 4 способа вызова функций.

  • Как функции

  • Как методы

  • Как конструкторы

  • С помощью методов call и apply

2.2 Вызов функци как функции

Вызов функции как функции. Листинг 2.4

myfunc();

myfunc(x);

myfunc(x,y,z);

myfunc({x:1});



Простейшей моделью ялвяется вызов функции:

Вызов функции. Листинг 2.5

function myfunc(username){

return ‘Привет ’ + username

}

myfunc(‘Вася’); // Привет Вася



При вызове функции возвращаемое значение становится значением выражения вызова. Если функция имеет ключевое слово return, то возвращается значение выражения, следующее за инструкцией return. Если функция не имеет выражения return, то возвращается undefined.

2.3 Вызов функции как метода

Метод – это функция, которая хранится в виде свойства объекта.

Возвращаемые значения обрабатываются точно также, как и при вызове обычной функции. Однако есть одно важное отличие. Любая функция, используемая как метод, фактически получает неявный аргумент – объект, относительно которого она была вызвана. Тело функции получает возможность ссылаться на объект с помощью ключевого слова this.


Вызов функции как метода. Листинг 2.6

var calculator = {

operand1:1;

operand2:1;

add: function(){



this.result = this.operand1+this.operand2;

}

}



calculator.add();

calculator.result; // вернет 2



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

Вызов метода. Листинг 2.7

var obj = {

hello: function(){

return “Привет ” + this.username

},

username: “Миша”



};

obj.hello(); // Привет Миша



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

Продолжение предыдущего листинга. Создание другого объекта, использущего функцию hello объекта obj. Листинг 2.8

var obj = {

hello: obj.username,

username: “Маша”

};

obj.hello(); // Привет Маша



На самом деле в вызове метода вариант связывания this (получатель вызова), определяет само выражение вызова. Выражение obj.hello() ищет свойство hello объекта obj. А выражение obj2.hello ищет свойство hello объекта obj2.

Поскольку методы являются не чем иным, как функциями вызванными для конкретного объекта, сослаться на this может и обычная функция:



Ссылка обычной функции на this. Листинг 2.9

function hello(){

return “Привет ” + this.username

}


Это может пригодится на предопределения функции для ее совместного использования несколькими объектами. Однако этот трюк в JavaScript редко и малоприменим.

2.4 Вызов функции как конструктора

Третьей разновидностью функции является конструктор.

Если вызову функции предшевствует ключевое слово new, то это вызов конструктора. При вызове функции как конструктора, пару круглых скопок можно опустить:


Функция как конструктор. Листинг 2.10

var o = new Function();

var o = new Function;



Также, как методы и простые функции, конструкторы определяются с помощью ключевого слова function:

Определение конструктора. Листинг 2.11

function User(name, password){

this.name = name;

this.password = password

}


Вызов User с помощью оператора new создает из функции User конструктор.

Вызов функции User, как конструктора. Листинг 2.12

var u = new User(‘Вася’, ‘123’);

u.name // Вася



Основная роль функции-конструктора заключается в иницилизации объекта.

2.5 Функции высшего порядка

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

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

Например, рассмотрим функцию простого преобразования строкового массива с использованием метода map.



Использование функций высшего порядка для прохода. Листинг 2.13

var names = [‘яблоко’, ‘груша’, ‘слива’];

var upper = names.map(function(name){

return name.toUpperCase();

});


upper // [‘ЯБЛОКО’, ‘ГРУША’, ‘СЛИВА’],

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

Рассмотрим еще один пример возможного использования функций высшего порядка:



Вычисление стандартного отклонения. Листинг 2.14

var sum = function(x,y){return x+y};

var data = [1,1,3,4,8,8];

var deviations = data.reduce(sum)/data.length;


Каталог: media
media -> Литература Ссылка для цитирования
media -> Буланов С. В. Кудрявцева Е. Л. Развитие креативности билингвов: путь от интеркультурности к формированию «человека мира»
media -> Условия и процесс формирования международной конкурентоспособности национальной экономики
media -> Имени М. В. Ломоносова Биологический факультет
media -> Интернет! Актуальность
media -> Образовательная программа «Гражданское население в противодействии распространению идеологии терроризма»
media -> Планета «периодика» Мурзилка
media -> Система рейтинга сайтов


Поделитесь с Вашими друзьями:
1   2   3   4   5


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал