Ядро JavaScript 1.5. Справочник

         

Abs


Возвращает абсолютное значение числа.

Метод из Static

Реализован в JavaScript 1.0, NES 2.0

Версия ECMAECMA-262

Синтаксис
abs(x)


Параметр

x

Число.


Пример

 

Эта функция возвращает абсолютное значение переменной x:

function getAbs(x) {
   return Math.abs(x)
}

Описание

Поскольку abs это static-метод из Math, Вы всегда используете его так: Math.abs(), а не как метод Math-объекта, созданного Вами.



Acos


Возвращает арккосинус числа (в радианах).

Метод из
Static
Реализован вJavaScript 1.0, NES 2.0
Версия ECMAECMA-262


Синтаксис



acos(x)

Параметр

x

Число.


Описание

Метод acos возвращает числовое значение от 0 до pi радиан. Если значение number

находится вне этого диапазона, возвращается NaN Not a Number/"не число").

Поскольку acos это static-метод из Math, Вы всегда используете его так: Math.acos(), а не как метод Math-объекта, созданного Вами.


Примеры

Эта функция возвращает арккосинус переменной x:

function getAcos(x) {
   return Math.acos(x)
}

Если Вы передаёте -1 в getAcos, он возвращает 3.141592653589793; если передаёте 2, возвращает NaN, поскольку 2 - вне диапазона.


См. также

, , , , , .



Anchor


Создаёт HTML-якорь, используемый как цель для гиперссылки.

Метод из Реализован в

JavaScript 1.0, NES 2.0

Синтаксис

anchor(nameAttribute)

Параметры

nameAttribute

Строка.

Описание

Используйте метод anchor с методами document.write или document.writeln

для программного создания и отображения якоря в документе. Создаёт якорь методом anchor, а затем вызывает write или writeln для отображения якоря в документе. В серверном JavaScript используйте функцию write для отображения якоря.

В этом синтаксисе текстовая строка представляет литеральный текст, который должен видеть конечный пользователь. Строка nameAttribute представляет атрибут NAME тэга A.

Якоря, созданные методом anchor, становятся элементами массива document.anchors.

Примеры

В этом примере открывается окно msgWindow и создаётся якорь для для оглавления:

var myString="Table of Contents"

msgWindow.document.writeln(myString.anchor("contents_anchor"))

Это пример создаёт такой же вывод, как и следующий HTML:

<A NAME="contents_anchor">Table of Contents</A>

См. также

.



Apply


Эта возможность отсутствует спецификации ECMA, соответствующей JavaScript 1.3, но ожидается в следующей её версии.

Позволяет применять метод одного объекта в контексте другого объекта (вызывающего объекта).

Метод из Реализован в

JavaScript 1.3


Синтаксис

apply(thisArg[, argArray])

Параметры

thisArg

Параметр для вызывающего объекта.argArray

Массив аргументов для объекта.

Описание

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

ссылается на текущий объект, вызывающий объект. С помощью apply

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

apply очень похож на call, за исключением поддерживаемых типов аргументов. Вы можете использовать массив аргументов вместо именованного набора параметров. С помощью apply Вы можете использовать литерал массива, например, apply(this, [name, value]), или объект Array, например, apply(this, new Array(name, value)).

Вы можете также использовать для параметра argArray. arguments

это локальная переменная функции. Она может быть использована для всех неспецифицированных аргументов вызываемой функции. Таким образом, Вы не должны знать аргументы вызываемого объекта, когда применяете метод apply. Вы можете использовать arguments

для передачи всех аргументов вызываемому объекту. Вызванный объект после этого отвечает за обработку этих аргументов.


Примеры

Вы можете использовать apply для создания цепочки конструкторов для объекта, как в Java. В этом примере конструктор объекта product определяется с двумя параметрами, name и value. Другой объект, prod_dept, инициализирует свою уникальную переменную (dept) и вызывает конструктор для product

в своём конструкторе для инициализации других переменных. В данном примере параметр arguments

используется для всех аргументов конструктора объекта product.

Function product(name, value){

   this.name = name;

   if(value > 1000)

      this.value = 999;

   else

      this.value = value;

}

Function prod_dept(name, value, dept){

   this.dept = dept;

   product.apply(product, arguments);

}

prod_dept.prototype = new product();

// поскольку 5 меньше 100, значение устанавливается

cheese = new prod_dept("feta", 5, "food");

// поскольку 5000 больше 1000, значением будет 999

car = new prod_dept("honda", 5000, "auto");

См. также



Arguments


Массив из аргументов, передаваемых функции.

Локальная переменная из

Все объекты функции.

Свойство из

(не рекомендуется).

Реализовано в

JavaScript 1.1, NES 2.0

JavaScript 1.2: добавлено свойство .

JavaScript 1.3: не рекомендуется свойство ; удалена поддержка имён аргументов и и мён локальных переменных как свойств массива arguments.

JavaScript 1.4: не рекомендуются arguments, и как свойства Function; arguments

остался как локальная переменная функции, и и - как свойства этой переменной.

Версия ECMA

ECMA-262

Описание

Массив arguments это локальная переменная, доступная внутри всех объектов функции; arguments

больше не используется в качестве свойства Function.

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

arguments[0]

arguments[1]

arguments[2]

Массив arguments доступен только внутри тела функции. Попытка получить доступ к массиву arguments

за пределами объявления функции приводит к ошибке.

Вы можете использовать массив arguments

при вызове функции с большим количеством аргументов, чем формально объявлено. Эта техника используется в функциях, которым может передаваться непостоянное количество аргументов. Можно использовать arguments.length для определения количества аргументов, переданных функции, а затем обработать каждый аргумент с помощью массива arguments. (Чтобы определить количество аргументов, объявленных при определении функции, используйте свойство .)

 

Массив arguments имеет следующие свойства:

 

Свойство

Описание

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

Специфицирует имя функции, которая вызвала выполняемую в данный момент функцию. (Не рекомендуется использовать).

Специфицирует количество аргументов, передаваемых функции.


Обратная Совместимость

JavaScript 1.3 и более ранние версии.

Помимо использования в качестве локальной переменной, массив arguments

является также свойством объекта Function и может иметь перед собой имя функции. Например, если функции myFunc

передаются три аргумента с именами arg1, arg2 и arg3, Вы можете обращаться к этим аргументам так:

myFunc.arguments[0]

myFunc.arguments[1]

myFunc.arguments[2]

 

JavaScript 1.1 и 1.2.

Следующие возможности из JavaScript 1.1 и JavaScript 1.2 были удалены:

Каждая локальная переменная функции является свойством массива arguments. Например, если функция myFunc

имеет локальную переменную с именем myLocalVar, Вы можете обратиться к этой переменной: arguments.myLocalVar.

Каждый формальный аргумент функции является свойством массива arguments. Например, если функция myFunc имеет два аргумента с именами arg1 и arg2, Вы можете обратиться к этим аргументам: arguments.arg1 и arguments.arg2. (Вы можете также обратиться к ним arguments[0] и arguments[1].)


Примеры

Пример 1.

Здесь определена функция, соединяющая несколько строк. Единственным формальным аргументом этой функции является строка, специфицирующая символы, разделяющие объединяемые элементы. Функция определяется так:

Function myConcat(separator) {

   result="" // инициализация списка

   // iterate through arguments

   for (var i=1; i<arguments.length; i++) {

      result += arguments[i] + separator

   }

   return result

}

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

// возвращает "red, orange, blue, "

myConcat(", ","red","orange","blue")

// возвращает "elephant; giraffe; lion; cheetah;"

myConcat("; ","elephant","giraffe","lion", "cheetah")

//

возвращает "sage. basil. oregano. pepper. parsley. "

myConcat(". ","sage","basil","oregano", "pepper", "parsley")

 

Пример 2.

Здесь определена функция, создающая HTML-списки. Единственным формальным аргументом этой функции является строка, которая будет "U", если список неупорядоченный (bulleted), или "O", если это упорядоченный/нумерованный список. Функция определяется так:

Function list(type) {

   document.write("<" + type + "L>") // начало списка

   // итерация по аргументам

   for (var i=1; i<arguments.length; i++) {

      document.write("<LI>" + arguments[i])

   }

   document.write("</" + type + "L>") // конец списка

}

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

list("U", "One", "Two", "Three")

даст на выходе:

<UL>

<LI>One

<LI>Two

<LI>Three

</UL>

В серверном JavaScript Вы можете отобразить тот же вывод путём вызова функции вместо document.write.



Arguments.callee


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

Свойство из

Локальная переменная ; (не рекомендуется).

Реализовано в

JavaScript 1.2

JavaScript 1.4: callee не рекомендуется в качестве свойства для Function.arguments, осталось как свойство локальной переменной arguments функции.

Версия ECMA

ECMA-262

Описание

arguments.callee

это свойство локальной переменной , доступной внутри всех объектов функции; arguments.callee больше не используется как свойство в Function.

Свойство callee доступно только внутри тела функции.

Ключевое слово this не ссылается на выполняемую в данный момент функцию. Используйте свойство callee

для обращения к функции внутри тела функции.

Примеры

Эта функция возвращает значение вызова свойства callee.

Function myFunc() {

   return arguments.callee

}

Возвращается следующее значение:

Function myFunc() { return arguments.callee; }

См. также

.

caller">



Arguments.caller


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

Свойство из Реализовано в

JavaScript 1.1, NES 2.0

Не рекомендуется в JavaScript 1.3

Описание

caller больше не используется.

Свойство caller доступно только внутри тела функции.

Если выполняемая в данный момент функция была вызвана с верхнего уровня программы JavaScript, caller имеет значение null.

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

Свойство caller это ссылка на вызывающую функцию, поэтому:

Если Вы используете его в контексте строки, Вы получите результат вызова FunctionName.toString. То есть - декомпилированную каноническую исходную форму функции.

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


Примеры

Проверяется значение свойства caller функции:

Function myFunc() {

   if (arguments.caller == null) {

      return ("Функция была вызвана с верхнего уровня!")

   } else return ("this Function's caller was " + arguments.caller)

}


См. также

.



Arguments.length


Специфицирует количество аргументов, передаваемых функции.

Свойство из

Локальная переменная ; (не рекомендуется).

Реализовано в

JavaScript 1.1

JavaScript 1.4: length не рекомендуется как свойство для Function.arguments, осталось как свойство локальной переменной arguments функции.

Версия ECMAECMA-262

Описание

arguments.length это свойство локальной переменной , доступной внутри всех объектов функции; arguments.length как свойство в Function больше не используется.

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

Пример

Использование >Function.length и arguments.length:

Function addNumbers(x,y){

   if (arguments.length == addNumbers.length) {

      return (x+y)

   }

   else return 0

}

Если Вы передаёте этой функции более двух аргументов, она возвращает 0:

result=addNumbers(3,4,5) //

возвращает 0

result=addNumbers(3,4)     //

возвращает 7

result=addNumbers(103,104) // возвращает 207

См. также

.

arity">



Арифметические Операции


Арифметические операции принимают числовые значения (литералы или переменные) в качестве операндов и возвращают одно числовое значение. Стандартными арифметическими операциями являются сложение (+), вычитание (-), умножение (*) и деление (/).

Реализованы вJavaScript 1.0
Версия ECMAECMA-262

Эти операции работают так же, как и в большинстве других языков программирования, за исключением того, что операция / возвращает в JavaScript частное с плавающей точкой, а не целочисленный результат деления, как в языках C и Java. Например:

1/2 //возвращает 0.5 в JavaScript

1/2 //возвращает 0 в Java



Arity


Специфицирует количество аргументов, ожидаемых функцией.

Свойство из

Реализовано вJavaScript 1.2, NES 3.0

Не рекомендуется JavaScript 1.4.

Описание

arity больше не используется и заменена на свойство .

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

Пример

Использование arity и .

Function addNumbers(x,y){

   if (arguments.length == addNumbers.length) {

      return (x+y)

   }

   else return 0

}

Если Вы передаёте этой функции более двух аргументов, она возвращает 0:

result=addNumbers(3,4,5) //

возвращает 0

result=addNumbers(3,4)     //

возвращает 7

result=addNumbers(103,104) //

возвращает 207

См. также

, .



Array


Позволяет работать с массивами.

Объект ядра

Реализован в

JavaScript 1.1, NES 2.0

JavaScript 1.3: добавлен метод ; изменено свойство ; изменён метод .

ECMA-версия

ECMA-262


Создание

Конструктор объекта Array:

new Array(arrayLength)

new Array(element0, element1, ..., elementN)

 

Литерал массива:

[element0, element1, ..., elementN]

 
JavaScript 1.2

Если Вы специфицируете LANGUAGE="JavaScript1.2" в тэге <SCRIPT> :

new Array(element0, element1, ..., elementN)

 
JavaScript 1.2

Если Вы не специфицируете LANGUAGE="JavaScript1.2" в тэге <SCRIPT> :

new Array([arrayLength])

new Array([element0[, element1[, ..., elementN]]])

 
JavaScript 1.1

new Array([arrayLength])

new Array([element0[, element1[, ..., elementN]]])


Параметры

Начальный размер массива. Доступ к этому значению Вы можете получить через свойство length.

Если специфицированное значение - не число, создаётся массив размером 1 с первым элементом, имеющим специфицированное значение.
Максимальный возможный размер массива: 4,294,967,295.

Список значений элементов массива. Если специфицирована эта форма, массив инициализируется со специфицированными значениями в качестве элементов, а свойство length массива устанавливается в количество аргументов.


Описание

Массив это упорядоченный набор значений, ассоциированных с одним именем переменной.

В этом примере создаётся объект Array с литералом массива; массив coffees содержит три элемента и имеет длину "три":

coffees = ["French Roast", "Columbian", "Kona"]

Вы можете создать плотный массив из двух или более элементов, начиная с индекса 0, если Вы определяете начальные значения для всех элементов. Плотным является массив, в котором каждый элемент имеет значение. Следующий код создаёт плотный массив из трёх элементов:

myArray = new Array("Hello", myVar, 3.14159)
 

Индексирование массива

 Элемент массива индексируется порядковым номером.

Например: предположим, Вы определяете такой массив:

myArray = new Array("Wind","Rain","Fire")

Затем Вы обращаетесь к первому элементу массива myArray[0], а ко второму элементу - myArray[1].
 

Специфицирование единственного параметра

Если Вы специфицируете единственный числовой параметр в конструкторе Array, Вы специфицируете начальный размер массива.
Следующий код создаёт массив из 5 элементов:

billingMethod = new Array(5)

Поведение конструктора Array

зависит от того, является ли единственный параметр числом.

Если специфицировано число, конструктор конвертирует число в беззнаковое 32-битное целое число и генерирует массив со свойством length (размер массива), установленным в это целое. Массив первоначально не содержит элементов, хотя и может иметь ненулевой размер.

Если специфицировано число, создаётся массив размером 1 с первым элементом, имеющим специфицированное значение.

Следующий код создаёт массив размером 25, затем присваивает значения первым трём элементам:

musicTypes = new Array(25)

musicTypes[0] = "R&B"

musicTypes[1] = "Blues"

musicTypes[2] = "Jazz"

Увеличение размера массива косвенно

Размер массива увеличивается, если Вы присваиваете значение элементу с более высоким индексом, чем текущий размер массива. Следующий код создаёт массив размером 0, а затем присваивает значение элементу 99. Это изменяет размер массива на 100.

colors = new Array()
colors[99] = "midnightblue"
 

Создание массива путём использования результата совпадения

В результате совпадения регулярного выражения и строки может быть создан массив. Этот массив имеет свойства и элементы, которые предоставляют информацию о совпадении. Массив является return-значением ,

и .

Чтобы лучше пояснить эти свойства и элементы, просмотрите следующий код, а затем - таблицу:

<SCRIPT LANGUAGE="JavaScript1.2">

//Совпадает одно d с последующим одним или более b с последующим одним d

//Запоминаются совпавшие b с последующим d

//Регистр игнорируется

myRe=/d(b+)(d)/i;

myArray = myRe.exec("cdbBdbsbz");

</SCRIPT>

Свойства и элементы, возвращённые из этого совпадения:

arrayLength

elementN

Свойство/Элемент

Описание

Пример

input

Свойство только для чтения, содержание которого отражает оригинальную строку, относительно которой выполняется совпадение с регулярным выражением.

cdbBdbsbzindex

Свойство только для чтения, которое является индексом с базой 0 совпадения в строке.1

[0]

Элемент только для чтения, который специфицирует последние совпавшие символы.

dbBd[1], ...[n]

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

[1]=bB 
[2]=d


Обратная совместимость


JavaScript 1.2.

Если Вы специфицируете единственный параметр в конструкторе Array, поведение зависит от того, специфицировали ли Вы LANGUAGE="JavaScript1.2"

в тэге <SCRIPT>:

Если Вы специфицируете LANGUAGE="JavaScript1.2" в тэге <SCRIPT>, возвращается массив, состоящий из одного элемента. Например, new Array(5)

создаёт массив из одного элемента с первым элементом со значением 5. Конструктор с единственным параметром работает так же, как конструктор с несколькими параметрами. Вы не можете специфицировать свойство length массива Array, используя конструктор с одним параметром.

Если Вы не специфицируете LANGUAGE="JavaScript1.2" в тэге <SCRIPT>, Вы специфицируете начальный размер массива, как в других версиях JavaScript.

JavaScript 1.1 и более ранние.

Если Вы специфицируете единственный параметр в конструкторе Array, Вы специфицируете начальный размер массива. Следующий код создаёт массив из пяти элементов:

billingMethod = new Array(5)

JavaScript 1.0.

Вы обязаны индексировать массив порядковыми числительным; например, myArray[0].


Свойства. Резюме.

Свойство

Описание

Специфицирует функцию, создающую прототип объекта.

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

Для массива, созданного из совпадения с регулярным выражением, отражает оригинальную строку, относительно которой выполнялся поиск совпадений с регулярным выражением.

Количество элементов в массиве.

Позволяет добавлять свойства ко всем объектам.


 

Метод. Резюме.

Метод

Описание

Объединяет два массива и возвращает новый массив.

Объединяет все элементы массива в строку.

Удаляет последний элемент массива и возвращает этот элемент.

Добавляет один или более элементов в конец массива и возвращает новый размер массива.

Переворачивает элементы массива: первый элемент становится последним, а последний элемент - первым.

Удаляет первый элемент массива и возвращает этот элемент.

Извлекает раздел массива и возвращает новый массив.

Добавляет и/или удаляет элементы массива.

Сортирует элементы массива.

Возвращает литерал массива, представляющий специфицированный массив; Вы можете использовать это значение для создания нового массива. Переопределяет метод .

Возвращает строку, представляющую массив и его элементы. Переопределяет метод .

Добавляет один или более элементов впереди массива и возвращает новый размер массива.

Возвращает примитивное значение массива. Переопределяет метод .

Кроме того, этот объект наследует методы и из .


Примеры

Пример 1.

Создаётся массив msgArray

размером 0, затем присваивается значение элементам msgArray[0] и msgArray[99], а размер массива становится 100.

msgArray = new Array()

msgArray[0] = "Hello"

msgArray[99] = "world"

// Следующий оператор - true,

// поскольку определён элемент msgArray[99].

if (msgArray.length == 100)

   myVar="Массив имеет размер 100."

 

Пример 2.

Двухмерный массив. Создаётся двухмерный массив и результат присваивается переменной myVar.

myVar="Тест многомерного массива; "

a = new Array(4)

for (i=0; i < 4; i++) {

   a[i] = new Array(4)

   for (j=0; j < 4; j++) {

      a[i][j] = "["+i+","+j+"]"

   }

}

for (i=0; i < 4; i++) {

   str = "Ряд "+i+":"

   for (j=0; j < 4; j++) {

      str += a[i][j]

   }

   myVar += str +"; "

}

В этом примере выполняется присвоение следующей строки переменной myVar (разрывы строк даны для удобства чтения):

Тест многомерного массива;

Ряд 0:[0,0][0,1][0,2][0,3];

Ряд 1:[1,0][1,1][1,2][1,3];

Ряд 2:[2,0][2,1][2,2][2,3];

Ряд 3:[3,0][3,1][3,2][3,3];



Asin


Возвращает арксинус числа (в радианах).

Метод из

Static

Реализован вJavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262


Синтаксис

asin(x)

Параметр

x

Число.

Описание

Метод asin возвращает числовое значение в диапазоне от -pi/2 до pi/2 радиан. Если значение number вне этого диапазона, возвращается NaN.

Поскольку asin это static-метод из Math, Вы всегда используете его так: Math.asin(), а не как метод Math-объекта, созданного Вами.

Примеры

Эта функция возвращает арксинус переменной x:

function getAsin(x) {

   return Math.asin(x)
}

Если Вы передаёте в getAsin значение 1, он возвращает 1.570796326794897 (pi/2); если Вы передаёте 2, он возвращает NaN, поскольку 2 находится вне диапазона.


См. также

, , , , , .



Atan


Возвращает арктангенс числа (в радианах).

Метод из

StaticРеализован в 

JavaScript 1.0, NES 2.0Версия ECMA

ECMA-262


Синтаксис

atan(x)

Параметр

x

Число.

Описание

Метод atan возвращает числовое значение от -pi/2 до pi/2 в радианах.

Поскольку atan это static-метод из Math, Вы всегда используете его так: Math.atan(), а не как метод Math-объекта, созданного Вами.


Пример

Возвращает арктангенс переменной x:

function getAtan(x) {
   return Math.atan(x)
}

Если Вы передаёте в getAtan значение 1, он возвращает 0.7853981633974483; если передаёте .5, оно возвратит 0.4636476090008061.


См. также

, , , , , .




Возвращает арктангенс частного своих аргументов.
Метод из StaticРеализован в JavaScript 1.0, NES 2.0Версия ECMA ECMA-262

Синтаксис


atan2(y, x)

Параметр


y, x
Число.

Описание


Метод atan2 возвращает числовое значение в диапазоне от -pi до pi, представляющее угол тета точки (x,y). Это угол в направлении по часовой стрелке, измеренный в радианах, между положительной осью X и точкой (x,y). Обратите внимание, что аргументы этой функции передают сначала y-координату, а затем x-координату.

atan2 предаёт раздельно аргументы x и y, а atan передаёт частное этих двух аргументов.

Поскольку atan2 это static-метод из Math, Вы всегда используете его так: Math.atan2(), а не как метод Math-объекта, созданного Вами.

Пример
 

Следующая функция возвращает угол полярной координаты:

function getAtan2(x,y) {
   return Math.atan2(x,y)
}

Если Вы передаёте в getAtan2 значения (90,15), он возвратит 1.4056476493802699; если передаёте (15,90), он возвращает 0.16514867741462683.

См. также


, , , , , .


Big


Выводит строку шрифтом большего размера, как при использовании тэга BIG.

Метод из Реализован в

JavaScript 1.0, NES 2.0

Синтаксис

big()

Параметры

Отсутствуют.

Описание

Используйте метод big с методами write или writeln для форматирования и отображения строки документа. В серверном JavaScript используйте функцию write для отображения строки.


Примеры

В этом примере используются методы для изменения размера строки:

var worldString="Hello, world"

document.write(worldString.small())

document.write("<P>" + worldString.big())

document.write("<P>" + worldString.fontsize(7))

Этот пример даёт такой же вывод, как и нижеследующий HTML:

<SMALL>Hello, world</SMALL>

<P><BIG>Hello, world</BIG>

<P><FONTSIZE=7>Hello, world</FONTSIZE>

См. также

, .



Blink


Создаёт мигающую строку, как при использовании тэга BLINK.

Метод из

Реализован вJavaScript 1.0, NES 2.0

Синтаксис

blink()


Параметры

Отсутствуют.


Описание

Используйте метод blink с методами write или writeln для форматирования и отображения строки документа. В серверном JavaScript используйте функцию write

для отображения строки.


Примеры


В этом примере используются методы для изменения форматирования строки:

var worldString="Hello, world"

document.write(worldString.blink())

document.write("<P>" + worldString.bold())

document.write("<P>" + worldString.italics())

document.write("<P>" + worldString.strike())

Этот пример даёт такой же вывод, как и нижеследующий HTML:

<BLINK>Hello, world</BLINK>

<P><B>Hello, world</B>

<P><I>Hello, world</I>

<P><STRIKE>Hello, world</STRIKE>

См. также

, , .



Bold


Отображает строку жирным шрифтом, как при использовании тэга B.

Метод из

Реализован вJavaScript 1.0, NES 2.0


Синтаксис

bold()


Параметры

Отсутствуют.

Описание

Используйте bold с методами write или writeln для форматирования и отображения строки документа. В серверном JavaScript используйте функцию write для отображения строки.


Примеры

В этом примере используются методы для изменения форматирования строки:

var worldString="Hello, world"

document.write(worldString.blink())

document.write("<P>" + worldString.bold())

document.write("<P>" + worldString.italics())

document.write("<P>" + worldString.strike())

Этот пример даёт такой же вывод, как и нижеследующий HTML:

<BLINK>Hello, world</BLINK>

<P><B>Hello, world</B>

<P><I>Hello, world</I>

<P><STRIKE>Hello, world</STRIKE>


См. также

, , .



Boolean


Объект Boolean это оболочка объекта для булева значения.

Объект ядра Реализован в

JavaScript 1.1, NES 2.0

JavaScript 1.3: добавлен метод .

Версия ECMA

ECMA-262


Создание

Конструктор Boolean

new Boolean(value)


Параметры

value

Начальное значение объекта Boolean. Значение конвертируется к boolean, если необходимо. Если значение опущено или равно 0, -0, null, false, NaN, undefined или пустой строке (""), объект имеет начальное значение false. Все другие значения, включая любой объект или строку "false", создают объект с начальным значением true.


Описание

Не путайте примитивные Boolean-значения true и false со значениями true и false объекта Boolean.

Любой объект со значением не undefined или не null, включая объект Boolean со значением false, вычисляется до true, когда передаётся условному оператору. Например, условие этого оператора if вычисляется в true:

x = new Boolean(false);

if(x) //условие - true

Это поведение не применяется для Boolean-примитивов. Например, условие следующего оператора if вычисляется в false:

x = false;

if(x) //условие - false

Не используйте объект Boolean для конвертации не-булева значения в булево. Вместо этого используйте Boolean как функцию для выполнения этой задачи:

x = Boolean(expression) //предпочтительнее

x = new Boolean(expression) //не используйте

Если Вы специфицируете любой объект, включая Boolean-объект, значение которого - false, как начальное значение Boolean-объекта, новый Boolean-объект имеет значение true.

myFalse=new Boolean(false)   //

начальное значение - false

g=new Boolean(myFalse)       //начальное значение - true

myString=new String("Hello") // строковой объект

s=new Boolean(myString)      //начальное значение - true

Не используйте Boolean-объект вместо Boolean-примитива.


Обратная Совместимость


JavaScript 1.2 и более ранние версии.

Объект Boolean ведёт себя так:

Если объект Boolean используется как условие проверки, JavaScript возвращает значение Boolean-объекта. Например, Boolean-объект со значением false рассматривается как примитивное значение false, а Boolean-объект со значением true рассматривается как примитивное значение true в проверке условия. Если объект Boolean - false, условный оператор вычисляется до false.

Вы можете использовать Boolean-объект вместо Boolean-примитива.


Свойства. Резюме.

Свойство

Описание

Специфицирует функцию, которая создаёт прототип объекта.

Определяет свойство, которое совместно используется объектами Boolean.


 

Методы. Резюме.

Метод

Описание

Возвращает литерал объекта, представляющий специфицированный Boolean-объект; Вы можете использовать это значение для создания нового объекта. Переопределяет метод .

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

Переопределяет метод .

Возвращает примитивное значение объекта Boolean.

Переопределяет метод .

Кроме того, этот объект наследует методы и из .


Примеры

Следующий пример создаёт объекты Boolean с начальными значениями false:

bNoParam = new Boolean()

bZero = new Boolean(0)

bNull = new Boolean(null)

bEmptyString = new Boolean("")

bfalse = new Boolean(false)

Следующий пример создаёт объекты Boolean с начальными значениями true:

btrue = new Boolean(true)

btrueString = new Boolean("true")

bfalseString = new Boolean("false")

bSuLin = new Boolean("Su Lin")



Break


Оператор break используется для прерывания выполнения операторов цикла, switch или label.

Прерывает выполнение операторов цикла, switch

или label и передаёт управление оператору, следующему после прерванного цикла.

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262 (для непомеченной/unlabeled версии)
ECMA-262, Edition 3 (для помеченной/labeled версии)


Синтаксис

break [label]


Параметр

label

Идентификатор, ассоциированный с меткой оператора.


Описание

Оператор break содержит необязательный лэйбл/label, который позволяет программе прерывать помеченный оператор. Операторы в помеченном операторе могут быть любого типа.


Примеры

В этой функции имеется оператор break, прерывающий выполнение цикла , если e равно 3, и возвращающий затем значение 3 * x.

function testBreak(x) {

   var i = 0;

   while (i < 6) {

      if (i == 3)

         break;

      i++;

   }

   return i*x;

}


См. также

, , .



Call


Этой возможности нет в спецификации ECMA, соответствующей JavaScript 1.3, но ожидается её появление в следующей версии.

Позволяет вызывать (выполнять) метод одного объекта в контексте другого объекта (вызывающего объекта).

Метод из Реализован в

JavaScript 1.3


Синтаксис

call(thisArg[, arg1[, arg2[, ...]]])

Параметры

thisArg

Параметр вызывающего объекта.

arg1, arg2, ...

Параметр объекта.

Описание

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

С помощью call Вы можете написать метод один раз и наследовать его в другом объекте без необходимости переписывать метод для нового объекта.


Примеры
 

Можно использовать call для построения цепочки конструкторов объекта, аналогично Java. В следующем примере конструктор объекта product определён с двумя параметрами, name

и value. Другой объект, prod_dept, инициализирует свою уникальную переменную (dept) и вызывает конструктор для product в своём конструкторе для инициализации других переменных.

Function product(name, value){

   this.name = name;

   if(value > 1000)

      this.value = 999;

   else

      this.value = value;

}

Function prod_dept(name, value, dept){

   this.dept = dept;

   product.call(this, name, value);

}

prod_dept.prototype = new product();

// поскольку 5 меньше 100, значение устанавливается

cheese = new prod_dept("feta", 5, "food");

// поскольку 5000 больше 1000, значение будет 999

car = new prod_dept("honda", 5000, "auto");


См. также

.


Метод. Вызывает метод из JavaScript. Эквивалентен "this.methodName(args[0], args[1], ...)" в JavaScript.


Объявление

public Object call(String methodName, Object args[])



Ceil


Возвращает наименьшее целое, больше или равное данному числу.

Метод из

StaticРеализован в

JavaScript 1.0, NES 2.0 Версия ECMA

ECMA-262


Синтаксис

ceil(x)

Параметр

x

Число.

Описание

Поскольку ceil это static-метод из Math, Вы всегда используете его так: Math.ceil(), а не как метод Math-объекта, созданного Вами.


Примеры

Эта функция возвращает наименьшее целое, больше или равное переменной x:

function getCeil(x) {

   return Math.ceil(x)
}

Если Вы передадите 45.95 в getCeil, он возвратит 46; если -45.95, он возвратит -45.


См. также

.



CharAt


Возвращает специфицированные символы из строки.

Метод из

Реализован вJavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262


Синтаксис

charAt(index)


Параметры

index

Целое, начиная от 0, и меньше размера строки на 1.


Описание

Символы строки индексируются слева направо. Индекс первого символа равен 0, индекс последнего символа строки с названием StringName равен StringName.length - 1. если предоставляемый Вами индекс выходит за рамки этого диапазона, JavaScript возвращает пустую строку.


Примеры


Следующий пример отображает символы из различных точек строки "Brave new world":

var anyString="Brave new world"

document.writeln("The character at index 0 is " + anyString.charAt(0))

document.writeln("The character at index 1 is " + anyString.charAt(1))

document.writeln("The character at index 2 is " + anyString.charAt(2))

document.writeln("The character at index 3 is " + anyString.charAt(3))

document.writeln("The character at index 4 is " + anyString.charAt(4))

Отображение будет таким:

The character at index 0 is B

The character at index 1 is r
The character at index 2 is a
The character at index 3 is v

The character at index 4 is e


См. также

, , .



CharCodeAt


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

Метод из Реализован в

JavaScript 1.2, NES 3.0

JavaScript 1.3: возвращает Unicode-значение вместо значения ISO-Latin-1.

Версия ECMA

ECMA-262


Синтаксис

charCodeAt([index])


Параметры

index

Целое, начиная от 0, и меньше размера строки на 1. Значение по умолчанию 0.


Описание

Значения Unicode находятся в диапазоне от 0 до 65,535. Первые 128 значений Unicode напрямую совпадают с набором ASCII-символов. Информацию о Unicode см. в книге

.


Обратная Совместимость


JavaScript 1.2.

Метод charCodeAt возвращает число, обозначающее значение из кодового набора ISO-Latin-1 для символа, находящегося по данному индексу. Набор ISO-Latin-1 имеет диапазон от 0 to 255. Символы от 0 до 127 напрямую совпадают с набором ASCII-символов.


Пример

Этот пример возвращает 65, значение Unicode для A.

"ABC".charCodeAt(0) // возвращает 65



Что Вы Уже Должны Знать


Предполагается, что Вы уже имеете:

Общее понятие об Internet и World Wide Web (WWW).

Хорошие навыки работы в HyperText Markup Language (HTML).

Некоторый опыт программирования в таких языках, как C или Visual Basic (желателен, но не обязателен).



ClassName


Полное квалифицированное имя Java-класса в пакетах, кроме пакетов netscape, java или sun, доступного (класса) в JavaScript.

Свойство из

Реализовано в

JavaScript 1.1, NES 2.0


Синтаксис

Packages.className

где classname  это полное квалифицированное имя Java-класса.

Описание

Вы обязаны использовать свойство className  объекта Packages для доступа к классам вне пакетов netscape, sun и java.

Примеры

Следующий код получает в JavaScript доступ к конструктору класса CorbaObject в пакете myCompany:

var theObject = new Packages.myCompany.CorbaObject()

Здесь значением свойства className

является myCompany.CorbaObject, полное квалифицированное имя пути класса CorbaObject.



Comment


Авторское описание действий, выполняемых кодом. Комментарии игнорируются интерпретатором.

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMAECMA-262


Синтаксис

// текст однострочного комментария

/*

текст многострочного комментария */


Описание

JavaScript поддерживает комментарии в стиле Java:

Однострочному комментарию предшествует двойная наклонная черта (//).

Комментарии, занимающие несколько строк, заключаются между символами /* и */.


Примеры

// Это однострочный комментарий.

/* Это многострочный комментарий. Он может быть любого размера,
и Вы можете сюда что угодно. */

    

Copyright © 2000 Все права зарезервированы.

Дата последнего обновления: 28 сентября  2000 г.



Concat



Объединяет два массива и возвращает новый массив.

Чей метод

Реализован вJavaScript 1.2, NES 3.0

Версия ECMA

ECMA-262


Синтаксис

concat(arrayName2, arrayName3, ..., arrayNameN)

 

Параметры

arrayName2...

arrayNameN

Объединяемые массивы.


Описание

concat

не изменяет оригиналы массивов, но возвращает копию "на один уровень глубже", которая содержит копии элементов, скомбинированных из массивов-оригиналов. Элементы оригинальных массивов копируются в новый массив так:

Ссылки на объекты (а не реальные объекты): concat

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

Строки и числа (не объекты и ): concat

копирует строки и числа в новый массив. Изменения строк и чисел одного массива не влияют на другие массивы.

Если к любому массиву добавляется новый элемент, на другой массив это не влияет.

Следующий код объединяет два массива:

alpha=new Array("a","b","c")

numeric=new Array(1,2,3)

alphaNumeric=alpha.concat(numeric) // создаёт массив ["a","b","c",1,2,3]

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

num1=[1,2,3]

num2=[4,5,6]

num3=[7,8,9]

nums=num1.concat(num2,num3) // создаёт массив [1,2,3,4,5,6,7,8,9]


Объединяет текст двух или более строк и возвращает новую строку.

Метод из Реализован в

JavaScript 1.2, NES 3.0


Синтаксис

concat(String2, String3[, ..., StringN])


Параметры

String2...

StringN

Строки, объединяемые в данную строку.


Описание

concat объединяет текст двух или более строк и возвращает новую строку. Изменения в тексте одной строки не влияют на другие строки.


Пример

В этом примере две строки объединяются в новую строку.

s1="Oh "

s2="what a beautiful "

s3="mornin'."

s4=s1.concat(s2,s3) // возвращает "Oh what a beautiful mornin'."



Const


Объявляет именованную константу только-для-чтения.

Реализован в

JavaScript 1.5, NES 6.0 (расширение Netscape, только C-машина).


Синтаксис

const constname [= value] [..., constname [= value] ]


Параметры

varname

Имя константы. Оно может быть любым разрешённым идентификатором.

value

Значение константы. Оно может быть любым разрешённым  выражением.


Описание

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

Значение константы не может быть изменено с помощью присвоения, и константа не может быть переобъявлена.

Константа не может иметь то же имя, что и функция или переменная в той же области видимости.


Примеры

Скрипт:
 

const a = 7;

document.writeln("a равно " + a + ".");
 

даёт на выходе:
 

a равно 7.



Constructor


Специфицирует функцию, которая создаёт прототип объекта. Заметьте, что значением этого свойства является ссылка на саму функцию, а не строка, содержащая имя функции.

Свойство из Реализовано в

JavaScript 1.1, NES 2.0Версия ECMA

ECMA-262


Описание

См. .


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

Свойство из Реализовано в

JavaScript 1.1, NES 2.0Версия ECMA

ECMA-262


Описание

См. .




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

Свойство из

Реализовано вJavaScript 1.1, NES 2.0

Версия ECMA

ECMA-262


Описание

См. .




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

Свойство из

Реализовано вJavaScript 1.1, NES 2.0

Версия ECMAECMA-262


Описание

См. .




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

Свойство из

Реализовано вJavaScript 1.1, NES 2.0

Версия ECMA

ECMA-262


Описание

Все объекты наследуют свойство constructor из своих prototype:

o = new Object // или o = {} в JavaScript 1.2

o.constructor == Object

a = new Array // или a = [] в JavaScript 1.2

a.constructor == Array

n = new Number(3)

n.constructor == Number

Хотя Вы не можете конструировать большинство HTML-объектов, можно выполнять сравнение. Например,

document.constructor == Document

document.form3.constructor == Form

Примеры

Здесь создаётся прототип, Tree, и объект этого типа, theTree. Затем отображается свойство constructor объекта theTree.

function Tree(name) {

   this.name=name

}

theTree = new Tree("Redwood")

document.writeln("<B>theTree.constructor is</B> " +

   theTree.constructor + "<P>")

Этот пример даёт такой вывод:

theTree.constructor is function Tree(name) { this.name = name; }




Специфицирует функцию, которая создаёт прототип объекта. Обратите внимание, что значением этого свойств является ссылка на саму функцию, а не строка с именем функции.

Свойство из Реализовано в

JavaScript 1.1, NES 2.0Версия ECMA

ECMA-262

Описание

См. .




Специфицирует функция, которая создаёт прототип объекта. Заметьте, что значением этого свойства является ссылка на функцию, а не строка, содержащая имя функции.

Свойство из

Реализовано вJavaScript 1.1, NES 2.0

Версия ECMA

ECMA-262


Описание

См. .



Continue


Рестарт оператора while, do-while, for, или label.

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262 (для непомеченной/unlabeled версии)
ECMA-262, Edition 3 (для помеченной/labeled версии)


Синтаксис

continue [label]


Параметр

label

Идентификатор, ассоциированный с меткой оператора.


Описание

По контрасту с оператором , continue не прерывает полностью выполнение оператора. Вместо этого он:

в цикле перескакивает обратно на condition.

в цикле перескакивает на выражение update.

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


Примеры

Пример 1.

Это цикл while, с оператором , выполняемым, если i имеет значение 3. Таким образом, n принимает значения 1, 3, 7 и 12.

i = 0;

n = 0;

while (i < 5) {

i++;

   if (i == 3)

      continue;

   n += i;

}

 

Пример 2.

С это примере оператор, помеченный checkiandj, содержит оператор, помеченный checkj. Если обнаружен continue, программа продолжает от  верхней точки оператора checkj. Каждый раз при обнаружении continue, checkj повторяет итерацию, пока условие не вернёт false. Если false возвращено, выполняется оставшаяся часть оператора checkiandj. checkiandj повторяет итерацию, пока условие не вернёт false. Если false возвращено, программа продолжает выполняться с точки после оператора checkiandj.

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

checkiandj :

while (i<4) {

   document.write(i + "<BR>");

   i+=1;

   checkj :

   while (j>4) {

      document.write(j + "<BR>");

      j-=1;

      if ((j%2)==0)

         continue checkj;

      document.write(j + " is odd.<BR>");

   }

   document.write("i = " + i + "<br>");

   document.write("j = " + j + "<br>");

}


См. также

, .



Cos


Возвращает косинус числа.

Метод из

StaticРеализован в

JavaScript 1.0, NES 2.0Версия ECMA

ECMA-262


Синтаксис

cos(x)

Параметр

x

Число.

Описание

Метод cos возвращает числовое значение в диапазоне от -1 до 1, представляющее косинус угла.

Поскольку cos это static-метод из Math, Вы всегда используете его так: Math.cos(), а не как метод Math-объекта, созданного Вами.


Пример

Эта функция возвращает косинус переменной x:

function getCos(x) {
   return Math.cos(x)
}

Если x равен 2*Math.PI, getCos возвращает 1; если x

равен Math.PI, метод getCos возвращает -1.


См. также

, , , , , .



Date


Позволяет работать с датой и временем.

Объект ядра

Реализован в

JavaScript 1.0, NES 2.0

JavaScript 1.1: добавлено свойство prototype.

JavaScript 1.3: убрана зависимость от платформы, чтобы дать универсальное поведение на всех платформах; добавлен параметр ms_num в конструктор Date; добавлены методы , , , , и UTC-методы (такие как и ).

Версия ECMA

ECMA-262


Создание

Конструктор Date:

new Date()

new Date(milliseconds)

new Date(dateString)

new Date(yr_num, mo_num, day_num

[, hr_num, min_num, sec_num, ms_num])

Версии до JavaScript 1.3:

new Date()

new Date(milliseconds)

new Date(dateString)

new Date(yr_num, mo_num, day_num[, hr_num, min_num, sec_num])


Параметры

milliseconds

Целочисленное значение - количество миллисекунд, прошедших после 1 января 1970 года, 00:00:00.

dateString

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

yr_num, mo_num,
day_num

Целые значения, представляющие часть даты. Как целочисленное значение, месяц представляется цифрами от 0 до 11, где 0=January и 11=December.

hr_num, min_num,
sec_num, ms_num

Целые значения, представляющие часть даты.


Описание

Если Вы не задаёте никаких аргументов, конструктор создаёт объект Date для текущей даты и времени в соответствии с локальным/системным временем. Если Вы задаёте несколько аргументов, но не все, отсутствующие аргументы устанавливаются в 0. Если Вы задаёте несколько аргументов, Вы обязаны ввести как минимум year, month и day. Можно опустить hours, minutes, seconds и milliseconds.

Дата измеряется в миллисекундах, прошедших после полуночи 01 января 1970 года по Гринвичу/UTC. Один день состоит из 86,400,000 миллисекунд. Объект Date имеет диапазон от -100,000,000 до 100,000,000 дней относительно 01 января 1970 года по UTC.

Объект Date имеет универсальное поведение на всех платформах.

Объект Date поддерживает несколько UTC-методов (универсальных), а также методы работы с локальным временем. UTC, известное также как Greenwich Mean Time (GMT)/время по Гринвичу, ссылается на время, установленное стандартом World Time Standard. Локальное время это время, известное компьютеру, на котором выполняется JavaScript.

Для обеспечения перехода в новое тысячелетие (2000 год) Вы всегда должны специфицировать год полностью; например, использовать 1998, а не 98. Чтобы помочь Вам в установке полный год, JavaScript имеет методы getFullYear, setFullYear, getFullUTCYear

и setFullUTCYear.

Следующий пример возвращает время в миллисекундах, прошедшее в период от timeA до timeB:

timeA = new Date();
// Здесь операторы, выполняющие какие-либо действия.

timeB = new Date();
timeDifference = timeB - timeA;


Обратная Совместимость


JavaScript 1.2 и более ранние версии.

Объект Date работает так:

Даты до 1970 года недопустимы.

JavaScript зависит от специфики поведения даты на конкретной платформе; поведение объекта Date меняется, в зависимости от платформы.


Свойства. Резюме.

Свойство

Описание

Специфицирует функцию, создающую прототип объекта.

Позволяет добавлять свойства к объекту Date.

 


Методы. Резюме.

 

Метод

Описание

Возвращает день месяца для специфицированной даты в соответствии с локальным временем.

Возвращает день недели для специфицированной даты в соответствии с локальным временем.

Возвращает year/год для специфицированной даты в соответствии с локальным временем.

Возвращает hour/час для специфицированной даты в соответствии с локальным временем.

Возвращает milliseconds/миллисекунды для специфицированной даты в соответствии с локальным временем.

Возвращает minutes/минуты для специфицированной даты в соответствии с локальным временем.

Возвращает month/месяц для специфицированной даты в соответствии с локальным временем.

Возвращает seconds/секунды для специфицированной даты в соответствии с локальным временем.

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

Возвращает смещение часового пояса в минутах для данной местности.

Возвращает день (число) месяца в специфицированной дате в соответствии с универсальным временем.

Возвращает день недели в специфицированной дате в соответствии с универсальным временем.

Возвращает год в специфицированной дате в соответствии с универсальным временем.

Возвращает часы в специфицированной дате в соответствии с универсальным временем.

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

Возвращает минуты в специфицированной дате в соответствии с универсальным временем.

Возвращает месяц в специфицированной дате в соответствии с универсальным временем.

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

Возвращает год в специфицированной дате в соответствии с местным временем.

Возвращает количество миллисекунд, прошедших до данной даты после 2 января 1970 года, 00:00:00 местного времени.

Устанавливает число/день месяца в специфицированной дате в соответствии с местным временем.

Устанавливает полный год в специфицированной дате в соответствии с местным временем.

Устанавливает часы в специфицированной дате в соответствии с местным временем.

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

Устанавливает минуты в специфицированной дате в соответствии с местным временем.

Устанавливает месяц в специфицированной дате в соответствии с местным временем.

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

Устанавливает значение объекта Date в соответствии с местным временем.

Устанавливает число/день месяца в специфицированной дате в соответствии с универсальным временем.

Устанавливает полный год в специфицированной дате в соответствии с универсальным временем.

Устанавливает часы в специфицированной дате в соответствии с универсальным временем.

Устанавливает миллисекунды в специфицированной дате в соответствии с универсальным временем.

Устанавливает минуты в специфицированной дате в соответствии с универсальным временем.

Устанавливает месяц в специфицированной дате в соответствии с универсальным временем.

Устанавливает секунды в специфицированной дате в соответствии с универсальным временем.

Устанавливает год в специфицированной дате в соответствии с локальным временем.

Конвертирует дату в строку, используя соглашения Internet GMT.

Конвертирует дату в строку, используя соглашения по текущему времени.

Возвращает литерал объекта, представляющий специфицированный объект Date; Вы можете использовать это значение для создания нового объекта. Переопределяет метод .

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

Конвертирует дату в строку, используя соглашение по универсальному времени.

Возвращает количество миллисекунд в объекте Date, прошедших после 1 января 1970 года, 00:00:00 универсального времени.

Возвращает примитивное значение объекта Date. Переопределяет метод .

Кроме того, Этот объект наследует методы и из .


Примеры

Вот разные примеры назначения времени:

today = new Date()

birthday = new Date("December 17, 1995 03:24:00")

birthday = new Date(95,11,17)

birthday = new Date(95,11,17,3,24,0)



-- (Декремент/Уменьшение)


Операция декремента используется так:

var--  или  --var

Выполняет декремент (вычитает единицу) своего операнда и возвращает значение. Если используется как постфикс

(например, x--), то возвращает значение, бывшее до выполнения декремента.

Если используется как префикс (например, --x), тогда возвращает, после выполнения декремента, новое значение.

Например, если x равен 3, то операция y = x-- устанавливает y в 3 и выполняет декремент x до 2. Если x равен 3, то операция y = --x выполняет декремент x до 2 и устанавливает y в 2.



Delete


Операция delete удаляет объект, свойство объекта или элемент массива по специфицированному индексу.

Реализована вJavaScript 1.2, NES 3.0

Версия ECMAECMA-262


Синтаксис

delete objectName
delete objectName.property

delete objectName[index]

delete property // верно только внутри оператора with


Параметры

objectName

Имя объекта.

propertyУдаляемое свойство.

indexЦелое число, представляющее индекс массива для удаления.


Описание

Четвёртая форма операции верна только внутри оператора with при удалении свойства объекта.

Вы можете использовать операцию delete

для удаления переменных, объявленных неявно, но не переменных, объявленных оператором var.

Если операция delete

выполнена успешно, она устанавливает свойство или элемент в undefined. Операция delete

возвращает true, если операция возможна; возвращает false, если операция невозможна.

x=42

var y= 43

myobj=new Number()

myobj.h=4      // создаёт свойство h

delete x       // возвращает true (может удаляться, если объявлена неявно)

delete y       //

возвращает false (не может удаляться, если объявлена с помощью var)

delete Math.PI //

возвращает false (предопределённые свойства не могут удаляться)

delete myobj.h //

code>возвращает true (свойства, определённые пользователем, могут удаляться)

delete myobj   //

возвращает true (объекты могут удаляться)

 

Удаление массива элементов.

Если Вы удаляете элемент массива, размер массива не меняется. Например, если удалить a[3], то a[4] останется a[4], а a[3] - undefined.

Если операция delete удаляет элемент массива, этот элемент больше не присутствует в массиве. В следующем примере trees[3] удаляется с помощью delete.

trees=new Array("redwood","bay","cedar","oak","maple")

delete trees[3]

if (3 in trees) {

   // это не выполняется

}

Если Вы хотите, чтобы элемент массива существовал, но имел значение undefined, используйте ключевое слово undefined вместо операции delete.

В следующем примере элементу trees[3] присваивается значение undefined, и элемент массива продолжает существовать:

trees=new Array("redwood","bay","cedar","oak","maple")

trees[3]=undefined

if (3 in trees) {

   //

это выполняется

}


 



Do...while


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

Реализован в

JavaScript 1.2, NES 3.0

Версия ECMA

ECMA 262, Edition 3


Синтаксис

do

   statements

while (condition);


Параметры

statements

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

condition Вычисляется после каждого прохождения цикла. Если условие вычисляется в true, операторы предыдущего блока выполняются повторно. Если проверка условия возвращает false, управление передаётся оператору, следующему после do while.


Примеры

Цикл do loop итерирует минимум один раз и повторяет итерации, пока i не меньше 5.

do {

   i+=1;

   document.write(i);

while (i<5);



E


Константа Эйлера и база натуральных логарифмов, приблизительно 2.718.

Свойство из Static, Read-only\Только-для-Чтения

Реализован вJavaScript 1.0, NES 2.0

Версия ECMAECMA-262

Описание

Поскольку E это static-свойство из Math, Вы всегда используете его так:Math.E, а не как свойство Math-объекта, созданного Вами.


Пример

Эта функция возвращает константу Эйлера:

function getEuler() {
   return Math.E
}



Equals


Метод. Определяет, ссылаются ли два объекта JSObject на один и тот же экземпляр.

Переопределяет: equals в классе java.lang.Object.

Объявление

public boolean equals(Object obj)

Обратная Совместимость

JavaScript 1.3. В JavaScript 1.3 и более ранних версиях Вы можете использовать метод equals

из java.lang.Object или оператор == для вычисления двух объектов JSObject.

В более ранних версиях одинаковые объекты JSObject

могут появляться как разные Java-объекты. Вы можете использовать метод equals для определения, ссылаются ли два объекта JSObject на один и тот же экземпляр.



Eval


Метод. Вычисляет выражение JavaScript. Выражение это строка исходного кода JavaScript, который будет вычисляться в контексте, заданном "this".

Объявление
public Object eval(String s)


Не рекомендуется. Вычисляет строку JavaScript-кода в контексте объекта.

Метод из

Реализован в

JavaScript 1.1, NES 2.0

JavaScript 1.2, NES 3.0: не рекомендуется как метод объектов; остаётся как функция верхнего уровня.

JavaScript 1.4: удалён как метод объектов.

Синтаксис

eval(string)

Параметр

string

Любая строка, представляющая выражение JavaScript, оператор или последовательность операторов. Это выражение может содержать переменные и свойства существующих объектов.

Описание

Метод eval больше не доступен как метод из Object. Используется функция верхнего уровня .

Обратная Совместимость

JavaScript 1.2 и 1.3.

eval как метод из Object и каждого объекта, полученного из Object, не рекомендуется к использованию (но имеется).

JavaScript 1.1.

eval является методом из Object и каждого объекта, полученного из Object.


См. также

.



Exec


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

Метод из

Реализован вJavaScript 1.2, NES 3.0

Версия ECMAECMA 262, Edition 3 (только первый синтаксис)


Синтаксис

regexp.exec([str])

regexp([str])

Параметры

regexp

Имя регулярного выражения. Может быть именем переменной или литералом.

str

Строка, которая проверяется на совпадение с регулярным выражением.

Описание

Как видно из описания синтаксиса, метод exec

регулярного выражения может вызываться явно (regexp.exec(str)), или неявно (regexp(str)).

Если поиск выполняется, чтобы просто найти true или false, используйте метод или метод String .

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

Если совпадение не найдено, метод exec возвращает null.

Рассмотри пример:

<SCRIPT LANGUAGE="JavaScript1.2">

//Совпадение с d с последующими одним или более b, с последующим d

//Запомнить совпавшие b с последующим d

//Игнорировать регистр

myRe=/d(b+)(d)/ig;

myArray = myRe.exec("cdbBdbsbz");

</SCRIPT>

В таблице показаны результаты работы этого скрипта:

Объект

Свойство/Индекс

Описание

Пример myArray 

Контекст myArray.

["dbBd", "bB", "d"]index

Индекс совпадений в строке с базой 0.

1input

Строка-оригинал.cdbBdbsbz[0]Последние совпавшие символы.

dbBd[1], ...[n]

Совпавшие подстроки в кавычках, если имеются (подстроки). Количество подстрок в кавычках не ограничено.

[1] = bB
[2] = dmyRelastIndex

Индекс, с которого начать следующий поиск.5 ignoreCase

Указывает, использовался ли флаг "i" для игнорирования регистра.

trueglobal

Указывает, использовался ли флаг "g" для глобального поиска совпадений.

true multiline

Указывает, использовался ли флаг "m" для глобального поиска совпадений.

falsesource

Текст патэрна.d(b+)(d)

Если Ваше регулярное выражение использует флаг "g", Вы можете использовать метод exec

несколько раз для поиска успешных совпадений в той же строке. Если Вы это сделаете, поиск начинается с подстроки в str, специфицированной свойством lastIndex

в регулярном выражении. Например, расмотрим этот скрипт:

<SCRIPT LANGUAGE="JavaScript1.2">

myRe=/ab*/g;

str = "abbcdefabh";

myArray = myRe.exec(str);

document.writeln("Found " + myArray[0] +

   ". Next match starts at " + myRe.lastIndex)

mySecondArray = myRe.exec(str);

document.writeln("Found " + mySecondArray[0] +

   ". Next match starts at " + myRe.lastIndex)

</SCRIPT>

Будет выведен следующий текст:

Found abb. Next match starts at 3
Found ab. Next match starts at 9

Примеры

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

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

<HTML>

<SCRIPT LANGUAGE="JavaScript1.2">

A = ["Frank", "Emily", "Jane", "Harry", "Nick", "Beth", "Rick",

      "Terrence", "Carol", "Ann", "Terry", "Frank", "Alice", "Rick",

      "Bill", "Tom", "Fiona", "Jane", "William", "Joan", "Beth"]

function lookup() {

   firstName = /\w+/i();

   if (!firstName)

      window.alert (RegExp.input + " isn't a name!");

   else {

      count = 0;

      for (i=0; i<A.length; i++)

         if (firstName[0].toLowerCase() == A[i].toLowerCase()) count++;

      if (count ==1)

         midstring = " other has ";

      else

         midstring = " others have ";

      window.alert ("Thanks, " + count + midstring + "the same name!")

   }

}

</SCRIPT>

Enter your first name and then press Enter.

<FORM> <INPUT TYPE:"TEXT" NAME="FirstName" onChange="lookup(this);"> </ FORM>

</HTML>



Exp


Возвращает Ex, где x это аргумент, а E это константа Эйлера, база натуральных логарифмов.

Метод из Static

Реализован вJavaScript 1.0, NES 2.0

Версия ECMAECMA-262

Синтаксис

exp(x)

Параметр

x

Число.

Описание

Поскольку exp это static-метод из Math, Вы всегда используете его так: Math.exp(), а не как метод Math-объекта, созданного Вами.


Пример

Эта функция возвращает экспоненциальное значение переменной x:

function getExp(x) {

   return Math.exp(x)
}

Если Вы передаёте в getExp значение 1, он возвращает 2.718281828459045.


См. также

, , .



Export


Позволяет обозначенному/signed скрипту предоставлять свойства, функции и объекты другим обозначенным или необозначенным/unsigned скриптам.

Эта возможность отсутствует в ECMA 262, Edition 3.

Реализован в JavaScript 1.2, NES 3.0


Синтаксис

export name1, name2, ..., nameN

export *


Параметры

nameN

Список экспортируемых свойств, функций и объектов.

*

Экспортируются все свойства, функции и объекты этого скрипта.


Описание

Обычно информация в обозначенном/signed скрипте доступна только скриптам, обозначенным теми же принципалами/principals (найду перевод поточнее - заменю прим перев.). Экспортируя свойства, функции или объекты, обозначенный скрипт делает эту информацию доступной любому скрипту (signed или unsigned). Получающий скрипт использует оператор import для доступа к информации.


См. также

.



Fixed


Строка выводится моноширинным шрифтом, как при использовании тэга TT.

Метод из

Реализован в

JavaScript 1.0, NES 2.0

Синтаксис

fixed()

Параметры

Отсутствуют.


Описание

Используйте метод fixed с методами write или writeln для форматирования и отображения строки в документе. В серверном JavaScript используйте для отображения строки функцию write.


Примеры

В этом примере используется метод fixed для изменения форматирования строки:

var worldString="Hello, world"

document.write(worldString.fixed())

Вывод будет таким же, как и в нижеследующем HTML:

<TT>Hello, world</TT>



Floor


Возвращает наибольшее целое, меньше или равное данному числу.

Метод из Static

Реализован вJavaScript 1.0, NES 2.0

Версия ECMAECMA-262

Синтаксис

floor(x)

Параметр

x

Число.

Описание

Поскольку floor это static-метод из Math, Вы всегда используете его так: Math.floor(), а не как метод Math-объекта, созданного Вами.


Пример

Эта функция возвращает floor-значение переменной x:

function getFloor(x) {

   return Math.floor(x)

}

Если Вы передаёте 45.95 в getFloor, он возвращает 45; если передаёте -45.95, он возвращает -46.


См. также

.



Fontcolor


Строка выводится специфицированным цветом, как при использовании тэга <FONT COLOR=color>.

Метод из

Реализован вJavaScript 1.0, NES 2.0

Синтаксис

fontcolor(color)

Параметры

color

Строка содержит цвет в виде 16-ричного RGB-триплета или в виде строкового литерала. Названия цветов - строковых литералов - даны в книге .


Описание

Используйте метод fontcolor с методами write или writeln для форматирования и отображения строки в документе. В серверном JavaScript используйте для отображения строки функцию write.

Если Вы вводите цвет как 16-ричный RGB-триплет, Вы обязаны использовать формат rrggbb. Например, 16-ричные RGB-значения для цвета salmon: red=FA, green=80, blue=72, соответственно, RGB-триплет цвета salmon будет "FA8072".

Метод fontcolor переопределяет значение, установленное свойством fgColor.

Примеры


В этом примере метод fontcolor используется для изменения цвета строки:

var worldString="Hello, world"

document.write(worldString.fontcolor("maroon") +

   " is maroon in this line")

document.write("<P>" + worldString.fontcolor("salmon") +

   " is salmon in this line")

document.write("<P>" + worldString.fontcolor("red") +

   " is red in this line")

document.write("<P>" + worldString.fontcolor("8000") +

   " is maroon in hexadecimal in this line")

document.write("<P>" + worldString.fontcolor("FA8072") +

   " is salmon in hexadecimal in this line")

document.write("<P>" + worldString.fontcolor("FF00") +

   " is red in hexadecimal in this line")

Вывод будет таким же, как и в нижеследующем HTML:

<FONT COLOR="maroon">Hello, world</FONT> is maroon in this line

<P><FONT COLOR="salmon">Hello, world</FONT> is salmon in this line

<P><FONT COLOR="red">Hello, world</FONT> is red in this line

<FONT COLOR="8000">Hello, world</FONT>

is maroon in hexadecimal in this line

<P><FONT COLOR="FA8072">Hello, world</FONT>

is salmon in hexadecimal in this line

<P><FONT COLOR="FF00">Hello, world</FONT>

is red in hexadecimal in this line



Fontsize


Строка выводится шрифтом специфицированного размера, как при использовании тэга <FONT SIZE=size>.

Метод из

Реализован вJavaScript 1.0, NES 2.0

Синтаксис

fontsize(size)

Параметры

size

Целое число от 1 до 7; строка, представляющая целое число в диапазоне от 1 до 7.


Описание

Используйте метод fontsize с методами write или writeln для форматирования и отображения строки в документе. В серверном JavaScript используйте для отображения строки функцию write.

Если Вы специфицируете размер как целое число, Вы устанавливаете размер строки StringName в один из семи предопределённых размеров. Если Вы специфицируете размер как строку, например, "-2", Вы уточняете размер строки StringName относительно размера, установленного в тэге BASEFONT.

Примеры


В этом примере методы работы со строками используются для изменения размера строки:

var worldString="Hello, world"

document.write(worldString.small())

document.write("<P>" + worldString.big())

document.write("<P>" + worldString.fontsize(7))

Вывод будет таким же, как и в нижеследующем HTML:

<SMALL>Hello, world</SMALL>

<P><BIG>Hello, world</BIG>

<P><FONTSIZE=7>Hello, world</FONTSIZE>

См. также

,

.



For


Создаёт цикл из трёх необязательных выражений, заключённых в скобки и разделённых точкой с запятой, и блока операторов , выполняемых в цикле.

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262


Синтаксис

for ([initial-expression]; [condition]; [increment-expression]) {

statements

}


Параметры

initial-expression

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

condition

Условие, вычисляемое при каждой итерации цикла. Если вычисляется в true, выполняются операторы statements. Эта проверка условия не является обязательной. При её отсутствии, условие всегда вычисляется в true.

increment-expression

Это выражение обычно используется для инкремента или обновления переменной счётчика цикла.

statements

Блок операторов, которые выполняются, пока условие true. Это может быть один или несколько операторов. Хотя это и не требуется, хорошим стилем будет выделить эти операторы отступом относительно начала оператора for.


Примеры

Здесь оператор for начинается с объявления переменной i и её инициализации в 0. Он проверяет, что i меньше 9, выполняет два последующих оператора и увеличивает i на 1 после каждого прохода по циклу.

for (var i = 0; i < 9; i++) {

   n += i;

   myfunc(n);

}



For...in


Итерирует специфицированную переменную по всем свойствам объекта. Для каждого выделенного свойства JavaScript выполняет специфицированные операторы.

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262


Синтаксис

for (variable in object) {

   statements

}


Параметры

variable

Переменная для итерации по каждому свойству, может быть объявлена ключевым словом var. Эта переменная локальна относительно функции, а не цикла.

object

Объект, по свойствам которого происходит итерация.

statements

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


Примеры

Здесь функция принимает в качестве аргументов объект и имя объекта . Затем выполняется итерация по всем свойствам объекта и возвращает строку со списком имён свойств и их значений.

function show_props(obj, objName) {

   var result = "";

   for (var i in obj) {

      result += objName + "." + i + " = " + obj[i] + "\n";

   }

   return result;

}



FromCharCode


Возвращает строку, созданную путём использования специфицированной последовательности из значений Unicode.

Метод из

Static

Реализован вJavaScript 1.2, NES 3.0

JavaScript 1.3: используется значение Unicode, а не значение ISO-Latin-1.

Версия ECMA

ECMA-262


Синтаксис

fromCharCode(num1, ..., numN)

Параметры

num1, ..., numN

Последовательность чисел - значений Unicode.

Описание

Этот метод возвращает строку, а не String-объект.

Поскольку fromCharCode это static-метод объекта String, Вы всегда используете его как String.fromCharCode(), а не как метод String-объекта, созданного Вами.


Обратная Совместимость


JavaScript 1.2.

Метод fromCharCode возвращает строку, созданную путем использования специфицированной последовательности значений из набора кодов ISO-Latin-1.

Примеры


Этот пример возвращает строку "ABC".

String.fromCharCode(65,66,67)



Function


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

Специфицирует строку кода JavaScript, компилируемого как функция.

Объект ядра

Реализован в

JavaScript 1.1, NES 2.0

JavaScript 1.2: добавлены свойства , ; добавлена возможность вложения функций.

JavaScript 1.3: добавлены методы ,

и ; не рекомендуется использовать свойство .

JavaScript 1.4: не рекомендуются свойства , ,

и (arguments

остаётся локальной переменной функции, а не свойством в Function).

Версия ECMA

ECMA-262


 
Создание


Конструктор Function:

new Function ([arg1[, arg2[, ... argN]],] FunctionBody)

 

Оператор Function (см. ):

Function name([param[, param[, ... param]]]) {
   операторы

}

Параметры

arg1, arg2, ... argN

Имена, используемые функцией в качестве имён формальных аргументов. Каждый обязан быть строкой - правильным идентификатором JavaScript; например "x" или "theValue".

FunctionBody

Строка операторов JavaScript, образующих определение функции.

nameИмя функции.

param

Имя аргумента, передаваемого функции. Функция может иметь до 255 аргументов.

statementsОператоры, образующие тело функции.

Описание

Function-объекты, созданные конструктором Function, вычисляются каждый раз, когда используются. Это менее эффективно, чем объявление функции и вызов её в Вашем коде, поскольку объявленные функции компилируются.

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

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

Function myFunc(theObject) {

   theObject.make="Toyota"

}

mycar = {make:"Honda", model:"Accord", year:1998}

x=mycar.make     // возвращает Honda

myFunc(mycar)    // передаёт объект mycar функции

y=mycar.make     // возвращает Toyota (prop было изменено функцией)

Ключевое слово this не относится к выполняемой в данный момент функции, поэтому Вы обязаны обращаться к Function-объектам по имени, даже в теле функции.

 

Доступ к аргументам функции через массив аргументов.

Вы можете обращаться к аргументам внутри функции через массив arguments. См. .

Специфицирование аргументов в конструкторе Function.

Этот код создаёт объект Function, принимающий два аргумента.

var multiply = new Function("x", "y", "return x * y")

Аргументы "x" и "y" являются именами формальных аргументов, которые используются в теле функции, "return x * y".

Вышеприведённый код присвоил функцию переменной multiply. Чтобы вызвать объект Function, Вы можете специфицировать имя переменной, как если бы это была функция, что показано в следующем примере:

var theAnswer = multiply(7,6)

var myAge = 50

if (myAge >=39) {myAge=multiply (myAge,.5)}

Присвоение функции переменной конструктором Function.

Предположим, Вы создали переменную multiply, используя конструктор Function, как показано в предыдущем разделе:

var multiply = new Function("x", "y", "return x * y")

Это аналогично объявлению следующей функции:

Function multiply(x,y) {

   return x*y

}

Присвоение значения переменной с использованием конструктора Function похоже на объявление функции оператором Function, но есть и отличия:

Если Вы присваиваете функцию переменной, используя var multiply = new Function("..."), multiply

является переменной с текущим значением - ссылкой на функцию, созданную как new Function().

Если Вы создаёте функцию, используя Function multiply() {...}, multiply

не является переменной, это имя функции.

Вложение функций.

Вы можете вкладывать одну функцию в другую. Вложенная (внутренняя) функция является private по отношению к содержащей её (внешней) функции:

Доступ ко внутренней функции может быть получен только из операторов внешней функции.

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

Следующий пример демонстрирует вложение функций:

Function addSquares (a,b) {

   Function square(x) {

      return x*x

   }

   return square(a) + square(b)

}

a=addSquares(2,3) // возвращает 13

b=addSquares(3,4) //

возвращает 25

c=addSquares(4,5) //

возвращает 41

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

Function outside(x) {

   Function inside(y) {

      return x+y

   }

   return inside

}

result=outside(3)(5) //

возвращает 8

 

Специфицирование обработчика событий объектом Function.

Следующий код присваивает функцию обработчику события   для window (весь обработчик события обязан вводиться в нижнем регистре):

window.onFocus = new Function("document.bgColor='antiquewhite'")

Если функция назначается переменной, Вы можете назначить переменную обработчику событий. Следующий код назначает функцию переменной setBGColor:

var setBGColor = new Function("document.bgColor='antiquewhite'")

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

document.form1.colorButton.onclick=setBGColor

<INPUT NAME="colorButton" TYPE="button"

   VALUE="Change background color"

   onClick="setBGColor()">

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

window.onFocus()

Обработчики событий не принимают аргументов, поэтому Вы не можете объявлять аргументы для обработчика события в конструкторе Function. Например, Вы не можете вызвать функцию multiply путём установки свойства onclick

кнопки таким образом:

document.form1.button1.onclick=multFun(5,10)

Обратная Совместимость

JavaScript 1.1 и более ранние версии.

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

Свойства. Резюме.

Свойство

Описание

Массив аргументов, передаваемых функции.

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

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

Специфицирует количество аргументов, передаваемых функции.

Специфицирует количество аргументов, ожидаемых функцией.

Специфицирует функцию, которая создаёт прототип объекта.

Специфицирует количество аргументов, ожидаемых функцией.

Позволяет добавлять свойства объекту Function.


Метод. Резюме.

Метод

Описание

Позволяет применять метод одного объекта в контексте другого объекта (вызывающего объекта).

Позволяет вызывать (выполнять) метод другого объекта в контексте другого объекта (вызывающего объекта).

Возвращает строку исходного кода функции. Переопределяет метод .

Возвращает строку исходного кода функции. Переопределяет метод .

Возвращает строку исходного кода функции. Переопределяет метод .


Примеры

Пример 1.

Эта функция возвращает строку, содержащую форматированное представление чисел с заполнением ведущими нулями.

// Эта функция возвращает строку, с заполнением ведущими нулями

Function padZeros(num, totalLen) {

   var numStr = num.toString()             // Инициализируется return-значение

                                           // как string

   var numZeros = totalLen - numStr.length // Подсчитывается количество нулей

   if (numZeros > 0) {

      for (var i = 1; i <= numZeros; i++) {

         numStr = "0" + numStr

      }

   }

   return numStr

}

Следующие операторы вызывают функцию padZeros:

result=padZeros(42,4) // возвращает "0042"

result=padZeros(42,2) //

возвращает "42"

result=padZeros(5,4)  //

возвращает "0005"

 

Пример 2.

Вы можете определить, существует ли функция, сравнивая имя функции с null. В этом примере func1

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

if (window.noFunc == null)

   func1()

else func2()

 

Пример 3.

Здесь создаются обработчики событий и для фрэйма. Этот код находится в том же файле, в котором содержится тэг FRAMESET. Обратите внимание, что это единственный способ создания обработчиков событий и для фрэйма, поскольку Вы не можете специфицировать обработчики событий в тэге FRAME.

frames[0].onFocus = new Function("document.bgColor='antiquewhite'")

frames[0].onBlur = new Function("document.bgColor='lightgrey'")

apply">


Операция function определяет анонимную функцию внутри выражения.

Реализована вJavaScript 1.5


Синтаксис

{var | const} variableName = function(parameters) {functionBody};


Описание

Следующие примеры показывают использование операции function.

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

var x = function(y) {return y*y};

Этот пример объявляет массив a как массив из трёх функций:

var a = [function(y) {return y}, function y {return y*y}, function (y) [return y*y*y}];

Для этого массива, a[0](5) возвращает 5, a[1](5) возвращает 25, a[2](5) возвращает 125.




Объявляет функцию со специфицированными параметрами. В качестве параметров принимаются строки, числа и объекты.

Реализован в

JavaScript 1.0, NES 2.0

JavaScript 1.5, NES 6.0: добавлено объявление условной функции (расширение Netscape).

Версия ECMA

ECMA-262


Синтаксис

function name([param] [, param] [..., param]) {

statements

}

Вы можете также определять функции с помощью конструктора и оператора ; см. и .


Параметры

name

Имя функции.

param

Имя аргумента, передаваемого функции. Функция может иметь не более 255 аргументов.

statements

Операторы, образующие тело функции.


Описание

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

Функция, созданная с помощью оператора function, является объектом Function и содержит все свойства, методы и поведение объектов Function. См. в  детальную информацию о функциях.

Netscape поддерживает условное объявление функций, когда функция может быть объявлена на базе вычисления некоторого условия. Если условие true, функция объявляется. Иначе - не объявляется.

Функция может быть также объявлена внутри выражения. В этом случае функция обычно анонимна.


Примеры

Этот код объявляет функцию, которая возвращает общую сумму от продаж в долларах, если задано количество проданных единиц продуктов a, b и c.

function calc_sales(units_a, units_b, units_c) {

   return units_a*79 + units_b*129 + units_c*699

}

В следующем скрипте функция one всегда объявляется. Функция zero объявляется, поскольку 'if(1)' вычисляется в true:

<SCRIPT language="JavaScript1.5">

<!--

function one()

   document.writeln("This is one.");

   if (1)

      function zero()

      {

         document.writeln("This is zero.");

      }

}

</SCRIPT>

Однако, если скрипт изменяется таким образом, что условие становится 'if (0)', функция zero не объявляется и не может быть вызвана.


См. также

, .



Где Найти Информацию о JavaScript


Документация о ядре JavaScript состоит из следующих книг:

содержит информацию о ядре языка JavaScript и его объектах.

(данная книга) содержит справочный материал о ядре языка JavaScript.

Если Вы новичок в JavaScript, начните с книги

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

DevEdge, онлайновый ресурс Netscape для разработчиков, содержит информацию, которая может быть использована Вами при работе в JavaScript. Следующие URL представляют определённый интерес:

Страница JavaScript в библиотеке DevEdge содержит документы о JavaScript. Эта страница часто изменяется. Необходимо периодически посещать её для получения свежей информации.

Библиотека DevEdge содержит документацию о многих продуктах и технологиях Netscape.

Домашняя страница DevEdge даёт доступ ко всем ресурсам DevEdge.

Mozilla.org координирует разработку Mozilla, свободно распространяемого браузера, на котором основан Netscape 6. Вы можете найти информацию о JavaScript на странице JavaScript-проекта Mozilla'ы, а также дискуссию по вопросам JavaScript в группе новостей netscape.public.mozilla.jseng.



Ядро JavaScript 1.5. Справочник


Возвращает день/число месяца в специфицированной дате в соответствии с локальным временем.

Метод из

Реализован в

JavaScript 1.0, NES 2.0Версия ECMA

ECMA-262


Синтаксис

getDate()

Параметры

Отсутствуют.


Описание

Значением, возвращаемым методом getDate, является целое число в диапазоне от 1 до 31.


Примеры

Второй оператор присваивает значение 25 переменной day, базируясь на значении Date-объекта Xmas95.

Xmas95 = new Date("December 25, 1995 23:15:00")

day = Xmas95.getDate()


См. также

, ,



Ядро JavaScript 1.5. Справочник


Возвращает день недели в специфицированной дате в соответствии с локальным временем.

Метод из Реализован в

JavaScript 1.0, NES 2.0

Версия ECMAECMA-262


Синтаксис

getDay()

Параметры

Отсутствуют.


Описание

Значение, возвращённое методом getDay, это целое число, соответствующее дню недели: 0 -воскресенье, 1 - понедельник, 2 - вторник и т.д.


Примеры

Второй оператор присваивает weekday значение 1 на базе значения Date-объекта Xmas95.

25 декабря 1995, понедельник.

Xmas95 = new Date("December 25, 1995 23:15:00")

weekday = Xmas95.getDay()

См. также

, .



Ядро JavaScript 1.5. Справочник


Возвращает год в специфицированной дате в соответствии с локальным временем.

Метод из

Реализован в

JavaScript 1.3

Версия ECMA

ECMA-262

Синтаксис
getFullYear()

Параметры

Отсутствуют.

Описание

Значение, возвращаемое методом getFullYear, это абсолютное число. Для дат в диапазоне лет от 1000 до 9999 getFullYear

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

Используйте этот метод вместо метода getYear.

Примеры

В этом примере значение из 4 цифр (текущий год) присваивается переменной yr.

var yr;
Today = new Date();

yr = Today.getFullYear();


См. также

, , .



Ядро JavaScript 1.5. Справочник


Возвращает час в специфицированной дате в соответствии с локальным временем.

Метод из

Реализован в

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262

Синтаксис
getHours()

Параметры

Отсутствуют.

Описание

Значение, возвращаемое методом getHours, это целое в диапазоне от 0 до 23.


Примеры

Второй оператор присваивает значение 23 переменной hours, базируясь на значении Date-объекта Xmas95.

Xmas95 = new Date("December 25, 1995 23:15:00")

hours = Xmas95.getHours()


См. также

, .