Функции escape и unescape позволяют кодировать и декодировать строки. Функция escape возвращает 16-ричное кодовое значение своего аргумента - символа их набора ISO Latin. Функция unescape возвращает ASCII-строку для специфицированного 16-ричного кодового значения.
Синтаксис этих функций таков:
escape(string)Эти функции используются в основном в серверном JavaScript для кодирования и декодирования пар имя/значение в URL.
Функции Number и String позволяют конвертировать объект в число или строку. Синтаксис таков:
Number(objRef)где objRef это ссылка на объект.
В следующем примере Date-объект конвертируется в читабельную строку.
D = new Date (430054663215)Две "parse"-функции, parseInt и parseFloat, возвращают числовое значение при получении строкового аргумента.
Синтаксис parseFloat таков:
parseFloat(str)где parseFloat разбирает свой аргумент, строку str, и пытается возвратить число с плавающей точкой. Если она обнаруживает символ, отличный от знака (+ или -), числа (0-9), десятичной точки или экспоненты, она возвращает значение, разобранное до этого места, и игнорирует этот символ и все последующие символы. Если первый символ не может быть конвертирован в число, функция возвращает значение "NaN" (не-число).
Синтаксис parseInt таков:
parseInt(str [, radix])parseInt разбирает первый аргумент, строку str, и пытается возвратить целое число со специфицированной radix (базой), обозначаемой вторым не обязательным аргументом radix. Например, radix 10 указывает на конвертацию десятеричного числа, 8 -восьмеричного, 16 - шестнадцатеричного, и так далее. При radix более 10 буквы латинского алфавита используются для обозначения цифр больше 9. Например, для 16-ричных чисел (база 16), используются английские буквы от A до F.
Если parseInt обнаруживает символ, не являющийся цифрой в специфицированном radix, она игнорирует этот и все последующие символы и возвращает целочисленное значение, разобранное до этого места. Если первый символ не может быть конвертирован в число со специфицированной базой, функция возвращает "NaN." Функция parseInt усекает строку до целочисленных значений.
Функция eval вычисляет строку кода JavaScript без ссылки на определённый объект. Синтаксис eval таков:
eval(expr)где expr это вычисляемая строка.
Если строка представляет выражение, eval вычисляет это выражение. Если аргумент представляет собой один или несколько операторов JavaScript, eval выполняет эти операторы. Не вызывайте eval для вычисления арифметических выражений; JavaScript вычисляет арифметические выражения автоматически.
Функция isFinite вычисляет аргумент, чтобы определить, является ли он конечным числом. Синтаксис isFinite:
isFinite(number)где number это вычисляемое число.
Если аргумент имеет значения NaN, положительная или отрицательная бесконечность, то этот метод возвращает false, иначе возвращает true.
Следующий код проверяет клиентский ввод и определяет, является ли он конечным числом.
if(isFinite(ClientInput) == true)Функция isNaN вычисляет аргумент, чтобы определить, является ли он "NaN" (не-числом). Синтаксис isNaN:
isNaN(testValue)где testValue это значение, которое Вы хотите обсчитать.
Функции parseFloat и parseInt возвращают "NaN", если они вычисляют значение, которое не является числом. isNaN возвращает true, если передано "NaN", и false - в ином случае.
Следующий код вычисляет floatValue и определяет, является ли оно числом, а затем вызывает соответствующую процедуру:
floatValue=parseFloat(toFloat) if (isNaN(floatValue)) {Функции это фундаментальные конструкции JavaScript. Функция это процедура JavaScript - набор операторов, выполняющих специфическую задачу. Для использования функции Вы обязаны сначала определить её; затем Ваш скрипт может её вызвать.
В главе имеются следующие разделы:
Определение функций Вызов функций Использование массива arguments Предопределённые функцииАргументы обрабатываются в массиве. В функции Вы можете адресовать параметры, передаваемые ей:
arguments[i]где i это порядковый номер аргумента, начиная с 0. Таким образом, первый аргумент, передаваемый функции, это arguments[0]. Общее число аргументов указывается свойством arguments.length.
Используя массив arguments, Вы можете вызвать функцию с большим количеством аргументов, чем объявлено в формальном определении. Это часто используется, если заранее не известно точное количество аргументов, передаваемых функции. Вы можете использовать arguments.length для определения количества аргументов, реально передаваемых функции, а затем работать с каждым аргументом с использованием массива arguments.
Например, рассмотрим функцию, которая объединяет несколько строк. Единственным формальным аргументом для этой функции является строка, которая специфицирует символы, разделяющие объединяемые элементы. Функция определена так:
function myConcat(separator) {Вы можете передать этой функции любое количество аргументов, и она создаст список, используя каждый аргумент как элемент списка.
// возвращает "red, orange, blue, "См. статью об объекте Function в книге Клиентский JavaScript. Справочник.
Определение функции состоит из ключевого слова function и:
имени функции списка аргументов, заключённых в скобки и разделённых запятыми операторов JavaScript, определяющих функцию, заключённых в фигурные скобки { }. Операторы функции могут содержать вызовы других функций, определённых в текущем приложении.Вы должны определять все Ваши функции в HEAD/шапке страницы, чтобы при её загрузке пользователем функции загружались в первую очередь. Иначе пользователь может выполнить действие, когда страница ещё загружается, и включить обработчик и вызвать функцию, которая ещё не определена, что приведёт к возникновению ошибки.
Например, следующий код определяет простую функцию square:
function square(number) {Функция square принимает один аргумент number. Эта функция состоит из одного оператора, указывающего возвращаемое значение - аргумент функции, умноженный сам на себя. Оператор return специфицирует значение, возвращаемое функцией.
return number * numberВсе параметры передаются функциям по значению; значение передаётся функции, но если функция изменяет значение параметра, это изменение не отражается глобально или в вызывающей функции. Однако, если Вы передаёте функции объект в качестве параметра и функция изменяет свойства объекта, это изменение видно́ вне функции, как показано в примере:
function myFunc(theObject) {Помимо описанного здесь определения функции, Вы можете также определять объекты Function, как показано в разделе "Объект Function".
Метод это функция, ассоциированная с объектом. Вы может узнать больше об объектах и методах в Главе 7 "Работа с Объектами".
В JavaScript есть несколько предопределённых функций:
eval isFinite isNaN parseInt и parseFloat Number и String escape и unescapeВ следующих разделах рассматриваются эти функции. См. также книгу Клиентский JavaScript. Справочник.
В приложениях для Navigator'а Вы можете использовать (или вызывать) любую функцию, определённую на текущей странице. Вы можете также использовать функции, определённые другими именованными окнами или фрэймами.
Определение функции не вызывает её выполнения. Определение функции просто именует функцию и специфицирует, что́ выполняется при вызове функции. Вызов функции реально выполняет специфицированные акции с указанными параметрами. Например, если Вы определили функцию square, Вы можете вызвать её так:
square(5)Это оператор вызова функции с аргументом 5. Функция выполняет свои операторы и возвращает значение 25.
Аргументы функции не ограничиваются только числами и строками. Вы можете также передавать в функцию объекты. Функция show_props (определённая в разделе "Объекты и Свойства") это пример функции, принимающей в качестве аргумента объект.
Функция может быть рекурсивной, то есть вызывать сама себя. Например, вот функция вычисления факториалов:
function factorial(n) {Вы можете вычислить факториалы значений от 1 до 5:
a=factorial(1) // возвращает 1