JSCRIPT MANUAL

Microsoft® JScript™
Функции в JScript
 Описание JScript
Пред.
След.


Что такое функция?
Функции в Microsoft JScript выполняют определенные действия. Они могут возвращать некоторый результат, например результат вычислений или сравнения

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

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

В JScript имеется два вида функций: встроенные и определяемые.

Специальные встроенные функции
Язык JScript включает несколько встроенных функций. Некоторые из них позволяют обрабатывать выражения и специальные символы, и преобразовывать строки в числовые значения.

Например, escape() и unescape() используются для перевода кода HTML и спецсимволов, то есть символов, которые нельзя непосредственно размещать в тексте. К примеру, символы "<" и ">", применяются для обозначения HTML-тэгов.

Функция escape принимает в параметре спецсимволы, а возвращает ESC-код символа. Каждый код ESC-код начинается со знака процента (%) и последующим двухзначным числом. Функция unescape является инверсионной. В качестве параметра вводится ESC-код, а возвращает символ.

Еще одна встроенная функция - eval(), которая выполняет любое правильное математическое выражение, представленное в виде строки. Функция eval() имеет один аргумент - выражение для выполнения.

var anExpression = "6 * 9 % 7";
var total = eval(anExpression);        // Вычисляет выражение, равно 5.
var yetAnotherExpression = "6 * (9 % 7)";
total = eval(yetAnotherExpression)        // Вычисляет выражение, равно 12.

var totality = eval("Текст.");        // Возвращает ошибку.
В справочнике языка JScript имеется описание других встроенных функций.
Создание собственных функций
Вы можете создавать собственные функции и вызывать их, когда потребуется. Определение функции состоит из объявления параметров и блока инструкций JScript .

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

При проверке значений при входных значениях чисел с плавающей точкой используется "машинное эпсилон" ("epsilon") - очень маленькое число. Из-за погрешности округления в вычислениях с плавающей точкой, без применения этого числа, функция может возвращать неверный результат. "Машинное эпсилон" является максимальной допустимой погрешностью.

var epsilon = 0.0000000000001;  // "Машинное эпсилон".
var triplet = false;

function integerCheck(a, b, c)  {  // Функция проверки при целых числах.
    if ( (a*a) == ((b*b) + (c*c)) )  {  // Код проверки.
    triplet = true;
    }
}  // Конец функции проверки при целых числах.

function floatCheck(a, b, c)  {  // Функция проверки при числах с плавающей точкой.
var theCheck = ((a*a) - ((b*b) + (c*c)))  // Контрольное число.
    if (theCheck < 0)  {  // Вычисление модуля контрольного числа.
    theCheck *= -1;
    }
    if (epsilon > theCheck)  {  // Сравнение отклонения с допустимой погрешностью!
    triplet = true;
    }
}  // Конец функции проверки при числах с плавающей точкой.

function checkTriplet(a, b, c)  {  // Проверка триплета. Первым делом, присвоим "a" наибольшее значение из трех входных чисел.
var d = 0;  // Временная переменная.
    if (c > b)  {  // При c > b, меняем местами.
    d = c;
    c = b;
    b = d;
    }  // Иначе - не меняем.
    if (b > a)  {  // При b > a, меняем местами.
    d = b;
    b = a;
    a = d;
    }  // Иначе - не меняем.

// Сторона "a" является гипотенузой.

    if (((a%1) == 0) && ((b%1) == 0) && ((c%1) == 0))  {  // Проверка чисел - целые ли они?
    integerCheck(a, b, c);  // Функция для целых чисел.
    }
    else
        floatCheck(a, b, c);  // Иначе вызываем функцию для чисел с плавающей точкой
}  // Окончание проверки правила Пифагора (триплета).

// Практическая проверка - объявляем три переменные.
var sideA = 5;
var sideB = 5;
var sideC = Math.sqrt(50);

checkTriplet(sideA, sideB, sideC);  // Функция проверки на триплет.


Перевод © 2000-2013 pauk R-T-F-M.info. Все права защищены.