Содержание

Индекс Вперёд

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

На главную страницу

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

Оригинал этого справочника (на английском языке) и другие
спецификации от Netscape можно найти по адресу:
http://developer.netscape.com/docs/manuals

Перевод на русский язык выполнил Александр Пирамидин.

Ваши замечания и предложения направляйте по e-mail: a_pyramidin@yahoo.com

Эта книга является справочником по ядру языка JavaScript версии 1.5.
JavaScript это созданный Netscape платформонезависмый объектно-базирующийся язык скриптинга (сценариев). Ядро JavaScript может быть расширено за счёт дополнения его новыми объектами.

Предисловие

Новые Возможности Этой Версии

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

Версии JavaScript

Где Найти Информацию о JavaScript

Соглашения по Документам

Часть 1

Глава 1. Объекты, Методы и Свойства

Array

Boolean

Date

Function

java

JavaArray

JavaClass

JavaObject

JavaPackage

Math

netscape

Number

Object

Packages

RegExp

String

sun

Глава 2. Свойства и Функции Верхнего Уровня

decodeURI

decodeURIComponent

encodeURI

encodeURIComponent

eval

Infinity

isFinite

isNaN

NaN

Number

parseFloat

parseInt

String

undefined

Часть 2

Глава 3. Операторы

break

const

continue

do...while

export

for

for...in

function

if...else

import

label

return

switch

throw

try...catch

var

while

with

Глава 4. Комментарии

comment

Глава 5. Операции

Операции Присвоения

Операции Сравнения

Использование Операций Равенства

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

% (Modulus/целочисленный остаток)

++ (Increment/Инкремент)

-- (Decrement/Декремент)

- (Унарное Отрицание)

Побитовые Операции

Побитовые Логические Операции

Побитовые Операции Сдвига

Логические Операции

Строковые Операции

Специальные Операции

?: (Операция Проверки Условия)

, (Оператор "запятая")

delete

function

in

instanceof

new

this

typeof

void

Часть 3. LiveConn

Глава 6. Классы, Конструкторы и Методы Java

JSException

JSObject

Часть 4

Приложение A. Зарезервированные Слова

Приложение B. Не Рекомендуется Использовать

Индекс
Индекс Вперёд

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

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


Массив

Назад Вперёд

Array

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

Объект ядра
Реализован в | JavaScript 1.1, NES 2.0 JavaScript 1.3: добавлен метод toSource; изменено свойство length; изменён метод push.
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]]])

Параметры

arrayLength | Начальный размер массива. Доступ к этому значению Вы можете получить через свойство length. Если специфицированное значение - не число, создаётся массив размером 1 с первым элементом, имеющим специфицированное значение. Максимальный возможный размер массива: 4,294,967,295.
elementN | Список значений элементов массива. Если специфицирована эта форма, массив инициализируется со специфицированными значениями в качестве элементов, а свойство 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-значением RegExp.exec, String.match и String.replace.
Чтобы лучше пояснить эти свойства и элементы, просмотрите следующий код, а затем - таблицу:

<SCRIPT LANGUAGE="JavaScript1.2">
//Совпадает одно d с последующим одним или более b с последующим одним d
//Запоминаются совпавшие b с последующим d
//Регистр игнорируется

myRe=/d(b+)(d)/i;
myArray = myRe.exec("cdbBdbsbz");

</SCRIPT>

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

Свойство/Элемент | Описание | Пример
input | Свойство только для чтения, содержание которого отражает оригинальную строку, относительно которой выполняется совпадение с регулярным выражением. | cdbBdbsbz
index | Свойство только для чтения, которое является индексом с базой 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].

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

Свойство | Описание
constructor | Специфицирует функцию, создающую прототип объекта.
index | Для массива, созданного из совпадения с регулярным выражением, индекс с базой 0 места совпадения в строке.
input | Для массива, созданного из совпадения с регулярным выражением, отражает оригинальную строку, относительно которой выполнялся поиск совпадений с регулярным выражением.
length | Количество элементов в массиве.
prototype | Позволяет добавлять свойства ко всем объектам.

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

Метод | Описание
concat | Объединяет два массива и возвращает новый массив.
join | Объединяет все элементы массива в строку.
pop | Удаляет последний элемент массива и возвращает этот элемент.
push | Добавляет один или более элементов в конец массива и возвращает новый размер массива.
reverse | Переворачивает элементы массива: первый элемент становится последним, а последний элемент - первым.
shift | Удаляет первый элемент массива и возвращает этот элемент.
slice | Извлекает раздел массива и возвращает новый массив.
splice | Добавляет и/или удаляет элементы массива.
sort | Сортирует элементы массива.
toSource | Возвращает литерал массива, представляющий специфицированный массив; Вы можете использовать это значение для создания нового массива. Переопределяет метод Object.toSource.
toString | Возвращает строку, представляющую массив и его элементы. Переопределяет метод Object.toString.
unshift | Добавляет один или более элементов впереди массива и возвращает новый размер массива.
valueOf | Возвращает примитивное значение массива. Переопределяет метод Object.valueOf.

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

Примеры

Пример 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];

concat

Объединяет два массива и возвращает новый массив.
Чей метод | Array
Реализован в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA-262

Синтаксис

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

Параметры

arrayName2...
arrayNameN

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

Описание

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

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

  • Строки и числа (не объекты String и Number): 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]

constructor

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

Свойство из | Array
Реализовано в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Описание

См. Object.constructor.

index

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

Свойство из | Array
Static
Реализовано в | JavaScript 1.2, NES 3.0

input

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

Свойство из | Array
Static
Реализовано в | JavaScript 1.2, NES 3.0

join

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

Метод из | Array
Реализован в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Синтаксис

join(separator)

Параметры

separator

Специфицирует строку для отделения каждого элемента массива. Сепаратор конвертируется в строку, если необходимо. Если отсутствует, элементы массива разделяются запятыми.

Описание

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

Примеры

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

a = new Array("Wind","Rain","Fire")
myVar1=a.join()      // присваивает "Wind,Rain,Fire" переменной myVar1
myVar2=a.join(", ")  // присваивает "Wind, Rain, Fire" переменной myVar1
myVar3=a.join(" + ") // присваивает "Wind + Rain + Fire" переменной myVar1

См. также

Array.reverse

length

Беззнаковое 32-битное целое, специфицирующее количество элементов массива.

Свойство из | Array
Реализовано в | JavaScript 1.1, NES 2.0 JavaScript 1.3: length это беззнаковое 32-битное целое число со значением меньше 232.
Версия ECMA | ECMA-262

Описание

Значением свойства length является целое положительное число, меньшее, чем 2 в 32 степени (232).

Вы можете установить свойство length для усечения массива в любой момент. Если Вы увеличиваете массив путём изменения его свойства length, реальное количество элементов не увеличивается; например, если Вы установите length в 3, когда текущее значение 2, массив будет по прежнему содержать 2 элемента.

Примеры

В этом примере функция getChoice использует свойство length для итерации по всем элементам массива musicType. musicType это элемент select в форме musicForm.

function getChoice() {
   for (var i = 0; i < document.musicForm.musicType.length; i++) {
      if (document.musicForm.musicType.options[i].selected == true) {
         return document.musicForm.musicType.options[i].text
      }
   }
}

В этом примере массив statesUS укорачивается до размера 50, если его текущий размер больше, чем 50.

if (statesUS.length > 50) {
   statesUS.length=50
}

pop

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

Метод из | Array
Реализован в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA-262 Edition 3

Синтаксис

pop()

Параметры

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

Пример

Следующий код создаёт массив myFish, содержащий 4 элемента, затем удаляет последний элемент.

myFish = ["angel", "clown", "mandarin", "surgeon"];
popped = myFish.pop();

См. также

push, shift, unshift

prototype

Представляет прототип для данного класса. Вы можете использовать прототип для добавления свойств и методов во все экземпляры класса. О прототипах см. Function.prototype.

Свойство из | Array
Реализовано в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

push

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

Метод из | Array
Реализован в | JavaScript 1.2, NES 3.0 JavaScript 1.3: push возвращает новый размер массива до того, как последний элемент будет добавлен к массиву.
Версия ECMA | ECMA-262 Edition 3

Синтаксис

push(element1, ..., elementN)

Параметр

element1, ...,
elementN

Элементы, добавляемые в конец массива.

Описание

Поведение метода push аналогично поведению функции push из Perl 4. Обратите внимание, что оно отличается от поведения в Perl 5.

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

JavaScript 1.2.

Метод push возвращает последний элемент, добавленный к массиву.

Пример

Следующий код создаёт массив myFish, содержащий два элемента, затем добавляет к нему ещё два элемента. После выполнения кода, pushed содержит 4. (В JavaScript 1.2 pushed после выполнения кода содержит "lion".)

myFish = ["angel", "clown"];
pushed = myFish.push("drum", "lion");

См. также

pop, shift, unshift

reverse

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

Метод из | Array
Реализован в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Синтаксис

reverse()

Параметры

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

Описание

Метод reverse переворачивает элементы вызывающего объекта массива.

Примеры

Создаётся массив myArray, содержащиё три элемента, затем массив переворачивается.

myArray = new Array("one", "two", "three")
myArray.reverse()

Этот код изменяет массив myArray так, что:

  • myArray[0] становится "three"

  • myArray[1] становится "two"

  • myArray[2] становится "one"

См. также

Array.join, Array.sort

shift

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

Метод из | Array
Реализован в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA-262 Edition 3

Синтаксис

shift()

Параметры

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

Пример

Следующий код отображает массив myFish до и после удаления первого элемента. Он также отображает удалённый элемент:

myFish = ["angel", "clown", "mandarin", "surgeon"];
document.writeln("myFish before: " + myFish);
shifted = myFish.shift();
document.writeln("myFish after: " + myFish);
document.writeln("Удалён этот элемент: " + shifted);

На выходе будет:

myFish before: ["angel", "clown", "mandarin", "surgeon"]
myFish after: ["clown", "mandarin", "surgeon"]
Удалён этот элемент: angel

См. также

pop, push, unshift

slice

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

Метод из | Array
Реализован в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA-262 Edition 3

Синтаксис

slice(begin[,end])

Параметры

begin

Индекс с базой 0, с которого начинается извлечение.

end

Индекс с базой 0, на котором заканчивается извлечение:

  • slice извлекает до end (не включительно).
    slice(1,4) извлекает элементы со второго по третий включительно (элементы, индексированные 1, 2 и 3).

  • Если индекс отрицательный, end указывает смещение от конца последовательности. slice(2,-1) извлекает элементы с 3 по первый включительно в конце последовательности.

  • Если end опущен, slice извлекает до конца последовательности.

Описание

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

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

  • Для строк и чисел (не для объектов String и Number), slice копирует строки и числа в новый массив. Изменения строки или числа в одном массиве не оказывают влияния на другой массив.

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

Примеры

В следующем примере slice создаёт новый массив newCar из myCar. Оба содержат ссылку на объект myHonda. Если цвет myHonda изменяется на purple, оба массива отражают изменение.

<SCRIPT LANGUAGE="JavaScript1.2">

//Используя slice, создать newCar из myCar.
myHonda = {color:"red",wheels:4,engine:{cylinders:4,size:2.2}}
myCar = [myHonda, 2, "cherry condition", "purchased 1997"]
newCar = myCar.slice(0,2)

//Записать значения из myCar, newCar и цвет myHonda,
// на который имеются ссылки в обоих массивах.
document.write("myCar = " + myCar + "<BR>")
document.write("newCar = " + newCar + "<BR>")
document.write("myCar[0].color = " + myCar[0].color + "<BR>")
document.write("newCar[0].color = " + newCar[0].color + "<BR><BR>")

//Изменить цвет  myHonda.
myHonda.color = "purple"
document.write("The new color of my Honda is " + myHonda.color + "<BR><BR>")

//Записать цвет myHonda, на который ссылаются оба массива.
document.write("myCar[0].color = " + myCar[0].color + "<BR>")
document.write("newCar[0].color = " + newCar[0].color + "<BR>")

</SCRIPT>

Скрипт записывает:

myCar = [{color:"red", wheels:4, engine:{cylinders:4, size:2.2}}, 2,
   "cherry condition", "purchased 1997"]
newCar = [{color:"red", wheels:4, engine:{cylinders:4, size:2.2}}, 2]
myCar[0].color = red newCar[0].color = red
The new color of my Honda is purple
myCar[0].color = purple
newCar[0].color = purple

sort

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

Метод из | Array
Реализован в | JavaScript 1.1, NES 2.0 JavaScript 1.2: модифицировано поведение.
Версия ECMA | ECMA-262

Синтаксис

sort(compareFunction)

Параметры

compareFunction

Специфицирует функцию, которая определяет порядок сортировки. Если опущен, массив сортируется лексикографически (в словарном порядке) в соответствии с конверсией в строку каждого элемента.

Описание

Если compareFunction не предоставляется, элементы сортируются путём конвертирования их в строки и сравнения строк в лексикографическом порядке ("словарь" или "телефонная книга," не числовой порядок). Например, "80" встанет перед "9" в лексикографическом порядке, но при числовой сортировке 9 встанет перед 80.

Если compareFunction предоставляется, массив элементов сортируется в соответствии с return-значением функции сравнения. Если a и b это два сравниваемых элемента, тогда:

  • Если compareFunction(a, b) меньше 0, сортирует от b к a меньший индекс, чем a.

  • Если compareFunction(a, b) возвращает 0, оставляет a и b без изменений друг относительно друга, но сортирует с учётом всех отличающихся элементов.

  • Если compareFunction(a, b) больше 0, сортирует от b к a больший индекс, чем a.

Итак, функция compare имеет следующую форму:

function compare(a, b) {
   if (a меньше, чем b, по некоторому критерию сортировки)
      return -1
   if (a больше, чем b, по некоторому критерию сортировки)
      return 1
   // a обязано быть равно b
   return 0
}

Чтобы сравнить числа вместо строк, функция compare может просто вычесть b из a:

function compareNumbers(a, b) {
   return a - b
}

JavaScript использует стабильную сортировку: индекс взаимного расположения a и b не изменяется, если a и b равны. Если индекс a меньше, чем индекс b перед началом сортировки, он останется таким и после сортировки, независимо от того, как переместятся a и b после сортировки.

Поведение метода sort отличается в JavaScript 1.1 и в JavaScript 1.2.

В JavaScript 1.1, на некоторых платформах, метод sort не работает. Этот метод работает на всех платформах в JavaScript 1.2.

В JavaScript 1.2, этот метод больше не конвертирует undefined-элементы в null; вместо этого он сортирует их до самого конца массива. Например, предположим, имеется скрипт:

<SCRIPT>
a = new Array();
a[0] = "Ant";
a[5] = "Zebra";

function writeArray(x) {
   for (i = 0; i < x.length; i++) {
      document.write(x[i]);
      if (i < x.length-1) document.write(", ");
   }
}

writeArray(a);
a.sort();
document.write("<BR><BR>");
writeArray(a);
</SCRIPT>

В JavaScript 1.1 печатается:

ant, null, null, null, null, zebra
ant, null, null, null, null, zebra

В JavaScript 1.2 печатается:

ant, undefined, undefined, undefined, undefined, zebra
ant, zebra, undefined, undefined, undefined, undefined

Примеры

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

<SCRIPT>
stringArray = new Array("Blue","Humpback","Beluga")
numericStringArray = new Array("80","9","700")
numberArray = new Array(40,1,5,200)
mixedNumericArray = new Array("80","9","700",40,1,5,200)

function compareNumbers(a, b) {
   return a - b
}

document.write("<B>stringArray:</B> " + stringArray.join() +"<BR>")
document.write("<B>Sorted:</B> " + stringArray.sort() +"<P>")

document.write("<B>numberArray:</B> " + numberArray.join() +"<BR>")
document.write("<B>Sorted without a compare function:</B> " + numberArray.sort() +"<BR>")
document.write("<B>Sorted with compareNumbers:</B> " + numberArray.sort(compareNumbers) +"<P>")

document.write("<B>numericStringArray:</B> " + numericStringArray.join() +"<BR>")
document.write("<B>Sorted without a compare function:</B> " + numericStringArray.sort() +"<BR>")
document.write("<B>Sorted with compareNumbers:</B> " + numericStringArray.sort(compareNumbers) +"<P>")

document.write("<B>mixedNumericArray:</B> " + mixedNumericArray.join() +"<BR>")
document.write("<B>Sorted without a compare function:</B> " + mixedNumericArray.sort() +"<BR>")
document.write("<B>Sorted with compareNumbers:</B> " + mixedNumericArray.sort(compareNumbers) +"<BR>")
</SCRIPT>

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

stringArray: Blue,Humpback,Beluga
Sorted: Beluga,Blue,Humpback

numberArray: 40,1,5,200
Sorted without a compare function: 1,200,40,5
Sorted with compareNumbers: 1,5,40,200

numericStringArray: 80,9,700
Sorted without a compare function: 700,80,9
Sorted with compareNumbers: 9,80,700

mixedNumericArray: 80,9,700,40,1,5,200
Sorted without a compare function: 1,200,40,5,700,80,9
Sorted with compareNumbers: 1,5,9,40,80,200,700

См. также

Array.join, Array.reverse

splice

Изменяет содержимое массива, добавляя новые элементы и удаляя старые.

Метод из | Array
Реализован в | JavaScript 1.2, NES 3.0 JavaScript 1.3: возвращает массив, содержащий удалённые элементы.
Версия ECMA | ECMA-262 Edition 3

Синтаксис

splice(index, howMany, [element1][, ..., elementN])

Параметры

index

Индекс, с которого начинается изменение массива.

howMany

Целое число, обозначающее количество удаляемых старых элементов массива. Если howMany равно 0, никакие элементы не удаляются. В этом случае Вы должны специфицировать как минимум один новый элемент.

element1, ...,
elementN

Элементы, добавляемые к массиву. Если Вы не специфицировали никаких новых элементов, splice только удаляет элементы из массива.

Описание

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

Метод splice возвращает массив, содержащий удалённые элементы. Если удалён только один элемент, возвращается массив из одного элемента.

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

JavaScript 1.2.

Метод splice возвращает удалённый элемент, если удаляется только один элемент (параметр howMany равен 1); иначе метод возвращает массив, содержащий удалённые элементы.

Примеры

Следующий скрипт иллюстрирует использование splice:

<SCRIPT LANGUAGE="JavaScript1.2">

myFish = ["angel", "clown", "mandarin", "surgeon"];
document.writeln("myFish: " + myFish + "<BR>");

removed = myFish.splice(2, 0, "drum");
document.writeln("После добавления 1: " + myFish);
document.writeln("удалён: " + removed + "<BR>");

removed = myFish.splice(3, 1)
document.writeln("После удаления 1: " + myFish);
document.writeln("удалён: " + removed + "<BR>");

removed = myFish.splice(2, 1, "trumpet")
document.writeln("После замещения 1: " + myFish);
document.writeln("удалён: " + removed + "<BR>");

removed = myFish.splice(0, 2, "parrot", "anemone", "blue")
document.writeln("После замещения 2: " + myFish);
document.writeln("удалён: " + removed);

</SCRIPT>

Этот скрипт выводит:

myFish: ["angel", "clown", "mandarin", "surgeon"]

После добавления 1: ["angel", "clown", "drum", "mandarin", "surgeon"]
 удалён: undefined

После удаления 1: ["angel", "clown", "drum", "surgeon"]
 удалён: mandarin

После замещения 1: ["angel", "clown", "trumpet", "surgeon"]
удалён: drum

После замещения 2: ["parrot", "anemone", "blue", "trumpet", "surgeon"]
 удалён: ["angel", "clown"]

toSource

Возвращает строку исходного кода массива.

Метод из | Array
Реализован в | JavaScript 1.3

Синтаксис

toSource()

Параметры

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

Описание

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

  • Для встроенного объекта Array метод toSource возвращает следующие строки, обозначающие недоступность исходного кода:

       function Array() {
          [native code]
       }

  • Для Array-экземпляров toSource возвращает строку исходного кода.

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

Примеры

Чтобы проверить исходный код массива:

alpha = new Array("a", "b", "c")
alpha.toSource() //возвращает ["a", "b", "c"]

См. также

Array.toString

toString

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

Метод из | Array
Реализован в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Синтаксис

toString()

Параметры

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

Описание

Объект Array переопределяет метод toString из Object. Для объектов Array метод toString объединяет массив и возвращает одну строку, содержащую все элементы массива, разделённые запятыми. Например, следующий код создаёт массив и использует toString для конвертации массива в строку.

var monthNames = new Array("Jan","Feb","Mar","Apr")
myVar=monthNames.toString() // присваивает "Jan,Feb,Mar,Apr" переменной myVar

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

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

JavaScript 1.2.

Если Вы специфицируете LANGUAGE="JavaScript1.2" в тэге <SCRIPT>, toString возвращает строку, представляющую исходный код массива. Это то же самое значение, что и значение, возвращаемое методом toSource в JavaScript 1.3 и более поздних версиях.

<SCRIPT LANGUAGE="JavaScript1.2">
var monthNames = new Array("Jan","Feb","Mar","Apr")
myVar=monthNames.toString() // присваивает '["Jan", "Feb", "Mar", "Apr"]'
//
переменной myVar
</SCRIPT>

См. также

Array.toSource

unshift

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

Метод из | Array
Реализован в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA-262 Edition 3

Синтаксис

arrayName.unshift(element1,..., elementN)

Параметры

element1,...,
elementN

Элементы, добавляемые в начало массива.

Пример

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

myFish = ["angel", "clown"];
document.writeln("myFish до: " + myFish);
unshifted = myFish.unshift("drum", "lion");
document.writeln("myFish после: " + myFish);
document.writeln("Новый размер: " + unshifted);

Вывод будет таким:

myFish до: ["angel", "clown"]
myFish после: ["drum", "lion", "angel", "clown"]
 Новый размер: 4

См. также

pop, push, shift

valueOf

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

Метод из | Array
Реализован в | JavaScript 1.1
Версия ECMA | ECMA-262

Синтаксис

valueOf()

Параметры

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

Описание

Объект Array наследует метод valueOf из Object. Метод valueOf из Array возвращает примитивное значение массива или примитивное значение его элементов таким образом:

Тип объекта элемента | Тип данных возвращаемого значения
Boolean | Boolean
Number или Date | number
Все остальные | string

Этот метод обычно вызывается внутренне в JavaScript, а не явно в коде.

См. также

Object.valueOf

Назад Вперёд

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


Boolean

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

Объект ядра |
Реализован в | JavaScript 1.1, NES 2.0 JavaScript 1.3: добавлен метод toSource.
Версия 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-примитива.

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

Свойство | Описание
constructor | Специфицирует функцию, которая создаёт прототип объекта.
prototype | Определяет свойство, которое совместно используется объектами Boolean.

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

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

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

Примеры

Следующий пример создаёт объекты 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")

constructor

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

Свойство из | Boolean
Реализовано в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Описание

См. Object.constructor.

prototype

Представляет прототип данного класса. Вы можете использовать этот прототип для добавления свойств или методов во все экземпляры класса. О прототипах см. Function.prototype.

Свойство из | Boolean
Реализовано в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

toSource

Возвращает строку исходного кода объекта.

Метод из | Boolean
Реализован в | JavaScript 1.3

Синтаксис

toSource()

Параметры

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

Описание

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

  • Для встроенного объекта Boolean метод toSource возвращает следующие строки, указывающие, что исходный код недоступен:

       function Boolean() {
          [native code]
       }

  • Для Boolean-экземпляров toSource возвращает строку исходного кода.

Этот метод обычно вызывается JavaScript внутренне, а не явно в коде.

См. также

Object.toSource

toString

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

Метод из | Boolean
Реализован в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Синтаксис

toString()

Параметры

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

Описание

Объект Boolean переопределяет метод toString объекта Object; он не наследует Object.toString. Для Boolean-объектов метод toString возвращает строковое представление объекта.

JavaScript вызывает метод toString автоматически, если Boolean представлен как текстовое значение или если на Boolean имеется ссылка при конкатенации строк.

Для Boolean объектов и значений встроенный метод toString возвращает строку "true" или "false", в зависимости от значения булева объекта. В следующем коде flag.toString возвращает "true".

var flag = new Boolean(true)
var myVar=flag.toString()

См. также

Object.toString

valueOf

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

Метод из | Boolean
Реализован в | JavaScript 1.1
Версия ECMA | ECMA-262

Синтаксис

valueOf()

Параметры

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

Описание

Метод valueOf в Boolean возвращает примитивное значение Boolean-объекта или литеральный Boolean как тип данных Boolean.

Этот метод обычно вызывается внутренне в JavaScript, а не явно в коде.

Примеры

x = new Boolean();
myVar=x.valueOf()   //присваивает false переменной myVar

См. также

Object.valueOf

Назад Вперёд

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


Классы, Конструкторы и Методы Java

Глава 6 Классы, Конструкторы и Методы Java

Эта глава документирует Java-классы, используемые для LiveConnect, и их конструкторы и методы.
Имеется алфавитная ссылка на классы, которая даёт доступ Java-объектам к коду скриптов JavaScript.

Эта ссылка организована так:

Полные вхождения для каждого класса появляются в алфавитном порядке.

Таблицы, включённые в описание каждого класса, суммирую конструкторы и методы класса.

Полные вхождения для конструкторов и методов класса появляются в алфавитном порядке после вхождения класса.

Назад Вперёд

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


Глава 4

Комментарии

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

comment

Авторское описание действий, выполняемых кодом. Комментарии игнорируются интерпретатором.
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Синтаксис

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

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

Описание

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

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

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

Примеры

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

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

Назад Вперёд

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


Данные

Date

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

Объект ядра
Реализован в | JavaScript 1.0, NES 2.0 JavaScript 1.1: добавлено свойство prototype. JavaScript 1.3: убрана зависимость от платформы, чтобы дать универсальное поведение на всех платформах; добавлен параметр ms_num в конструктор Date; добавлены методы getFullYear, setFullYear, getMilliseconds, setMilliseconds, toSource и UTC-методы (такие как getUTCDate и setUTCDate).
Версия 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

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

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 меняется, в зависимости от платформы.

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

Свойство | Описание
constructor | Специфицирует функцию, создающую прототип объекта.
prototype | Позволяет добавлять свойства к объекту Date.

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

Метод | Описание
getDate | Возвращает день месяца для специфицированной даты в соответствии с локальным временем.
getDay | Возвращает день недели для специфицированной даты в соответствии с локальным временем.
getFullYear | Возвращает year/год для специфицированной даты в соответствии с локальным временем.
getHours | Возвращает hour/час для специфицированной даты в соответствии с локальным временем.
getMilliseconds | Возвращает milliseconds/миллисекунды для специфицированной даты в соответствии с локальным временем.
getMinute | Возвращает minutes/минуты для специфицированной даты в соответствии с локальным временем.
getMonth | Возвращает month/месяц для специфицированной даты в соответствии с локальным временем.
getSeconds | Возвращает seconds/секунды для специфицированной даты в соответствии с локальным временем.
getTime | Возвращает числовое значение, соответствующе времени для специфицированной даты в соответствии с локальным временем.
getTimezoneOffset | Возвращает смещение часового пояса в минутах для данной местности.
getUTCDate | Возвращает день (число) месяца в специфицированной дате в соответствии с универсальным временем.
getUTCDay | Возвращает день недели в специфицированной дате в соответствии с универсальным временем.
getUTCFullYear | Возвращает год в специфицированной дате в соответствии с универсальным временем.
getUTCHours | Возвращает часы в специфицированной дате в соответствии с универсальным временем.
getUTCMilliseconds | Возвращает миллисекунды в специфицированной дате в соответствии с универсальным временем.
getUTCMinutes | Возвращает минуты в специфицированной дате в соответствии с универсальным временем.
getUTCMonth | Возвращает месяц в специфицированной дате в соответствии с универсальным временем.
getUTCSeconds | Возвращает секунды в специфицированной дате в соответствии с универсальным временем.
getYear | Возвращает год в специфицированной дате в соответствии с местным временем.
parse | Возвращает количество миллисекунд, прошедших до данной даты после 2 января 1970 года, 00:00:00 местного времени.
setDate | Устанавливает число/день месяца в специфицированной дате в соответствии с местным временем.
setFullYear | Устанавливает полный год в специфицированной дате в соответствии с местным временем.
setHours | Устанавливает часы в специфицированной дате в соответствии с местным временем.
setMilliseconds | Устанавливает миллисекунды в специфицированной дате в соответствии с местным временем.
setMinutes | Устанавливает минуты в специфицированной дате в соответствии с местным временем.
setMonth | Устанавливает месяц в специфицированной дате в соответствии с местным временем.
setSeconds | Устанавливает секунды в специфицированной дате в соответствии с местным временем.
setTime | Устанавливает значение объекта Date в соответствии с местным временем.
setUTCDate | Устанавливает число/день месяца в специфицированной дате в соответствии с универсальным временем.
setUTCFullYear | Устанавливает полный год в специфицированной дате в соответствии с универсальным временем.
setUTCHour | Устанавливает часы в специфицированной дате в соответствии с универсальным временем.
setUTCMilliseconds | Устанавливает миллисекунды в специфицированной дате в соответствии с универсальным временем.
setUTCMinutes | Устанавливает минуты в специфицированной дате в соответствии с универсальным временем.
setUTCMonth | Устанавливает месяц в специфицированной дате в соответствии с универсальным временем.
setUTCSeconds | Устанавливает секунды в специфицированной дате в соответствии с универсальным временем.
setYear | Устанавливает год в специфицированной дате в соответствии с локальным временем.
toGMTString | Конвертирует дату в строку, используя соглашения Internet GMT.
toLocaleString | Конвертирует дату в строку, используя соглашения по текущему времени.
toSource | Возвращает литерал объекта, представляющий специфицированный объект Date; Вы можете использовать это значение для создания нового объекта. Переопределяет метод Object.toSource.
toString | Возвращает строку, представляющую специфицированный объект Date. Переопределяет метод Object.toString.
toUTCString | Конвертирует дату в строку, используя соглашение по универсальному времени.
UTC | Возвращает количество миллисекунд в объекте Date, прошедших после 1 января 1970 года, 00:00:00 универсального времени.
valueOf | Возвращает примитивное значение объекта Date. Переопределяет метод Object.valueOf.

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

Примеры

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

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)

constructor

Специфицирует функцию, которая создаёт прототип объекта. Обратите внимание, что значением этого свойства является ссылка на функцию, а не строка, содержащая имя функции.
Свойство из | Date
Реализовано в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Описание

См. Object.constructor.

getDate

Возвращает день/число месяца в специфицированной дате в соответствии с локальным временем.
Метод из | Date
Реализован в | 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()

См. также

Date.getUTCDate, Date.getUTCDay, Date.setDate

getDay

Возвращает день недели в специфицированной дате в соответствии с локальным временем.
Метод из | Date
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Синтаксис
getDay()

Параметры

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

Описание

Значение, возвращённое методом getDay, это целое число, соответствующее дню недели: 0 -воскресенье, 1 - понедельник, 2 - вторник и т.д.

Примеры

Второй оператор присваивает weekday значение 1 на базе значения Date-объекта Xmas95.
25 декабря 1995, понедельник.

Xmas95 = new Date("December 25, 1995 23:15:00")
weekday = Xmas95.getDay()

См. также

Date.getUTCDay, Date.setDate.

getFullYear

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

Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
getFullYear()

Параметры

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

Описание

Значение, возвращаемое методом getFullYear, это абсолютное число. Для дат в диапазоне лет от 1000 до 9999 getFullYear возвращает число из четырёх цифр, например, 1995. Используйте эту функцию, чтобы иметь гарантию того, что год будет соответствовать формату лет после 2000 года.

Используйте этот метод вместо метода getYear.

Примеры

В этом примере значение из 4 цифр (текущий год) присваивается переменной yr.

var yr;
Today = new Date();
yr = Today.getFullYear();

См. также

Date.getYear, Date.getUTCFullYear, Date.setFullYear.

getHours

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

Метод из | Date
Реализован в | 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()

См. также

Date.getUTCHours, Date.setHours.

getMilliseconds

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

Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
getMilliseconds()

Параметры

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

Описание

getMilliseconds возвращает значение - число в диапазоне от 0 до 999.

Примеры

Следующий пример присваивает миллисекундную часть текущего времени переменной ms.

var ms;
Today = new Date();
ms = Today.getMilliseconds();

См. также

Date.getUTCMilliseconds, Date.setMilliseconds.

getMinutes

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

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

Синтаксис
getMinutes()

Параметры

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

Описание

getMinutes возвращает значение - целое в диапазоне от 0 до 59.

Примеры

Второй оператор присваивает 15 переменной minutes, базируясь на значении Date-объекта Xmas95.

Xmas95 = new Date("December 25, 1995 23:15:00")
minutes = Xmas95.getMinutes()

См. также

Date.getUTCMinutes, Date.setMinutes.

getMonth

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

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

Синтаксис
getMonth()

Параметры

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

Описание

getMonth возвращает значение - целое в диапазоне от 0 до 11.
0 соответствует January/январю, 1 - February/февралю, и так далее.

Примеры

Второй оператор присваивает 11 переменной month, базируясь на значении Date-объекта Xmas95.

Xmas95 = new Date("December 25, 1995 23:15:00")
month = Xmas95.getMonth()

См. также

Date.getUTCMonth, Date.setMonth.

getSeconds

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

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

Синтаксис
getSeconds()

Параметры

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

Описание

getSeconds возвращает значение - целое в диапазоне от 0 до 59.

Примеры

Второй оператор присваивает значение 30 переменной secs, базируясь на значении Date-объекта Xmas95.

Xmas95 = new Date("December 25, 1995 23:15:30")
secs = Xmas95.getSeconds()

См. также

Date.getUTCSeconds, Date.setSeconds.

getTime

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

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

Синтаксис
getTime()

Параметры

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

Описание

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

Примеры

В этом примере значение даты theBigDay присваивается sameAsBigDay:

theBigDay = new Date("July 1, 1999")
sameAsBigDay = new Date()
sameAsBigDay.setTime(theBigDay.getTime())

См. также

Date.getUTCHours, Date.setTime.

getTimezoneOffset

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

Синтаксис
getTimezoneOffset()

Параметры

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

Описание

Смещение часового пояса это разница между местным временем и Greenwich Mean Time (GMT)/временем по Гринвичу. Переход на летнее время не даёт этому значению быть постоянным.

Примеры
x = new Date()
currentTimeZoneOffsetInHours = x.getTimezoneOffset()/60

getUTCDate

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

Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
getUTCDate()

Параметры

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

Описание

getUTCDate возвращает целое в диапазоне от 1 до 31.

Примеры

В этом примере часть дня из текущей даты присваивается переменной d.

var d;
Today = new Date();
d = Today.getUTCDate();

См. также

Date.getDate, Date.getUTCDay, Date.setUTCDate.

getUTCDay

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

Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
getUTCDay()

Параметры

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

Описание

getUTCDay возвращает целое, соответствующее дню недели: 0 - воскресенье, 1 - понедельник, 2 - вторник, и так далее.

Примеры

В этом примере часть дня недели текущей даты присваивается переменной ms.

var weekday;
Today = new Date()
weekday = Today.getUTCDay()

См. также

Date.getDay, Date.getUTCDate, Date.setUTCDate.

getUTCFullYear

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

Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
getUTCFullYear()

Параметры

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

Описание

getUTCFullYear возвращает абсолютное число, совместимое с year-2000, например, 1995.

Примеры

В этом примере значение из 4 цифр, текущий год, присваивается переменной yr.

var yr;
Today = new Date();
yr = Today.getUTCFullYear();

См. также

Date.getFullYear, Date.setFullYear.

getUTCHours

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

Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
getUTCHours()

Параметры

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

Описание

getUTCHours возвращает целое в диапазоне от 0 до 23.

Примеры

В примере часть "часы" текущего времени присваивается переменной hrs.

var hrs;
Today = new Date();
hrs = Today.getUTCHours();

См. также

Date.getHours , Date.setUTCHours.

getUTCMilliseconds

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

Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
getUTCMilliSeconds()

Параметры

Отсутствует.

Описание

getUTCMilliseconds возвращает целое в диапазоне от 0 до 999.

Примеры

В этом примере часть миллисекунд текущего времени присваивается переменной ms.

var ms;
Today = new Date();
ms = Today.getUTCMilliseconds();

См. также

Date.getMilliseconds, Date.setUTCMilliseconds.

getUTCMinutes

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

Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
getUTCMinutes()

Параметры

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

Описание

getUTCMinutes возвращает целое в диапазоне от 0 до 59.

Примеры

В примере часть "минуты" текущего времени присваивается переменной min.

var min;
Today = new Date();
min = Today.getUTCMinutes();

См. также

Date.getMinutes, Date.setUTCMinutes.

getUTCMonth

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

Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
getUTCMonth()

Параметры

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

Описание

getUTCMonth возвращает целое число в диапазоне от 0 до 11, соответствующее месяцу. 0 - январь, 1 - ; февраль, 2 - март, и так далее.

Примеры

В этом примере часть "месяц" текущей даты присваивается переменной mon.

var mon;
Today = new Date();
mon = Today.getUTCMonth();

См. также

Date.getMonth, Date.setUTCMonth.

getUTCSeconds

Возвращает секунды в специфицированной дате в соответствии с универсальным временем.
Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
getUTCSeconds()

Параметры

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

Описание

getUTCSeconds возвращает целое в диапазоне от 0 до 59.

Примеры

В этом примере часть "секунды" текущего времени присваивается переменной sec.

var sec;
Today = new Date();
sec = Today.getUTCSeconds();

См. также

Date.getSeconds, Date.setUTCSeconds.

getYear

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

Метод из | Date
Реализован в | JavaScript 1.0, NES 2.0 JavaScript 1.3: не рекомендуется использовать; getYear возвращает год минус 1900 независимо от специфицированного года.
Версия ECMA | ECMA-262

Синтаксис
getYear()

Параметры

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

Описание

getYear больше не используется и заменён методом getFullYear.

Метод getYear возвращает год минус 1900; таким образом:

  • Для лет больше 2000, возвращаемое методом getYear значение будет 100 или больше. Например, если это 2026 год, getYear вернёт 126.

  • Для лет от 1900 до 1999 включительно, getYear вернёт значение от 0 до 99. Например, если это 1976 год, getYear возвращает 76.

  • Для лет меньше 1900 или больше 1999, getYear возвращает значение меньше нуля 0. Например, если это 1800 год, getYear возвращает - 100.

Чтобы использовать годы до и после 2000, Вы должны использовать Date.getFullYear вместо getYear, чтобы год был полностью специфицирован.

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

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

Метод getYear возвращает 2-х или 4-значный год:

  • Для лет между 1900 и 1999 включительно, getYear возвращает год минус 1900. Например, если это 1976 год, возвращается 76.

  • Для лет меньше 1900 или больше 1999, getYear возвращает 4-значное число - год. Например, если это 1856 год, возвращается значение 1856. Если это 2026 год, возвращается 2026.

Примеры

Пример 1.

Второй оператор присваивает значение 95 переменной year.

Xmas = new Date("December 25, 1995 23:15:00")
year = Xmas.getYear() // возвращает 95

Пример 2.

Второй оператор присваивает 100 переменной year.

Xmas = new Date("December 25, 2000 23:15:00")
year = Xmas.getYear() // возвращает 100

Пример 3.

Второй оператор присваивает -100 переменной year.

Xmas = new Date("December 25, 1800 23:15:00")
year = Xmas.getYear() // возвращает -100

Пример 4.

Второй оператор присваивает 95 переменной year, представляя 1995 год.

Xmas.setYear(95)
year = Xmas.getYear() // возвращает 95

См. также

Date.getFullYear, Date.getUTCFullYear, Date.setYear.

parse

Возвращает количество миллисекунд, прошедшее с 1 января 1970 года, 00:00:00 местного времени.
Метод из | Date
Static
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Синтаксис
Date.parse(dateString)

Параметры
dateString

Строка, представляющая дату.

Описание

Метод parse принимает строку с датой (например, "Dec 25, 1995") и возвращает количество миллисекунд, прошедшее после 1 января 1970 год, 00:00:00 (местного времени). Эта функция используется для установки значений даты на базе строковых значений, например, в соединении с методом setTime Date-объектом.

Для заданной строки, представляющей время, parse возвращает значение времени. Он принимает стандартный синтаксис времени IETF: "Mon, 25 Dec 1995 13:30:00 GMT". Он понимает континентальные сокращения часовых поясов США, но, для общего использования, употребляйте смещение часового пояса, например, "Mon, 25 Dec 1995 13:30:00 GMT+0430" (4 часа, 30 минут к западу от Greenwich-меридиана). Если Вы не специфицируете часовой пояс, принимается местное/локальное время. GMT и UTC рассматриваются как эквиваленты.

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

Примеры

Если IPOdate является существующим Date-объектом, Вы можете установить его в 9 августа 1995 года так:

IPOdate.setTime(Date.parse("Aug 9, 1995"))

См. также

Date.UTC.

prototype

Представляет прототип для данного класса. Вы можете использовать прототип для добавления свойств и методов всем экземплярам класса. о прототипах см. Function.prototype.
Свойство из | Date
Реализовано в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

setDate

Устанавливает число день/месяца в специфицированной дате в соответствии с локальным временем.
Метод из | Date
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Синтаксис
setDate(dayValue)

Параметры

dayValue

Целое от 1 до 31 - число месяца.

Примеры

Второй оператор изменяет день для theBigDay на July 24.

theBigDay = new Date("July 27, 1962 23:30:00")
theBigDay.setDate(24)

См. также

Date.getDate, Date.setUTCDate.

setFullYear

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

Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
setFullYear(yearValue[, monthValue, dayValue])

Параметры

yearValue | Целое, специфицирующее год, например, 1995.
monthValue | Целое от 0 до 11, представляющее месяцы с января по декабрь.
dayValue | Целое от 1 до 31, представляющее число месяца. Если Вы специфицируете параметр dayValue, Вы обязаны также специфицировать monthValue.

Описание

Если Вы не специфицируете параметры monthValue и dayValue, используются значения, возвращаемые из методов getMonth и getDate.

Если специфицированный Вами параметр находится за пределами ожидаемого диапазона, setFullYear пытается обновить другие параметры и информацию даты Date -объекте соответствующим образом. Например, если Вы специфицируете 15 для monthValue, year увеличивается на 1 (year + 1), и 3 используется для month.

Примеры
theBigDay = new Date();
theBigDay.setFullYear(1997);

См. также

Date.getUTCFullYear, Date.setUTCFullYear, Date.setYear.

setHours

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

Метод из | Date
Реализован в | JavaScript 1.0, NES 2. JavaScript 1.3: добавлены параметры minutesValue, secondsValue и msValue.
Версия ECMA | ECMA-262

Синтаксис
setHours(hoursValue[, minutesValue, secondsValue, msValue])

Версии, предшествовавшие JavaScript 1.3:

setHours(hoursValue)

Параметры

hoursValue | Целое в диапазоне от 0 до 23 - час.
minutesValue | Целое в диапазоне от 0 до 59 минуты.
secondsValue | Целое в диапазоне от 0 до 59 - секунды. Если Вы специфицируете параметр secondsValue, Вы обязаны также специфицировать minutesValue.
msValue | Число в диапазоне от 0 до 999 - миллисекунды. Если Вы специфицируете параметр msValue, Вы обязаны также специфицировать minutesValue и secondsValue.

Описание

Если Вы не специфицируете параметры minutesValue, secondsValue и msValue, используются значения возвращаемые из методов getUTCMinutes, getUTCSeconds и getMilliseconds.

Если специфицированный Вами параметр находится вне пределов ожидаемого диапазона, setHours пытается соответственно обновить информацию даты в Date -объекте. Например, Если Вы используете 100 для secondsValue, минуты увеличатся на 1 (min + 1), а для секунд будет использовано значение 40.

Примеры
theBigDay.setHours(7)

См. также

Date.getHours, Date.setUTCHours.

setMilliseconds

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

Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
setMilliseconds(millisecondsValue)

Параметры

millisecondsValue

Число в диапазоне от 0 до 999 - миллисекунды.

Описание

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

Примеры
theBigDay = new Date();
theBigDay.setMilliseconds(100);

См. также

Date.getMilliseconds, Date.setUTCMilliseconds.

setMinutes

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

Метод из | Date
Реализован в | JavaScript 1.0, NES 2.0 JavaScript 1.3: добавлены параметры secondsValue и msValue.
Версия ECMA | ECMA-262

Синтаксис
setMinutes(minutesValue[, secondsValue, msValue])

Версии, предшествовавшие JavaScript 1.3:

setMinutes(minutesValue)

Параметры

minutesValue | Целое в диапазоне от 0 до 59 - минуты.
secondsValue | Целое в диапазоне от 0 до 59 - секунды. Если Вы специфицируете параметр secondsValue, Вы обязаны также специфицировать minutesValue.
msValue | Целое в диапазоне от 0 до 999 - миллисекунды. Если Вы специфицируете параметр msValue, Вы обязаны также специфицировать minutesValue и secondsValue.

Примеры
theBigDay.setMinutes(45)

Описание

Если Вы не специфицируете параметры secondsValue и msValue, используются значения, возвращаемые из методов getSeconds и getMilliseconds.

Если специфицированный Вами параметр находится вне пределов ожидаемого диапазона, setMinutes пытается соответственно обновить информацию даты в Date -объекте. Например, если Вы используете 100 для secondsValue, минуты (minutesValue) увеличатся на 1 (minutesValue + 1), а 40 будет использоваться для секунд.

См. также

Date.getMinutes, Date.setUTCMilliseconds.

setMonth

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

Метод из | Date
Реализован в | JavaScript 1.0, NES 2.0 JavaScript 1.3: добавлен параметр dayValue.
Версия ECMA | ECMA-262

Синтаксис
setMonth(monthValue[, dayValue])

Версии до JavaScript 1.3:

setMonth(monthValue)

Параметры

monthValue | Целое в диапазоне от 0 до 11 (месяц с января по декабрь).
dayValue | Целое в диапазоне от 1 до 31 - число месяца.

Описание

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

Если специфицированный Вами параметр находится за пределами ожидаемого диапазона, setMonth пытается соответственно обновить информацию даты в Date-объекте. Например, если Вы используете 15 для monthValue, год будет увеличен на 1 (year + 1), а 3 будет использовано для month.

Примеры
theBigDay.setMonth(6)

См. также

Date.getMonth, Date.setUTCMonth.

setSeconds

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

Метод из | Date
Реализован в | JavaScript 1.0, NES 2.0 JavaScript 1.3: добавлен параметр msValue.
Версия ECMA | ECMA-262

Синтаксис
setSeconds(secondsValue[, msValue])

Версии до JavaScript 1.3:

setSeconds(secondsValue)

Параметры

secondsValue | Целое от 0 до 59.
msValue | Число от 0 до 999 - миллисекунды.

Описание

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

Если специфицированный Вами параметр находится за пределами ожидаемого диапазона, setSeconds пытается соответственно обновить информацию даты в Date-объекте. Например, если Вы используете 100 для secondsValue, минуты, хранимые в Date-объекте, увеличатся на 1, а 40 будет использовано для секунд.

Примеры
theBigDay.setSeconds(30)

См. также

Date.getSeconds, Date.setUTCSeconds.

setTime

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

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

Синтаксис
setTime(timevalue )

Параметры

timevalue

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

Описание

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

Примеры
theBigDay = new Date("July 1, 1999")
sameAsBigDay = new Date()
sameAsBigDay.setTime(theBigDay.getTime())

См. также

Date.getTime, Date.setUTCHours.

setUTCDate

Устанавливает число месяца для специфицированной даты в соответствии с универсальным временем.
Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
setUTCDate(dayValue)

Параметры

dayValue

Целое от 1 до 31 - число месяца.

Описание

Если специфицированный Вами параметр находится за пределами ожидаемого диапазона, setUTCDate пытается соответственно обновить информацию даты в Date-объекте. Например, если Вы используете 40 для dayValue и month, хранимый в объекте Date - это June, число будет изменено на 10 и месяц будет увеличен до July.

Примеры
theBigDay = new Date();
theBigDay.setUTCDate(20);

См. также

Date.getUTCDate, Date.setDate.

setUTCFullYear

Устанавливает полный год в специфицированной дате в соответствии с универсальным временем.
Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
setUTCFullYear(yearValue[, monthValue, dayValue])

Параметры

yearValue | Целое число - год, например, 1995.
monthValue | Целое от 0 до 11 - месяцы с января по декабрь.
dayValue | Целое от 1 до 31 - число месяца. Если Вы специфицируете параметр dayValue, Вы обязаны также специфицировать monthValue.

Описание

Если Вы не специфицируете параметры monthValue и dayValue, используются значения из методов getMonth и getDate.

Если специфицированный Вами параметр находится за пределами ожидаемого диапазона, setUTCFullYear пытается соответственно обновить информацию даты и другие параметры в Date -объекте. Например, если Вы специфицируете 15 для monthValue, year увеличивается на 1 (year + 1), а 3 используется для month.

Примеры
theBigDay = new Date();
theBigDay.setUTCFullYear(1997);

См. также

Date.getUTCFullYear, Date.setFullYear.

setUTCHours

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

Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
setUTCHour(hoursValue[, minutesValue, secondsValue, msValue])

Параметры

hoursValue | Целое от 0 до 23 - час.
minutesValue | Целое от 0 до 59 - минуты.
secondsValue | Целое от 0 до 59 - секунды. Если Вы специфицируете параметр secondsValue, Вы обязаны также специфицировать minutesValue.
msValue | Число в диапазоне от 0 до 999 - миллисекунды. Если Вы специфицируете параметр msValue, Вы обязаны также специфицировать minutesValue и secondsValue.

Описание

Если Вы не специфицируете параметры minutesValue, secondsValue и msValue, используются значения из методов getUTCMinutes, getUTCSeconds и getUTCMilliseconds.

Если специфицированный Вами параметр находится за пределами ожидаемого диапазона, setUTCHours пытается соответственно обновить информацию даты в Date-объекте. Например, если Вы специфицируете 100 для secondsValue, минуты увеличатся на 1 (min + 1), а 40 будет использовано для секунд.

Примеры
theBigDay = new Date();
theBigDay.setUTCHour(8);

См. также

Date.getUTCHour, Date.setHours.

setUTCMilliseconds

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

Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
setUTCMilliseconds(millisecondsValue)

Параметры

millisecondsValue

Число от 0 до 999 -миллисекунды.

Описание

Если специфицированный Вами параметр находится за пределами ожидаемого диапазона, setUTCMilliseconds пытается соответственно обновить информацию даты в Date-объекте. Например, если Вы специфицируете 1100 для millisecondsValue, секунды, хранимые в объекте Date, будут увеличены на 1, а 100 будет использовано для миллисекунд.

Примеры
theBigDay = new Date();
theBigDay.setUTCMilliseconds(500);

См. также

Date.getUTCMilliseconds, Date.setMilliseconds.

setUTCMinutes

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

Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
setUTCMinutes(minutesValue[, secondsValue, msValue])

Параметры

minutesValue | Целое от 0 до 59 - минуты.
secondsValue | Целое от 0 до 59 - секунды. Если Вы специфицируете параметр secondsValue, Вы обязаны также специфицировать minutesValue.
msValue | Число в диапазоне от 0 до 999 - миллисекунды. Если Вы специфицируете параметр msValue, Вы обязаны также специфицировать minutesValue и secondsValue.

Описание

Если Вы не специфицируете параметры secondsValue и msValue, используются значения из методов getUTCSeconds и getUTCMilliseconds.

Если специфицированный Вами параметр находится за пределами ожидаемого диапазона, setUTCMinutes пытается соответственно обновить информацию даты в Date-объекте. Например, если Вы специфицируете 100 для secondsValue, минуты (minutesValue) будут увеличены на 1 (minutesValue + 1), а 40 будет использовано для секунд.

Примеры
theBigDay = new Date();
theBigDay.setUTCMinutes(43);

См. также

Date.getUTCMinutes, Date.setMinutes.

setUTCMonth

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

Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
setUTCMonth(monthValue[, dayValue])

Параметры

monthValue | Целое от 0 до 11 - месяцы с января по декабрь.
dayValue | Целое от 1 до 31 - число месяца.

Описание

Если Вы не специфицируете параметр dayValue, используется значение из метода getUTCDate.

Если специфицированный Вами параметр находится за пределами ожидаемого диапазона, setUTCMonth пытается соответственно обновить информацию даты в Date-объекте. Например, если Вы специфицируете 15 для monthValue, year будет увеличен на 1 (year + 1), а 3 будет использовано для month.

Примеры
theBigDay = new Date();
theBigDay.setUTCMonth(11);

См. также

Date.getUTCMonth, Date.setMonth.

setUTCSeconds

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

Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
setUTCSeconds(secondsValue[, msValue])

Параметры

secondsValue | Целое от 0 до 59.
msValue | Число от 0 до 999 - миллисекунды.

Описание

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

Если специфицированный Вами параметр находится за пределами ожидаемого диапазона, setUTCSeconds пытается соответственно обновить информацию даты в Date-объекте. Например, если Вы специфицирует 100 для secondsValue, минуты, хранимые в объекте Date, увеличиваются на 1, а 40 будет использовано для секунд.

Примеры
theBigDay = new Date();
theBigDay.setUTCSeconds(20);

См. также

Date.getUTCSeconds, Date.setSeconds.

setYear

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

Метод из | Date
Реализован в | JavaScript 1.0, NES 2.0 Deprecated in JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
setYear(yearValue)

Параметры

yearValue

Целое число.

Описание

setYear более не используется и заменён на метод setFullYear.

Если yearValue это число в диапазоне от 0 до 99 (включительно), то year для dateObjectName устанавливается в 1900 + yearValue. Иначе year для dateObjectName устанавливается в yearValue.

Чтобы учесть годы до и после 2000, Вы должны использовать setFullYear вместо setYear, тогда год будет специфицирован полностью.

Примеры

Заметьте, что есть два способа установить год в 20 столетии.

Пример 1.

Год устанавливается в1996.

theBigDay.setYear(96)

Пример 2.

Год устанавливается в 1996.

theBigDay.setYear(1996)

Пример 3.

Год устанавливается в 2000.

theBigDay.setYear(2000)

См. также

Date.getYear, Date.setFullYear, Date.setUTCFullYear.

toGMTString

Конвертирует дату в строку, используя соглашения Internet GMT.
Метод из | Date
Реализован в | JavaScript 1.0, NES 2.0 Не рекомендуется в JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
toGMTString()

Параметры

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

Описание

toGMTString больше не используется и заменён на метод toUTCString.

Точный формат значения, возвращаемого методом toGMTString, варьируется в зависимости от платформы.

Вы должны использовать Date.toUTCString вместо toGMTSTring.

Примеры

В это примере today это Date-объект:

today.toGMTString()

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

Mon, 18 Dec 1995 17:28:35 GMT

См. также

Date.toLocaleString, Date.toUTCString.

toLocaleString

Конвертирует дату в строку, используя текущие локальные соглашения.
Метод из | Date
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Синтаксис
toLocaleString()

Параметры

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

Описание

Метод toLocaleString при форматировании данных основывается на используемой операционной системе. Он конвертирует дату в строку, используя соглашения по форматированию ОС, в которой запущен скрипт. Например, в США месяц вводится до числа (04/15/98), в то время как в Германии число идёт впереди месяца (15.04.98). Если ОС не совместима с year-2000 и не использует полный год для лет до 1900 или после 2000, toLocaleString возвращает строку, которая не совместима с year-2000.
toLocaleString ведёт себя похоже на toString при конвертировании года, когда система не выполняет правильное форматирование.

Методы, такие как getHours, getMinutes и getSeconds, дают более переносимый результат, чем toLocaleString.

Примеры

В этом примере today является Date -объектом:

today = new Date(95,11,18,17,28,35) //месяцы даны числами от 0 до 11
today.toLocaleString()

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

12/18/95 17:28:35

См. также

Date.toGMTString, Date.toUTCString.

toSource

Возвращает строку, представляющую исходный код объекта.
Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
toSource()

Параметры

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

Описание

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

  • Для встроенного объекта Date метод toSource возвращает следующие строки, обозначающие, что исходный код недоступен:

       function Date() {
          [native code]
       }

  • Для экземпляров Date метод toSource возвращает строку исходного кода.

Этот метод обычно вызывается внутренне в JavaScript, а не явным кодом.

См. также

Object.toSource.

toString

Возвращает строку, представляющую специфицированный Date-объект.
Метод из | Date
Реализован в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Синтаксис
toString()

Параметры

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

Описание

Объект Date переопределяет метод toString объекта Object; он не наследует Object.toString. Для объектов Date метод toString возвращает строку, представляющую объект.

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

Примеры

В этом примере значение toString Date-объекта присваивается переменной myVar:

x = new Date();
myVar=x.toString();   //присваивает значение переменной myVar, примерно такое:
     //Mon Sep 28 14:36:22 GMT-0700 (Pacific Daylight Time) 1998

См. также

Object.toString.

toUTCString

Конвертирует дату в строку, используя соглашение по универсальному времени.
Метод из | Date
Реализован в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис

toUTCString()

Параметры

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

Описание

Значение, возвращаемое методом toUTCString, строка, сформатированная соответствии с соглашением по UTC. Формат возвращаемого значения может зависеть от платформы.

Примеры
var UTCstring;
Today = new Date();
UTCstring = Today.toUTCString();

См. также

Date.toLocaleString, Date.toUTCString.

UTC

Возвращает количество миллисекунд в Date-объекте, прошедших после 1 января 1970 года, 00:00:00 универсального времени.
Метод из | Date
Static
Реализован в | JavaScript 1.0, NES 2.0 JavaScript 1.3: добавлен параметр ms.
Версия ECMA | ECMA-262

Синтаксис
Date.UTC(year, month, day[, hrs, min, sec, ms])

Параметры

year | Год после 1900.
month | Целое число в диапазоне от 0 до 11 - месяц.
Date | Целое число в диапазоне от 1 до 31 - число месяца.
hrs | Целое число в диапазоне от 0 до 23 - час суток.
min | Целое число в диапазоне от 0 до 59 - минуты.
sec | Целое число в диапазоне от 0 до 59 - секунды.
ms | Целое число в диапазоне от 0 до 999 - миллисекунды.

Описание

UTC принимает разделённые запятыми параметры даты и возвращает количество миллисекунд, прошедших после 1 января 1970 года, 00:00:00 универсального времени и времени, специфицированного Вами.

Вы должны специфицировать полный год для year; например, 1998. Если специфицирован год от 0 до 99, этот метод конвертирует year в год 20-го столетия (1900 + year); например, если Вы специфицировали 95, будет использоваться значение 1995.

Метод UTC отличается от конструктора Date по двум позициям:

  • Date.UTC использует универсальное время, а не местное/локальное.

  • Date.UTC возвращает значение времени как число, а не создаёт объект Date.

Если специфицированный Вами параметр находится вне пределов ожидаемого диапазона, метод UTC обновляет другие параметры, чтобы предоставить Вам число. Например, если Вы используете 15 для month, то year будет увеличен на 1 (year + 1), а 3 будет использовано для month.

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

Примеры

Этот оператор создаёт Date -объект, используя GMT вместо локального времени:

gmtDate = new Date(Date.UTC(96, 11, 1, 0, 0, 0))

См. также

Date.parse.

valueOf

Возвращает примитивное значение объекта Date.
Метод из | Date
Реализован в | JavaScript 1.1
Версия ECMA | ECMA-262

Синтаксис
valueOf()

Параметры

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

Описание

Метод valueOf объекта Date возвращает примитивное значение объекта Date как число типа data, количество миллисекунд, прошедших после полуночи 01 января 1970 года по UTC.

Этот метод обычно вызывается внутренне в JavaScript, а не явно в коде.

Пример
x = new Date(56,6,17);
myVar=x.valueOf()      //присваивает -424713600000 переменной myVar

См. также

Object.valueOf.

Назад Вперёд

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


Не Рекомендуются к Использованию

Приложение B

Возможности, Не Рекомендуемые для Использования

В это приложении перечислены элементы языка, не рекомендуемые для использования в JavaScript 1.5.

  • Свойства RegExp.

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

    Свойство

    Описание

    $1, ..., $9

    Совпадение с подстроками в скобках, если имеются.

    $_

    См. input.

    $*

    См. multiline.

    $&

    См. lastMatch.

    $+

    См. lastParen.

    $`

    См. leftContext.

    $'

    См. rightContext.

    input

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

    lastMatch

    Последние совпавшие символы.

    lastParen

    Последнее совпадение подстроки в скобках, если имеется.

    leftContext

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

    rightContext

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

    Далее идут свойства RegExp-экземпляров, а не объекта RegExp.

    Свойство

    Описание

    global

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

    ignoreCase

    Игнорировать ли регистр при попытках совпадения в строке.

    lastIndex

    Индекс, начиная с которого выполнять поиск следующего совпадения.

    multiline

    Искать ли в нескольких строках.

    source

    Текст патэрна.

  • Методы RegExp

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

    Метод valueOf больше не специализирован для RegExp. Использовать Object.valueOf.
  • Escape-последовательности
    Восьмеричные escape-последовательности (\ с последующими одной, двумя или тремя 8-ричными цифрами) не рекомендуются в строках и литералах регулярных выражений.
    Функции escape и unescape не рекомендуются. Используйте encodeURI, encodeURIComponent, decodeURI или decodeURIComponent для кодирования и декодирования escape-последовательностей специальных символов.

Назад Вперёд

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


footer

Оглавление
Индекс
Глава 1. Объекты, Методы и Свойства
Глава 2. Свойства и Функции Верхнего Уровня
Глава 3. Операторы
Глава 4. Комментарии
Глава 5. Операции
Ключевые Слова
Не Рекомендуется Использовать
Глава 6. Java-Классы, Конструкторы и Методы
Классы LiveConn


Функции

Function

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

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

Объект ядра

Реализован в

JavaScript 1.1, NES 2.0

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

JavaScript 1.3: добавлены методы apply, call и toSource; не рекомендуется использовать свойство arguments.caller.

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

Версия ECMA

ECMA-262

Создание

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

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

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

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

Параметры
arg1, arg2, ... argN | Имена, используемые функцией в качестве имён формальных аргументов. Каждый обязан быть строкой - правильным идентификатором JavaScript; например "x" или "theValue".
FunctionBody | Строка операторов JavaScript, образующих определение функции.
name | Имя функции.
param | Имя аргумента, передаваемого функции. Функция может иметь до 255 аргументов.
statements | Операторы, образующие тело функции.

Описание

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

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

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

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. См. 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.

Следующий код присваивает функцию обработчику события onFocus для 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 и более ранние версии.

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

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

Свойство | Описание
arguments | Массив аргументов, передаваемых функции.
arguments.callee | Специфицирует тело выполняемой в данный момент функции.
arguments.caller | Специфицирует имя функции, которая вызвала выполняемую в данный момент функцию.
arguments.length | Специфицирует количество аргументов, передаваемых функции.
arity | Специфицирует количество аргументов, ожидаемых функцией.
constructor | Специфицирует функцию, которая создаёт прототип объекта.
length | Специфицирует количество аргументов, ожидаемых функцией.
prototype | Позволяет добавлять свойства объекту Function.

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

Метод | Описание
apply | Позволяет применять метод одного объекта в контексте другого объекта (вызывающего объекта).
call | Позволяет вызывать (выполнять) метод другого объекта в контексте другого объекта (вызывающего объекта).
toSource | Возвращает строку исходного кода функции. Переопределяет метод Object.toSource.
toString | Возвращает строку исходного кода функции. Переопределяет метод Object.toString.
valueOf | Возвращает строку исходного кода функции. Переопределяет метод Object.valueOf.

Примеры

Пример 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.

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

frames[0].onFocus = new Function("document.bgColor='antiquewhite'")
frames[0].onBlur = new Function("document.bgColor='lightgrey'")

apply

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

Позволяет применять метод одного объекта в контексте другого объекта (вызывающего объекта).
Метод из | Function
Реализован в | 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)).

Вы можете также использовать arguments для параметра 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");

См. также

Function.call

arguments

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

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

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

Свойство из

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

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

JavaScript 1.1, NES 2.0

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

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

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

Версия ECMA

ECMA-262

Описание

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

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

arguments[0]
arguments[1]
arguments[2]

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

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

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

Свойство | Описание
arguments.callee | Специфицирует тело выполняемой в данный момент функции.
arguments.caller | Специфицирует имя функции, которая вызвала выполняемую в данный момент функцию. (Не рекомендуется использовать).
arguments.length | Специфицирует количество аргументов, передаваемых функции.

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

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 Вы можете отобразить тот же вывод путём вызова функции write вместо document.write.

arguments.callee

Специфицирует тело выполняемой в данный момент функции.
Свойство из | Локальная переменная arguments; Function (не рекомендуется).
Реализовано в | JavaScript 1.2 JavaScript 1.4: callee не рекомендуется в качестве свойства для Function.arguments, осталось как свойство локальной переменной arguments функции.
Версия ECMA | ECMA-262

Описание

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

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

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

Примеры

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

Function myFunc() {
   return arguments.callee
}

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

Function myFunc() { return arguments.callee; }

См. также

Function.arguments.

arguments.caller

Специфицирует имя функции, которая вызвала выполняемую в данный момент функцию.
Свойство из | Function
Реализовано в | 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)
}

См. также

Function.arguments.

arguments.length

Специфицирует количество аргументов, передаваемых функции.
Свойство из | Локальная переменная arguments; Function (не рекомендуется).
Реализовано в | JavaScript 1.1 JavaScript 1.4: length не рекомендуется как свойство для Function.arguments, осталось как свойство локальной переменной arguments функции.
Версия ECMA | ECMA-262

Описание

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

arguments.length предоставляет несколько аргументов, реально передаваемых функции. По контрасту, свойство Function.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

См. также

Function.arguments.

arity

Специфицирует количество аргументов, ожидаемых функцией.
Свойство из | Function
Реализовано в | JavaScript 1.2, NES 3.0 Не рекомендуется JavaScript 1.4.

Описание

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

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

Пример

Использование arity и 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

См. также

arguments.length, Function.length.

call

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

Позволяет вызывать (выполнять) метод одного объекта в контексте другого объекта (вызывающего объекта).
Метод из | Function
Реализован в | 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");

См. также

Function.apply.

constructor

Специфицирует функцию, создающую прототип объекта. Заметьте, что значением этого свойства является ссылка на саму функцию, а не строка, содержащая имя функции.
Свойство из | Function
Реализовано в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Описание

См. Object.constructor.

length

Специфицирует количество аргументов, ожидаемых функцией.
Свойство из | Function
Реализовано в | JavaScript 1.1
Версия ECMA | ECMA-262

Описание

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

Пример

См. пример для arguments.length.

См. также

arguments.length.

prototype

Значение, на основе которого создаются экземпляры определённого класса. Каждый объект, который может быть создан путём вызова функции constructor, имеет ассоциированное свойство prototype.
Свойство из | Function
Реализован в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Описание

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

fun.prototype.name = value

где

fun | Имя объекта функции constructor, который Вы хотите изменить.
name | Имя создаваемого свойства или метода.
value | Начальное значение нового свойства или метода .

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

var array1 = new Array();
var array2 = new Array(3);
Array.prototype.description=null;
array1.description="Contains some stuff"
array2.description="Contains other stuff"

После того как Вы установили свойство для прототипа, все последующие объекты, созданные с Array, будут иметь это свойство:

anotherArray=new Array()
anotherArray.description="Currently empty"

Пример

В этом примере создаётся метод str_rep и используется оператор String.prototype.rep = str_rep для добавления метода ко всем объектам String. Все объекты, созданные с помощью new String(), будут иметь этот метод, даже объекты, созданные ранее. Затем создаётся другой метод и добавляется к одному из объектов String через использование оператора s1.rep = fake_rep. Метод str_rep остальных объектов String не изменяется.

var s1 = new String("a")
var s2 = new String("b")
var s3 = new String("c")

// Создаётся метод repeat-string-N-times для всех String-объектов
Function str_rep(n) {
   var s = "", t = this.toString()
   while (--n >= 0) s += t
   return s
}

String.prototype.rep = str_rep

s1a=s1.rep(3) // возвращает "aaa"
s2a=s2.rep(5)  // возвращает "bbbbb"
s3a=s3.rep(2)  // возвращает "cc"

// Создаёт другой метод и назначает его только одной переменной String
Function fake_rep(n) {
   return "repeat " + this + " " + n + " times."
}

s1.rep = fake_rep
s1b=s1.rep(1) // возвращает "repeat a 1 times."
s2b=s2.rep(4) // возвращает "bbbb"
s3b=s3.rep(6) // возвращает "cccccc"

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

"z".rep(3)

toSource

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

Возвращает строку исходного кода функции.
Метод из | Function
Реализован в | JavaScript 1.3

Синтаксис
toSource()

Параметры

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

Описание

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

  • Для встроенного объекта Function метод toSource возвращает следующую строку, означающую, что исходный код недоступен:

       Function Function() {
          [native code]
       }

  • Для специальных функций метод toSource возвращает JavaScript-источник, который определяет объект как строку.

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

См. также

Function.toString, Object.valueOf.

toString

Возвращает строку исходного кода функции.
Метод из | Function
Реализован в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Синтаксис
toString()

Параметры

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

Описание

Объект Function переопределяет метод toString объекта Object; он не наследует Object.toString. Для объектов Function метод toString возвращает строку представления объекта.

JavaScript вызывает метод toString автоматически при представлении Function как текстового значения или когда на Function ссылаются при конкатенации строк.

Для объектов Function встроенный метод toString декомпилирует функцию обратно в JavaScript-исходник, который определяет функцию. Эта строка содержит ключевое слово Function, список аргументов, фигурные скобки и тело функции.

Например, предположим, у нас есть следующий код, определяющий тип объекта Dog и создающий theDog, объект типа Dog:

Function Dog(name,breed,color,sex) {
   this.name=name
   this.breed=breed
   this.color=color
   this.sex=sex
}

theDog = new Dog("Gabby","Lab","chocolate","girl")

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

Function Dog(name, breed, color, sex) { this.name = name; this.breed = breed; this.color = color; this.sex = sex; }

См. также

Object.toString.

valueOf

Возвращает строку исходного кода функции.
Метод из | Function
Реализован в | JavaScript 1.1
Версия ECMA | ECMA-262

Синтаксис
valueOf()

Параметры

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

Описание

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

  • Для встроенного объекта Function метод valueOf возвращает следующую строку, означающую, что исходный код недоступен:

       Function Function() {
          [native code]
       }

  • Для специальных/custom функций toSource возвращает исходный код JavaScript, который определяет объект как строку. Этот метод эквивалентен методу toString функции.

Этот метод обычно вызывается внутренне в JavaScript, а не явным кодом.

См. также

Function.toString, Object.valueOf.

Назад Вперёд

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


JavaScript - Index

Эта страница сделана с использованием фрэймов, но Ваш браузер их не поддерживает.

Нажмите ссылку для перехода к странице Содержание.


Английский Символы A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Русский А Б В Г Д З И К Л М Н О П Р С Т У Ф Ц Ч Ш Э

Индекс

Символы

- (побитовое НЕ), операция;1

- (унарное отрицание), операция;1

-- (декремент), операция;1

! (логическое НЕ), операция;1

!= (не равно), операция;1, 2

!== (строго не равно), операция1, 2

% (остаток от деления), операция;1

%= операция;1

&& (логическое И), операция;1

& (побитовое И), операция;1

&= операция;1

) ;1

*/ комментарий;1

*= операция;1

+ (конкатенация строк), операция;1

++ (инкремент), операция;1

+= (конкатенация строк), операция;1

+= операция;1

/* комментарий;1

// комментарий;1

/= операция;1

< (меньше), операция;1

<< (сдвиг влево), операция;1, 2

<<= операция;1

<= (меньше или равно), операция;1

== (равно), операция;1, 2

=== (строго равно), операция;1, 2

-= операция;1

> (больше), операция;1

>= (больше или равно), операция;1

>> (сдвиг вправо с сохранением знака), операция;1, 2

>>= операция;1

>>> (сдвиг вправо с заполнением нулями), операция;1, 2

>>>= операция;1

?: (проверка условия), операция1

^ (побитовое исключающее ИЛИ), операция;1

^= операция;1

| (побитовое И), операция;1

|= операция;1

|| (логическое ИЛИ), операция;1

, (запятая), операция1

A

abs, метод;1

acos, метод;1

anchor, метод;1

anchors

создание;1

AND (&&), логическая операция;1

AND (&), побитовая операция;1

apply, метод;1

arguments, массив;1

arity, свойство;1

Array, объект;1

asin, метод;1

atan2, метод;1

atan, метод;1

B

BIG, тэг HTML;1

big, метод;1

BLINK, тэг HTML;1

blink, метод;1

BOLD, тэг HTML;1

bold, метод;1

Boolean, объект;1

условная проверка и ...;1

break, оператор;1

C

callee, свойство;1

caller, свойство;1

call, метод;1

call, метод (LiveConnect) ;1

"захватывающие скобки"

скобки

захват;1

ceil, метод;1

charAt, метод;1

charCodeAt, метод;1

className, свойство;1

comma (), операция;1

comments ;1

comment, оператор;1

concat, метод

Array, объект;1

String, объект;1

constructor, свойство

Array, объект;1

Boolean, объект;1

Date, объект;1

Function, объект;1

Number, объект;1

Object, объект;1

RegExp, объект;1

String, объект;1

continue, оператор;1

cos, метод;1

D

Date, объект;1

decodeURIComponent, функция;1

decodeURI, функция;1

decrement (--), операция;1

default objects/объекты по умолчанию, специфицирование;1

delete, операция;1

do...while, оператор;1

E

encodeURIComponent, функция;1

encodeURI, функция;1

E, свойство;1

equals, метод (LiveConnect);1

eval, функция;1

eval, метод

LiveConnect ;1

Object, объект;1

exec, метод;1

exp, метод;1

export, оператор;1

F

fixed, метод;1

плавающая точка;1

floor, метод;1

fontcolor, метод;1

fontsize, метод;1

for...in, оператор;1

for, циклы

продолжение выполнения;1

синтаксис;1

прерывание выполнения;1

for, оператор;1

fromCharCode, метод;1

function, выражение;1

Function, объект;1

специфицирование аргументов для ...;1

как значение переменной;1

function, операция;1

function, оператор;1

G

getDate, метод;1

getDay, метод;1

getFullYear, метод;1

getHours, метод;1

getMember, метод (LiveConnect) ;1

getMilliseconds, метод;1

getMinutes, метод;1

getMonth, метод;1

getSeconds, метод;1

getSlot, метод (LiveConnect) ;1

getTime, метод;1

getTimezoneOffset, метод;1

getUTCDate, метод;1

getUTCDay, метод;1

getUTCFullYear, метод;1

getUTCHours, метод;1

getUTCMilliseconds, метод;1

getUTCMinutes, метод;1

getUTCMonth, метод;1

getUTCSeconds, метод;1

getWindow, метод (LiveConnect) ;1

getWrappedException (LiveConnect) ;1

getWrappedExceptionType (LiveConnect) ;1

getYear, метод;1

global, объект;1

global, свойство;1

GMT time/время по Гринвичу, определённое; локальное время, определённое;1

I

IEEE 754;1

if...else, оператор;1

ignoreCase, свойство;1

import, оператор;1

increment (++), операция;1

indexOf, метод;1

index, свойство;1

Infinity, свойство;1

in, ключевое слово;1

in, операция;1

input, свойство

Array, объект;1

instanceof, операция;1

isFinite, функция;1

isNaN, функция;1

italics, метод;1

J

JavaArray, объект;1

JavaClass, объект;1

java, объект;1

JavaObject, объект;1

JavaPackage, объект;1

java, свойство;1

JavaScript

используемый фон;1

зарезервированные слова;1

версии и Navigator;1

join, метод;1

JSException, класс;1

JSException, конструктор (LiveConnect) ;1

JSObject, класс;1

L

label, оператор;1

lastIndexOf, метод;1

lastIndex, свойство;1

left shift (<<), операция;1, 2

length, свойство

arguments, массив;1

Array, объект;1

Function, объект;1

JavaArray, объект;1

String, объект;1

link, метод;1

LiveConnect

JavaArray, объект;1

JavaClass, объект;1

java, объект;1

JavaObject, объект;1

JavaPackage, объект;1

JSException, класс;1

JSObject, класс;1

netscape, объект;1

Packages, объект;1

sun, объект;1

LN10, свойство;1

LN2, свойство;1

LOG10E, свойство;1

LOG2E, свойство;1

log, метод;1

M

match, метод;1

Math, объект;1

MAX_VALUE, свойство;1

max, метод;1

методы верхнего уровня;1

MIN_VALUE, свойство;1

min, метод;1

modulo, функция;1

modulus (%), операция;1

multiline, свойство;1

N

NaN, свойство

Number, объект;1

верхнего уровня;1

Navigator, поддерживаемые версии JavaScript;1

NEGATIVE_INFINITY, свойство;1

nesting/содержащие функции;1

netscape.javascript.JSException, класс;1

netscape.javascript.JSObject, класс;1

netscape, объект;1

netscape, свойство;1

new, операция;1

NOT (!) лгическое, операция;1

NOT (-) битовое, операция;1

Number, функция;1

Number, объект;1

O

Object, объект;1

OR (|) bitwise, операция;1

OR (||) logical, операция;1

P

packages/пакеты, доступ к Java ;1

Packages, объект;1

parseFloat, функция;1

parseInt, функция;1

parse, метод;1

PI, свойство;1

pop, метод;1

POSITIVE_INFINITY, свойство;1

pow, метод;1

prototype, свойство

Array, объект;1

Boolean, объект;1

Date, объект;1

Function, объект;1

Number, объект;1

Object, объект;1

RegExp, объект;1

String, объект;1

push, метод;1

R

random, метод;1

RegExp, объект;1

removeMember, метод (LiveConnect) ;1

replace, метод;1

return, оператор;1

reverse, метод;1

rounding ;1

round, метод;1

S

search, метод;1

setDate, метод;1

setFullYear, метод;1

setHours, метод;1

setMember, метод (LiveConnect) ;1

setMilliseconds, метод;1

setMinutes, метод;1

setMonth, метод;1

setSeconds, метод;1

setSlot, метод (LiveConnect) ;1

setTime, метод;1

setUTCDate, метод;1

setUTCFullYear, метод;1

setUTCHours, метод;1

setUTCMilliseconds, метод;1

setUTCMinutes, метод;1

setUTCMonth, метод;1

setUTCSeconds, метод;1

setYear, метод;1

shift, метод;1

sign-propagating right shift (>>), операция;1, 2

sin, метод;1

slice, метод;1, 2

small, метод;1

sort, метод;1

source, свойство;1

splice, метод;1

split, метод;1

SQRT1_2, свойство;1

SQRT2, свойство;1

sqrt, метод;1

strike, метод;1

String, функция;1

String, объект;1

sub, метод;1

substring, метод;1

substr, метод;1

sun, объект;1

sun, свойство;1

sup, метод;1

switch, оператор;1

T

tan, метод;1

test, метод;1

this, ключевое слово;1

throw, оператор;1

time

Date, объект;1

определение;1

минуты;1

toGMTString, метод;1

toLocaleString, метод;1

toLowerCase, метод;1

toSource, метод

Array, объект;1

Boolean, объект;1

Date, объект;1

Function, объект;1

Number, объект;1

Object, объект;1

RegExp, объект;1

String, объект;1

toString, метод

Array, объект;1

Boolean, объект;1

встроенный;1

Date, объект;1

Function, объект;1

JavaArray, объект;1

LiveConnect ;1

Number, объект;1, 2, 3, 4

Object, объект;1

RegExp, объект;1

String, объект;1

определяемый пользователем;1

toUpperCase, метод;1

toUTCString, метод;1

try...catch, оператор;1

typeof, операция;1

U

undefined, свойство;1

Unicode

charCodeAt, метод;1

unnamed/безымянные/анонимные функции;1

unshift, метод;1

unwatch, метод;1

URL

используемые соглашения;1

UTC, метод;1

UTC-время, определённое;1

V

valueOf, метод

Array, объект;1

Boolean, объект;1

Date, объект;1

Function, объект;1

Number, объект;1

Object, объект;1

String, объект;1

variables/переменные

объявление;1, 2

инициализация;1, 2

синтаксис для объявления;1, 2

var, оператор;1, 2

версии JavaScript ;1

void, операция;1

W

watch, метод;1

while, цикл

продолжение;1

синтаксис;1

прерывание;1

while, оператор;1

with, оператор;1

X

XOR (^), операция;1

Z

zero-fill right shift (>>>), операция;1, 2

Русские Термины

анонимные функции;1

арифметические операции;1

% (modulus) ;1

-- (декремент) ;1

- (унарное отрицание) ;1

++ (инкремент) ;1

безымянные/анонимные функции;1

время

Date, объект;1

определение;1

минуты;1

выражения, не возвращающие значение;1

гиперссылки

якоря для ...;1

без назначения;1

даты

конвертация в строку;1

Date, объект;1

день недели;1

определение;1

миллисекунды после 1970 ;1

месяц;1

директории, используемые соглашения;1

зарезервированные слова;1

исключения

отлов;1

LiveConnect;1

вызов;1

throw, оператор;1

try...catch, оператор;1

квадратные корни;1

ключевые слова;1
классы, доступ к Java-классам; 1, 2

контейнеры

спецификация объекта по умолчанию;1

оператор with и ...;1

логарифмы

база натурального ...;1, 2

натуральный логарифм 10 ;1

логические операции;1

! (НЕ) ;1

&& (И) ;1

|| (ИЛИ) ;1

сокращённое вычисление;1

массивы

Array, объект;1

создание из строк;1

удаление элементов;1

dense/плотный ;1

увеличение размера;1

индексирование;1

начальный размер;1, 2

Java;1

объединение массивов;1

размер, определение;1, 2

обращение к элементам;1

сортировка;1

натуральные логарифмы

база;1

e ;1

e, возведённая в степень;1

от 10 ;1

незахватывающие скобки

скобки

не-захватывание;1

нижний регистр;1, 2

операторы работы со строками;1

операторы;1, 2

соглашения по синтаксису1

объекты

подтверждение, тип объекта для ...;1

подтверждение, свойство типа для ...;1

создание новых типов;1

удаление;1

установка по умолчанию;1

получение списка свойств для ...;1

итерирующие свойства;1

Java, доступ;1

операции;1, 2

арифметические;1

присвоения;1

побитовые;1

сравнения;1

список;1

логические;1

специальные;1

со строками;1

операции присвоения;1

%= ;1

&= ;1

*= ;1

+= ;1

/= ;1

<<= ;1

-= ;1

>>= ;1

>>>= ;1

^= ;1

|= ;1

условные операторы и операции присвоения;1

операции сравнения;1

!= (не равно) ;1, 2

!== (строго не равно) ;1, 2

< (меньше) ;1

<= (меньше или равно) ;1

== (равно) ;1, 2

=== (строго равно) ;1, 2

> (больше) ;1

>= (больше или равно) ;1

переменные

объявление;1, 2

инициализация;1, 2

синтаксис для объявления;1, 2

плотные массивы;1

побитовые операции ;1

& (И) ;1

- (НЕ) ;1

<< (сдвиг влево) ;1, 2

>> (сдвиг вправо с сохранением знака) ;1, 2

>>> (сдвиг вправо с заполнением нулями) ;1, 2

^ (исключающее ИЛИ) ;1

| (ИЛИ) ;1

логические;1

сдвиг;1

проверка условия

операторы присвоения и ...;1

Boolean-объекты и ...;1

регулярные выражения;1

свойства

подтверждение, тип объекта;1

удаление;1

получение списка свойств объекта;1

итерация по объекту;1

верхнего уровня;1

свойства и функции верхнего уровня;1

"смотрящие вперёд" утверждения;1

соглашения по документам;1

соглашения по синтаксису;1

сокращённое вычисление;1

специальные операторы;1

списки выбора

количество опций;1

строки

мигающие;1

bold;1

позиция символов в ...;1, 2, 3

конкатенация;1

конвертирование из даты;1

конвертирование в число с плавающей точкой;1

создание из массивов;1

определение;1

fontsize;1

length;1

нижний регистр;1, 2

разбор ...;1

разделение на массивы;1

String, объект;1

тэгиHTML

BIG;1

BLINK;1

BOLD;1

удаление

элементов массива;1

объектов;1

свойств;1

унарное отрицание (-), операция;1

условная (?:), операция;1

функции

arguments, массив;1

callee, свойство;1

caller, свойство;1

объявление;1

Function, объект;1

length, свойство;1

список из;1

вложение;1

количество аргументов;1

return-значения;1

... верхнего уровня;1

как значение переменной;1

циклы

продолжение ...;1

for;1

прерывание;1

while;1

числа

большее из двух;1

идентификация;1

Number, объект;1

получение целого;1

разбор из строки;1

квадратный корень;1

шрифты

big;1

blinking;1

bold;1

Эйлера константа;1

возведённая в степень;1


java

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

Объект ядра |
Реализован в | JavaScript 1.1, NES 2.0

Создание

Объект java это объект верхнего уровня, предопределённый JavaScript-объект. Вы можете автоматически получать к нему доступ без использования конструктора или вызова метода.

Описание

Объект java это синоним свойства Packages.java.

См. также

Packages, Packages.java.

Назад Вперёд

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


JavaArray

Объект-капсула, Java-массив, доступ к которому осуществляется из кода JavaScript, является членом типа JavaArray.

Объект ядра |
Реализован в | JavaScript 1.1, NES 2.0

Создание

Любой Java-метод, возвращающий массив. Кроме того, Вы можете создать JavaArray из данных произвольного типа, используя метод newInstance класса Array:

public static Object newInstance(Class componentType,
   int length)
   throws NegativeArraySizeException

Описание

Объект JavaArray является экземпляром массива Java, который создаётся в или передаётся в JavaScript. JavaArray это капсула для экземпляра; все ссылки на этот экземпляр массива осуществляются через JavaArray.

В JavaScript 1.4 и позднее параметр componentType это JavaClass-объект или объект, представляющий тип массива или объект класса, такой как возвращаемый из java.lang.Class.forName. В JavaScript 1.3 и ранее componentType обязан быть объектом класса.

Для доступа к элементам JavaArray-объекта используются индексы с базой 0, точно так, как Вы получаете доступ к элементам Java-массива. Например:

var javaString = new java.lang.String("Hello world!");
var byteArray = javaString.getBytes();
byteArray[0] // возвращает 72
byteArray[1] // возвращает 101

Любые данные Java, перенесённые в JavaScript, конвертируются в типы данных JavaScript. Если JavaArray передаётся обратно в Java, с массива убирается оболочка, и он может использоваться кодом Java. См. в книге Ядро JavaScript. Руководство по Использованию. информацию конверсии типов данных.

В JavaScript 1.4 и позднее методы из java.lang.Object наследуются в JavaArray.

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

JavaScript 1.3 и ранее.

Методы из java.lang.Object не наследуются в JavaArray. Кроме того, метод toString наследуется из объекта Object и возвращает следующее значение:

[object JavaArray]

Вы обязаны специфицировать объект класса, такой как возвращаемый из java.lang.Object.forName, для параметра componentType метода newInstance, если Вы используете этот метод для создания массива. Вы не можете использовать объект JavaClass для параметра componentType.

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

Свойство | Описание
length | Количество элементов в Java-массиве, представленное объектом JavaArray.

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

Метод | Описание
toString | В JavaScript 1.4 этот метод переопределён унаследованным методом java.lang.Object.toString. В JavaScript 1.3 и ранее этот метод возвращает строку, идентифицирующую объект как JavaArray.

В JavaScript 1.4 и позднее JavaArray также наследует методы суперкласса массива Java, java.lang.Object.

Примеры

Пример 1.

Инстанциация (создание экземпляра) JavaArray в JavaScript.

В этом примере JavaArray byteArray создаётся методом java.lang.String.getBytes, который возвращает массив.

var javaString = new java.lang.String("Hello world!");
var byteArray = javaString.getBytes();

Пример 2.

Инстанциация JavaArray в JavaScript методом newInstance.

В JavaScript 1.4 Вы можете использовать объект JavaClass как аргумент для метода newInstance, который создаёт массив, как показано в этом коде:

var dogs = java.lang.reflect.Array.newInstance(java.lang.String, 5)

В JavaScript 1.1 объект класса, возвращаемый методом java.lang.Class.forName, используется как аргумент метода newInstance, как показано в коде:

var dataType = java.lang.Class.forName("java.lang.String")
var dogs = java.lang.reflect.Array.newInstance(dataType, 5)

length

Количество элементов Java-массиве, представленных объектом JavaArray.
Свойство из | JavaArray
Реализовано в | JavaScript 1.1, NES 2.0

Описание

В отличие от Array.length, JavaArray.length это свойство только для чтения. Вы не можете изменить значение свойства JavaArray.length, поскольку массивы Java имеют фиксированное количество элементов.

См. также

Array.length.

toString

Возвращает строковое представление JavaArray.
Метод из | JavaArray
Реализован в | JavaScript 1.1, NES 2.0

Параметры

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

Описание

Вызывает метод java.lang.Object.toString, который возвращает значение следующего выражения:

JavaArray.getClass().getName() + '@' +
     java.lang.Integer.toHexString(JavaArray.hashCode())

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

JavaScript 1.3 и ранее.

Метод toString наследуется из объекта Object и возвращает следующее значение:

[object JavaArray]

Назад Вперёд

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


JavaClass

Ссылка JavaScript на Java-класс.

Объект ядра |
Реализован в | JavaScript 1.1, NES 2.0

Создание

Ссылка на имя класса, используемая в объекте Packages:

Packages.JavaClass

где JavaClass это полное квалифицированное имя Java-класса объекта. Объекты LiveConnect java, sun и netscape предоставляют быстрый доступ к наиболее часто используемым пакетам Java, а также создают объекты JavaClass.

Описание

Объект JavaClass это ссылка на один из классов пакета Java, такой как netscape.javascript.JSObject.

Объект JavaPackage это ссылка на пакет Java, такой как netscape.javascript.

В JavaScript иерархия JavaPackage и JavaClass отражает иерархию пакетов и классов Java.

Вы можете передавать объект JavaClass Java-методу, который требует тип аргумента java.lang.Class.

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

JavaScript 1.3 и ранее.

Вы обязаны создать капсулу-оболочку вокруг экземпляра java.lang.Class до того, как Вы передадите его как параметр Java- методу.

Объекты JavaClass не конвертируются автоматически в экземпляры класса java.lang.Class.

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

Свойства объекта JavaClass являются static-полями Java-класса.

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

Методы объекта JavaClass являются static-методами Java-класса.

Примеры

Пример 1.

Здесь x это объект JavaClass, ссылающийся на java.awt.Font. Поскольку BOLD это static-поле в классе Font, оно также является свойством объекта JavaClass.

x = java.awt.Font
myFont = x("helv",x.BOLD,10) // создаёт Font-объект

Предыдущий пример опускает ключевое слово Packages и использует синоним java, поскольку класс Font находится в пакете java.

Пример 2.

Здесь JavaClass-объект java.lang.String передаётся как аргумент методу newInstance, который создаёт массив:

var cars = java.lang.reflect.Array.newInstance(java.lang.String, 15)

См. также

JavaArray, JavaObject, JavaPackage, Packages.

Назад Вперёд

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


JavaObject

Тип объекта-капсулы Java, доступ к которому осуществляется из кода JavaScript.

Объект ядра |
Реализован в | JavaScript 1.1, NES 2.0

Создание

Любой метод Java, возвращающий тип объекта. Кроме того, Вы можете явно конструировать JavaObject через использование Java-конструктора объекта с ключевым словом Packages:

new Packages.JavaClass(parameterList)

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

Параметры

parameterList

Необязательный список параметров, специфицированный конструктором в Java-классе.

Описание

Объект JavaObject является экземпляром Java-класса, создаваемым в или передаваемым в JavaScript. JavaObject это оболочка для экземпляра; все обращения к экземпляру класса делаются через JavaObject.

Любые данные Java, перенесённые в JavaScript, конвертируются в типы данных JavaScript. Если JavaArray передаётся обратно в Java, с массива убирается оболочка, и он может использоваться кодом Java. См. в книге Ядро JavaScript. Руководство по Использованию. информацию конверсии типов данных.

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

Наследует как свойства членов public-данных Java-класса, экземпляром которого он является. Наследует также как свойства членов public-данных любого суперкласса.

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

Наследует public-методы из Java-класса, экземпляром которого он является. JavaObject также наследует методы из java.lang.Object и любого другого суперкласса.

Примеры

Пример 1. Инстанциация Java-объекта в JavaScript.

Следующий код создаёт JavaObject theString, который является экземпляром класса java.lang.String:

var theString = new Packages.java.lang.String("Hello, world")

Поскольку класс String находится в пакете java, Вы можете также использовать синоним java и опустить ключевое слово Packages при инстанциации (создании экземпляра) класса:

var theString = new java.lang.String("Hello, world")

Пример 2. Доступ к методам Java-объекта.

Поскольку JavaObject theString является экземпляром класса java.lang.String, он наследует все public-методы класса java.lang.String. В этом примере используется метод startsWith для проверки, начинается ли theString с "Hello".

var theString = new java.lang.String("Hello, world")
theString.startsWith("Hello") // возвращает true

Пример 3. Доступ к унаследованным методам.

Поскольку getClass является методом из Object и java.lang.String расширяет Object, класс String наследует метод getClass. Следовательно, getClass является также методом из JavaObject, который инстанциирует String в JavaScript.

var theString = new java.lang.String("Hello, world")
theString.getClass() // возвращает java.lang.String

См. также

JavaArray, JavaClass, JavaPackage, Packages.

Назад Вперёд

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


JavaPackage

Ссылка JavaScript на Java-пакет.

Объект ядра |
Реализован в | JavaScript 1.1, NES 2.0

Создание

Ссылка на имя пакета, используемая с ключевым словом Packages:

Packages.JavaPackage

где JavaPackage это имя Java-пакета объекта. Если это пакет в пакетах java, netscape или sun, слово Packages применять не обязательно.

Описание

В Java пакет это коллекция Java-классов или других Java-пакетов. Например, пакет netscape содержит пакет netscape.javascript; пакет netscape.javascript содержит классы JSObject и JSException.

В JavaScript JavaPackage это ссылка на Java-пакет. Например, ссылка на netscape это JavaPackage. netscape.javascript это и JavaPackage, и свойство JavaPackage в netscape.

Объект JavaClass является ссылкой на один из классов пакета, такой как netscape.javascript.JSObject. Иерархия JavaPackage и JavaClass отражает иерархию пакетов и классов Java.

Хотя пакеты и классы, содержащиеся в JavaPackage, являются его свойствами, Вы не можете использовать оператор for...in для их перебора так, как Вы можете это делать со свойствами других объектов.

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

Свойства JavaPackage являются объектами JavaClass и другими JavaPackage-объектами, содержащимися в нём.

Примеры

Предположим, Redwood corporation использует пакет Java redwood для хранения различных Java-классов, реализованных ею. Следующий код создаёт JavaPackage red:

var red = Packages.redwood

См. также

JavaArray, JavaClass, JavaObject, Packages.

Назад Вперёд

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


Ключевые Слова

Приложение A Зарезервированные Слова

В этом приложении перечислены зарезервированные слова JavaScript.

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

abstract
boolean
break
byte
case
catch
char
class
const
continue
debugger
default
delete
do
double 		else
enum
export
extends
false
final
finally
float
for
function
goto
if
implements
import
in 		instanceof
int
interface
long
native
new
null
package
private
protected
public
return
short
static
super 		switch
synchronized
this
throw
throws
transient
true
try
typeof
var
void
volatile
while
with

Назад Вперёд

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


JSException

public-класс JSException расширяет RuntimeException.

java.lang.Object
   |
   +----java.lang.Throwable
            |
            +----java.lang.Exception
                     |
                     +----java.lang.RuntimeException
                                 |
                                 +----netscape.javascript.JSException

Описание

JSException это исключение, вызываемое тогда, когда код JavaScript возвращает ошибку.

Конструктор. Резюме.

Класс netscape.javascript.JSException имеет следующий конструктор:

Конструктор | Описание
JSException | Не рекомендуемые конструкторы по выбору предлагают Вам специфицировать детали сообщения и другой информации.

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

Класс netscape.javascript.JSException имеет следующие методы:

Метод | Описание
getWrappedException | Метод getWrappedException экземпляра.
getWrappedExceptionType | Метод getWrappedExceptionType экземпляра возвращает int-отображение типа объекта wrappedException.

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

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

JavaScript от 1.1 до 1.3.

JSException имело три public-конструктора, которые по выбору принимали строку-аргумент, специфицирующую детальное сообщения или другую информацию об исключении. Метод getWrappedException отсутствовал.

JSException

Конструкторы, не рекомендуемые для использования в JavaScript 1.4.
Конструирует JSException с необязательным сообщением о деталях.

Объявление

1. public JSException()

2. public JSException(String s)

3. public JSException(String s,
   String filename,
   int lineno,
   String source,
   int tokenIndex)

Аргументы

s | Сообщение о деталях.
filename | URL файла, в котором возникла ошибка, если возможен.
lineno | номер строки в файле, если возможно.
source | Строка, содержащая вычисляемый код JavaScript.
tokenIndex | индекс в строке-источнике, где возникла ошибка.

getWrappedException

getWrappedException - метод экземпляра.

Объявление

public Object getWrappedException()

Описание

getWrappedException() возвращает объект, представляющий значение, которое JavaScript реально отловил. JavaScript может отлавливать значения любых типов. Используйте getWrappedException() для определения вида значения, которое представляет return-тип Object'а.

getWrappedExceptionType

getWrappedExceptionType - метод экземпляра.

Объявление

public int getWrappedExceptionType()

Описание

getWrappedExceptionType() возвращает int, которое совпадает с одним из следующих static int, объявленных классом JSException:

EXCEPTION_TYPE_EMPTY

EXCEPTION_TYPE_VOID

EXCEPTION_TYPE_OBJECT

EXCEPTION_TYPE_FUNCTION

EXCEPTION_TYPE_STRING

EXCEPTION_TYPE_NUMBER

EXCEPTION_TYPE_BOOLEAN

Назад Вперёд

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


JSObject

Класс public final class netscape.javascript.JSObject расширяет Object.

java.lang.Object
   |
   +----netscape.javascript.JSObject

Описание

Объекты JavaScript "обёрнуты"/инкапсулированы в экземпляры класса netscape.javascript.JSObject и передаются в Java.

JSObject позволяет Java манипулировать объектами JavaScript.

Если объект JavaScript посылается в Java, машина времени выполнения (программ) создаёт Java-оболочку типа JSObject; когда JSObject посылается из Java в JavaScript, машина времени выполнения "разворачивает" его в оригинальный тип объекта JavaScript. Класс JSObject даёт возможность вызывать методы JavaScript и проверять JavaScript-свойства.

Любые данные JavaScript, перенесённые в Java, конвертируются в типы данных Java. Когда JSObject передаётся обратно в JavaScript, объект декапсулируется и может использоваться в коде JavaScript. См. Ядро JavaScript, Руководство по Использованию. о деталях конверсии типов данных.

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

Класс netscape.javascript.JSObject имеет следующие методы:
Метод | Описание
call | Вызывает метод JavaScript.
equals | Определяет, ссылаются ли два объекта JSObject на один и тот же экземпляр.
eval | Вычисляет выражение JavaScript.
getMember | Запрашивает значение свойства объекта в JavaScript.
getSlot | Запрашивает значение элемента массива объекта в JavaScript.
removeMember | Запрашивает свойство объекта в JavaScript.
setMember | Устанавливает значение свойства объекта в JavaScript.
setSlot | Устанавливает значение элемента массива объекта в JavaScript.
toString | Конвертирует JSObject в строку.

Класс netscape.javascript.JSObject имеет следующий статический/static метод:

Метод | Описание
getWindow | Получает JSObject для окна, содержащего данный аплет.

В последующих разделах рассматривается объявление и использование этих методов.

call

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

Объявление
public Object call(String methodName, Object args[])

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)

getMember

Метод. Запрашивает значение свойства объекта в JavaScript. Эквивалентен "this.name" в JavaScript.

Объявление
public Object getMember(String name)

getSlot

Метод. Запрашивает значение элемента массива объекта в JavaScript. Эквивалентен "this[index]" в JavaScript.

Объявление
public Object getSlot(int index)

getWindow

Static-метод. Возвращает JSObject для окна, содержащего данный аплет. Этот метод используется только в клиентском JavaScript.

Объявление
public static JSObject getWindow(Applet applet)

removeMember

Метод. Удаляет свойство объекта в JavaScript.

Объявление
public void removeMember(String name)

setMember

Метод. Устанавливает значение свойства объекта в JavaScript. Эквивалентен "this.name = value" в JavaScript.

Объявление
public void setMember(String name, Object value)

setSlot

Метод. Устанавливает значение элемента массива объекта в JavaScript. Эквивалентен "this[index] = value" в JavaScript.

Объявление
public void setSlot(int index, Object value)

toString

Метод. Конвертирует JSObject в String.

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

Объявление
public String toString()

Назад Вперёд

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


Math

Встроенный объект, содержащий методы и свойства математических констант и функций. Например, в объекте Math свойство PI имеет значение pi.

Объект ядра
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Создание

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

Описание

Все свойства и методы объекта Math являются статическими/static. Вы обращаетесь к константе PI как Math.PI и можете вызывать функцию синуса как Math.sin(x), где x это аргумент метода. Константы определены с полной точностью вещественных чисел в JavaScript.

Часто бывает удобно использовать оператор with, когда раздел кода использует несколько констант и методов Math, тогда нет необходимости вводить "Math" каждый раз. Например,

with (Math) {
   a = PI * r*r
   y = r*sin(theta)
   x = r*cos(theta)
}

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

Свойство

Описание
E

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

LN2

Натуральный логарифм из 2, приблизительно 0.693.

LN10

Натуральный логарифм из 10, приблизительно 2.302.

LOG2E

С базой 2, логарифм E (приблизительно 1.442).

LOG10E

С базой 10, логарифм E (приблизительно 0.434).

PI

Отношение окружности к диаметру, приблизительно 3.14159.

SQRT1_2

Квадратный корень из 1/2; приблизительно 0.707.

SQRT2

Квадратный корень из 2, приблизительно 1.414.

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

Метод

Описание
abs

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

acos

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

asin

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

atan

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

atan2

Возвращает арктангенс частного аргументов.

ceil

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

cos

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

exp

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

floor

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

log

Возвращает натуральный логарифм (база E) числа.

max

Возвращает большее из двух чисел.

min

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

pow

Возвращает base степени exponent, то есть, baseexponent.

random

Возвращает псевдослучайное число в диапазоне от 0 до 1.

round

Возвращает значение числа, округлённого до ближайшего целого.

sin

Синус числа.

sqrt

Квадратный корень числа.

tan

Тангенс числа.

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

abs

Возвращает абсолютное значение числа.
Метод из | Math
Static
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

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

Параметр

x

Число.

Пример

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

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

Описание

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

acos

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

Метод из | Math
Static
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-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 - вне диапазона.

См. также

Math.asin, Math.atan, Math.atan2, Math.cos, Math.sin, Math.tan.

asin

Возвращает арксинус числа (в радианах).
Метод из | Math
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 находится вне диапазона.

См. также

Math.acos, Math.atan, Math.atan2 , Math.cos, Math.sin, Math.tan.

atan

Возвращает арктангенс числа (в радианах).
Метод из | Math
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.

См. также

Math.acos, Math.asin, Math.atan2, Math.cos, Math.sin, Math.tan.

atan2

Возвращает арктангенс частного своих аргументов.
Метод из | Math
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.

См. также

Math.acos, Math.asin, Math.atan, Math.cos, Math.sin, Math.tan.

ceil

Возвращает наименьшее целое, больше или равное данному числу.
Метод из | Math
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.

См. также

Math.floor.

cos

Возвращает косинус числа.
Метод из | Math
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.

См. также

Math.acos, Math.asin, Math.atan, Math.atan2, Math.sin, Math.tan.

E

Константа Эйлера и база натуральных логарифмов, приблизительно 2.718.
Свойство из | Math
Static, Read-only\Только-для-Чтения
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Описание

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

Пример

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

function getEuler() {
   return Math.E
}

exp

Возвращает Ex, где x это аргумент, а E это константа Эйлера, база натуральных логарифмов.
Метод из | Math
Static
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

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

Параметр

x

Число.

Описание

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

Пример

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

function getExp(x) {
   return Math.exp(x)
}

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

См. также

Math.E, Math.log, Math.pow.

floor

Возвращает наибольшее целое, меньше или равное данному числу.
Метод из | Math
Static
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-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.

См. также

Math.ceil.

LN2

Натуральный логарифм от 2, приблизительно 0.693.
Свойство из | Math
Static, Read-only
Реализовано в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Пример

Эта функция возвращает натуральный логарифм от 2:

function getNatLog2() {
   return Math.LN2
}

Описание

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

LN10

Натуральный логарифм от 10, приблизительно 2.302.
Свойство из | Math
Static, Только-для-Чтения
Реализовано в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Пример

Эта функция возвращает натуральный логарифм от 10:

function getNatLog10() {
   return Math.LN10
}

Описание

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

log

Возвращает натуральный логарифм (база E) числа.
Метод из | Math
Static
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

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

Параметр

x

Число.

Описание

Если number имеет отрицательное значение, return-значение будет всегда NaN.

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

Пример

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

function getLog(x) {
   return Math.log(x)
}

Если вы передаёте в getLog значение 10, он возвращает 2.302585092994046; если Вы передаёте значение 0, от возвращает -Infinity; если передаёте -1, возвращает NaN, поскольку -1 находится вне диапазона.

См. также

Math.exp, Math.pow.

LOG2E

База 2, логарифм E (приблизительно 1.442).
Свойство из | Math
Static, Только-для-Чтения
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Пример

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

function getLog2e() {
   return Math.LOG2E
}

Описание

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

LOG10E

База 10, логарифм E (приблизительно 0.434).
Свойство из | Math
Static, Read-only
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Пример

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

function getLog10e() {
   return Math.LOG10E
}

Описание

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

max

Возвращает наибольшее из двух чисел.
Метод из | Math
Static
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Синтаксис
max(x,y)

Параметры

x, y

Числа.

Описание

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

Пример

Эта функция вычисляет переменные x и y:

function getMax(x,y) {
   return Math.max(x,y)
}

Если Вы передаёте в getMax значения 10 и 20, он возвращает 20; если передаёте значения -10 и -20, возвратит -10.

См. также

Math.min.

min

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

Синтаксис
min(x,y)

Параметры

x, y

Числа.

Описание

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

Пример

Эта функция вычисляет переменные x и y:

function getMin(x,y) {
   return Math.min(x,y)
}

Если Вы передаёте в getMin значения 10 и 20, он возвратит 10; если передаёте значения -10 и -20, он возвратит -20.

См. также

Math.max.

PI

Отношение длины окружности к её диаметру, приблизительно 3.14159.
Свойство из | Math
Static, Read-only
Реализовано в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Примеры

Эта функция возвращает значение pi:

function getPi() {
   return Math.PI
}

Описание

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

pow

Возвращает base для степени exponent, то есть, baseexponent.
Метод из | Math
Static
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Синтаксис
pow(x,y)

Параметры

base | Число базы.
exponent | Экспонента, на которую увеличивается base.

Описание

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

Примеры

function raisePower(x,y) {
   return Math.pow(x,y)
}

Если x равен 7 и y равен 2, raisePower возвратит 49 (7 в степени 2).

См. также

Math.exp, Math.log.

random

Возвращает псевдослучайное число в диапазоне от 0 до 1. Генератор случайных чисел работает от текущего времени, как в Java.
Метод из | Math
Static
Реализован в | JavaScript 1.0, NES 2.0: только Unix. JavaScript 1.1, NES 2.0: все платформы.
Версия ECMA | ECMA-262

Синтаксис
random()

Параметры

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

Описание

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

Пример
//Возвращает случайное число в диапазоне от 0 до 1

function getRandom() {
   return Math.random()
}

round

Возвращает число, округлённое до ближайшего целого.
Метод из | Math
Static
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

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

Параметр

x

Число.

Описание

Если дробная часть числа составляет .5 или больше, аргумент округляется до ближайшего целого в сторону увеличения. Если дробная часть числа меньше .5, аргумент округляется до ближайшего целого в сторону уменьшения.

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

Примеры

//Возвращает 20
x=Math.round(20.49)

//Возвращает 21
x=Math.round(20.5)

//Возвращает -20
x=Math.round(-20.5)

//Возвращает -21
x=Math.round(-20.51)

sin

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

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

Параметр

x

Число.

Описание

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

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

Примеры

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

function getSine(x) {
   return Math.sin(x)
}

Если Вы передаёте в getSine значение Math.PI/2, он возвратит 1.

См. также

Math.acos, Math.asin, Math.atan, Math.atan2, Math.cos, Math.tan.

sqrt

Возвращает квадратный корень числа.
Метод из | Math
Static
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

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

Параметр

x

Число.

Описание

Если number это отрицательное значение, sqrt возвращает NaN.

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

Примеры

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

function getRoot(x) {
   return Math.sqrt(x)
}

Если Вы передаёте в getRoot значение 9, он возвращает 3; если передаёте 2, возвращает 1.414213562373095.

SQRT1_2

Квадратный корень из 1/2, приблизительно 0.707.
Свойство из | Math
Static, Read-only
Реализовано в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Пример

Эта функция возвращает 1, делённая на квадратный корень из 2:

function getRoot1_2() {
   return Math.SQRT1_2
}

Описание

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

SQRT2

Квадратный корень из 2, приблизительно 1.414.
Свойство из | Math
Static, Read-only
Реализовано в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Примеры

Эта функция возвращает квадратный корень из 2:

function getRoot2() {
   return Math.SQRT2
}

Описание

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

tan

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

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

Параметр

x

Число.

Описание

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

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

Пример

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

function getTan(x) {
   return Math.tan(x)
}

См. также

Math.acos, Math.asin, Math.atan, Math.atan2, Math.cos, Math.sin.

Назад    Вперёд

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


netscape

Объект верхнего уровня, используемый для доступа к любому Java-классу в пакете netscape.*.

Объект ядра |
Реализован в | JavaScript 1.1, NES 2.0

Создание

Объект netscape это объект верхнего уровня, предопределённый объект JavaScript. Вы можете получить к нему доступ автоматически без использования конструктора или вызова метода.

Описание

Объект netscape это синоним свойства Packages.netscape.

См. также

Packages, Packages.netscape.

Назад Вперёд

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


Классы, Конструкторы и Методы Java

Number

Даёт возможность работать с числовыми значениями. Объект Number это оболочка/капсула объекта для примитивных числовых значений.

Объект ядра
Реализован в | JavaScript 1.1, NES 2.0 JavaScript 1.2: модифицировано поведение конструктора Number. JavaScript 1.3: добавлен метод toSource. JavaScript 1.5, NES 6.0: добавлены методы toExponential, toFixed и toPrecision.
Версия ECMA | ECMA-262

Создание

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

new Number(value)

Параметр
value

Числовое значение создаваемого объекта.

Описание

Объект Number используется в основном:

  • Для доступа к его константным свойствам, которые представляют наибольшее и наименьшее представляемые числа, положительную и отрицательную бесконечность и значение Not-a-Number/Не-Число.

  • Для создания числовых объектов, в которые можно добавлять свойства. Вероятно Вам редко нужно будет создавать объект Number.

Свойства Number это свойства самого класса, а не отдельных объектов Number.

JavaScript 1.2:

Number(x) теперь даёт NaN, а не ошибку, если x это строка, не содержащая правильно сформированный числовой литерал.

Например,

x=Number("three");

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

печатает NaN.

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

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

Свойство

Описание
constructor

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

MAX_VALUE

Наибольшее представляемое число.

MIN_VALUE

Наименьшее представляемое число.

NaN

Специальное значение "not a number".

NEGATIVE_INFINITY

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

POSITIVE_INFINITY

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

prototype

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

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

Метод

Описание
toExponential

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

toFixed

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

toPrecision

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

toSource

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

toString

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

valueOf

Возвращает примитивное значение специфицированного объекта. Переопределяет метод Object.valueOf.

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

Примеры

Пример 1.

Свойства объекта Number для присвоения значений различным числовым переменным:

biggestNum = Number.MAX_VALUE;
smallestNum = Number.MIN_VALUE;
infiniteNum = Number.POSITIVE_INFINITY;
negInfiniteNum = Number.NEGATIVE_INFINITY;
notANum = Number.NaN;

Пример 2.

Создаётся Number-объект , myNum, затем добавляется свойство description ко всем Number-объектам . Затем значение присваивается свойству description объекта myNum.

myNum = new Number(65);
Number.prototype.description=null;
myNum.description="wind speed";

constructor

Специфицирует функцию, создающую прототип объекта. Заметьте, что значением этого свойства является ссылка на функцию, а не строка, содержащая имя функции.
Свойство из | Number
Реализовано в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Описание

См. Object.constructor.

MAX_VALUE

Максимальное числовое значение, представимое в JavaScript.
Свойство из | Number
Static, Read-only
Реализовано в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Описание

Свойство MAX_VALUE имеет значение приблизительно 1.79E+308. Значения, больше чем MAX_VALUE, представляются как "Infinity".

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

Примеры

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

if (num1 * num2 <= Number.MAX_VALUE)
   func1()
else
   func2()

MIN_VALUE

Наименьшее положительное числовое значение, представимое в JavaScript.
Свойство из | Number
Static, Read-only
Реализовано в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Описание

Свойство MIN_VALUE это ближайшее к 0 число, не отрицательное, которое JavaScript может представить.

MIN_VALUE имеет значение приблизительно 5e-324. Значения меньшие, чем MIN_VALUE ("underflow\подводные-значения"), конвертируются до 0.

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

Примеры

Этот код делит два числа. Если результат меньше или равен MIN_VALUE, вызывается функция func1; иначе, вызывается функция func2.

if (num1 / num2 >= Number.MIN_VALUE)
   func1()
else
   func2()

NaN

Специальное значение Not-A-Number/Не-Число. Это значение представляется как литерал NaN без кавычек.
Свойство из | Number
Read-only |
Реализовано в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Описание

JavaScript печатает значение Number.NaN как NaN.

NaN всегда не равно другому числу, включая само NaN; Вы не можете проверять значение not-a-number, сравнивая его с Number.NaN. Для этого используйте функцию isNaN.

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

Примеры

Если month имеет значение больше 12, оно становится NaN, и выводится сообщение, показывающее верные значения.

var month = 13
if (month < 1 || month > 12) {
   month = Number.NaN
   alert("Month must be between 1 and 12.")
}

См. также

NaN, isNaN, parseFloat, parseInt.

NEGATIVE_INFINITY

Специальное числовое значение - отрицательная бесконечность. Это значение представляется как литерал "-Infinity"

без кавычек.

Свойство из | Number
Static, Read-only
Реализовано в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Описание

Это значение ведёт себя несколько иначе, чем математическая бесконечность:

  • Любое положительное значение, включая POSITIVE_INFINITY, умноженное на NEGATIVE_INFINITY, является NEGATIVE_INFINITY.

  • Любое отрицательное значение, включая NEGATIVE_INFINITY, умноженное на NEGATIVE_INFINITY, является POSITIVE_INFINITY.

  • Нуль, умноженный на NEGATIVE_INFINITY, является NaN.

  • NaN, умноженный на NEGATIVE_INFINITY, является NaN.

  • NEGATIVE_INFINITY, разделённое на отрицательное значение, за исключением NEGATIVE_INFINITY, является POSITIVE_INFINITY.

  • NEGATIVE_INFINITY, разделённое на положительное значение, за исключением POSITIVE_INFINITY, является NEGATIVE_INFINITY.

  • NEGATIVE_INFINITY, разделённое на NEGATIVE_INFINITY или на POSITIVE_INFINITY, является NaN.

  • Любое число, разделённое на NEGATIVE_INFINITY, является Нулём.

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

Примеры

Здесь переменной smallNumber присваивается значение, которое меньше минимального значения. Если выполняется оператор if, smallNumber имеет значение "-Infinity", поэтому вызывается функция func1.

var smallNumber = -Number.MAX_VALUE*10
if (smallNumber == Number.NEGATIVE_INFINITY)
   func1()
else
   func2()

См. также

Infinity, isFinite.

POSITIVE_INFINITY

Специальное значение, представляющее бесконечность. Представляется как литерал "Infinity" без кавычек.
Свойство из | Number
Static, Read-only
Реализован в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Описание

Это значение ведёт себя несколько иначе, чем математическая Бесконечность:

  • Любое положительное значение, включая POSITIVE_INFINITY, умноженное на POSITIVE_INFINITY, является POSITIVE_INFINITY.

  • Любое отрицательное значение, включая NEGATIVE_INFINITY, умноженное на POSITIVE_INFINITY, является NEGATIVE_INFINITY.

  • Нуль, умноженный на POSITIVE_INFINITY, является NaN.

  • NaN, умноженное на POSITIVE_INFINITY, является NaN.

  • POSITIVE_INFINITY, разделённое на любое отрицательное значение, за исключением NEGATIVE_INFINITY, является NEGATIVE_INFINITY.

  • POSITIVE_INFINITY, разделённое на любое положительное значение, за исключением POSITIVE_INFINITY, является POSITIVE_INFINITY.

  • POSITIVE_INFINITY, делённое на NEGATIVE_INFINITY или на POSITIVE_INFINITY, является NaN.

  • Любое число, делённое на POSITIVE_INFINITY, является Нулём.

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

Примеры

Переменной bigNumber присваивается значение, которое больше максимального значения. Если выполняется оператор if, bigNumber имеет значение "Infinity", поэтому вызывается функция func1.

var bigNumber = Number.MAX_VALUE * 10
if (bigNumber == Number.POSITIVE_INFINITY)
   func1()
else
   func2()

См. также

Infinity, isFinite.

prototype

Представляет прототип для данного класса. вы можете использовать этот прототип для добавления свойств или методов всем экземплярам данного класса. о прототипах см. Function.prototype.
Свойство из | Number
Реализован в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

toExponential

Возвращает строку, представляющую объект Number в экспоненциальной нотации.
Метод из | Number
Реализован в | JavaScript 1.5
Версия ECMA | ECMA-262, Edition 3

Синтаксис
toExponential([fractionDigits])

Параметр
fractionDigits

Целое, специфицирующее количество цифр после десятичной точки. По умолчанию - столько цифр, сколько необходимо для специфицирования числа.

Описание

Метод Number.prototype.toExponential возвращает строку, представляющую объект Number в экспоненциальной нотации, с одной цифрой перед десятичной точкой, округлённое до fractionDigits после после десятичной точки. Если аргумент fractionDigits опущен, количество цифр после десятичной точки по умолчанию равно количеству цифр, необходимых для представления уникального значения.

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

Если число имеет больше цифр, чем запрошено параметром fractionDigits, число округляется до ближайшего числа, представляемого цифрами fractionDigits . См. обсуждение округления значений в описании метода toFixed, которое применимо также к toExponential.

Примеры

var num=77.1234
alert("num.toExponential() is " + num.toExponential())   //выводит 7.71234e+1
alert("num.toExponential(4) is " + num.toExponential(4)) //выводит 7.7123e+1
alert("num.toExponential(2) is " + num.toExponential(2)) //выводит 7.71e+1
alert("77.1234.toExponential() is " + 77.1234.toExponential())
//выводит 7.71234e+1
alert("77 .toExponential() is " + 77 .toExponential())   //выводит 7.7e+1

См. также

toFixed, toPrecision, toString.

toFixed

Возвращает строку, представляющую объект Number в нотации с фиксированной точкой.
Метод из | Number
Реализован в | JavaScript 1.5
Версия ECMA | ECMA-262, Edition 3

Синтаксис
toFixed([fractionDigits])

Параметр

fractionDigits

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

Описание

Метод Number.prototype.toFixed возвращает строку, представляющую объект Number в нотации с фиксированной точкой, округлённый до количества цифр после десятичной точки, специфицированного fractionDigits..

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

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

0.124.toFixed(2) возвращает "0.12"

0.125.tofixed(2) возвращает "0.13", поскольку 0.125 это точно посередине между 0.12 и 0.13

0.126.tofixed(2) возвращает "0.13".

Следуя данному соглашению, можно ожидать, что 0.045.toFixed(2) возвратит "0.05", но оно возвращает "0.04". Это происходит из-за того способа представления компьютером чисел с плавающей точкой IEEE 754. Стандарт IEEE 754 использует двоичные дроби (доли нуля и единицы после точки). Так же, как некоторые числа, такие как 1/3, не представляются точно десятичными дробями, другие числа, как 0.045, не представляются точно двоичными дробями. Стандарт IEEE 754 диктует, что 0.045 приближается до числа 0.04499999999999999833466546306226518936455249786376953125, которое может быть точно представлено как двоичная дробь. Это приближение ближе к 0.04, чем к 0.05, поэтому 0.045.toFixed(2) возвращает "0.04".

Примеры

var num=10.1234
alert("num.toFixed()  is " + num.toFixed())  //выводит  10
alert("num.toFixed(4) is " + num.toFixed(4)) //выводит  10.1234  alert("num.toFixed(2) is " + num.toFixed(2)) //выводит  10.12

См. также

toExponential, toPrecision, toString/

toPrecision

Возвращает строку, представляющую Number-объект со специфицированной точностью.
Метод из | Number
Реализован в | JavaScript 1.5
Версия ECMA | ECMA-262, Edition 3

Синтаксис
toPrecision([precision])

Параметр
precision

Целое число, специфицирующее количество цифр после десятичной точки.

Описание

Метод Number.prototype.toPrecision возвращает строку, представляющую Number-объект в нотации с фиксированной точкой или экспоненциальной нотации, округлённый до значащих цифр precision .

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

Если аргумент precision отсутствует, поведение аналогично Number.prototype.toString.

Если число содержит больше цифр, чем запрошено параметром precision, число округляется до ближайшего числа, представляемого цифрами precision. См. в описании метода toFixed обсуждение округления чисел, применяемого также в toPrecision.

Примеры

var num=5.123456
alert("num.toPrecision()  is " + num.toPrecision())      //выводит 5.123456
alert("num.toPrecision(4) is " + num.toPrecision(4))     //выводит 5.123
alert("num.toPrecision(2) is " + num.toPrecision(2))     //выводит 5.1
alert("num.toPrecision(2) is " + num.toPrecision(1))     //выводит 5
alert("num.toPrecision(2) is " + num.toPrecision(1))     //выводит 5
alert("1250 .toPrecision() is " + 1250 .toPrecision(2))  //выводит 1.3e+3
alert("1250 .toPrecision(5) is " + 1250 .toPrecision(5)) //выводит 1250.0

См. также

toExponential, toFixed, toString/

toSource

Возвращает строку с исходным кодом объекта.
Метод из | Number
Реализован в | JavaScript 1.3

Синтаксис
toSource()

Параметры

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

Описание

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

  • Для встроенного объекта Number, toSource возвращает сроку, указывающую, что исходный код недоступен:

       function Number() {
          [native code]
       }

  • Для экземпляров Number, toSource возвращает строку исходного кода.

Этот метод обычно вызывается внутренне в JavaScript, а не явно в коде.

См. также

Object.toSource.

toString

Возвращает строку, представляющую специфицированный Number-объект.
Метод из | Number
Реализован в | JavaScript 1.1
Версия ECMA | ECMA-262

Синтаксис
toString()
toString([radix])

Параметр
radix

Цело число в диапазоне от 2 до 36, специфицирующее базу для использования при представлении числовых значений.

Описание

Объект Number переопределяет метод toString объекта Object; он не наследует Object.toString. Для объектов Number, метод toString возвращает строковое представление объекта.

JavaScript вызывает метод toString автоматически, когда число представляется как текстовое значение или когда на число ссылаются в конкатенации строк.

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

Для Number-объектов и значений, встроенный метод toString возвращает строку, представляющую значение числа.

var howMany=10;
alert("howMany.toString() is " + howMany.toString())
alert("45 .toString() is " + 45 .toString())

См. также

toExponential, toFixed, toPrecision.

valueOf

Возвращает примитивное значение Number-объекта.
Метод из | Number
Реализован в | JavaScript 1.1
Версия ECMA | ECMA-262

Синтаксис
valueOf()

Параметры

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

Описание

Метод valueOf объекта Number возвращает примитивное значение Number-объекта как данные числового типа.

Этот метод обычно вызывается внутренне в JavaScript, а не явно в коде.

Примеры

x = new Number();
alert(x.valueOf())      //выводит 0

См. также

Object.valueOf.

Назад    Вперёд

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


Object

Object это примитивный тип объекта в JavaScript. Все объекты JavaScript являются потомками от Object. То есть, все JavaScript-объекты имеют методы, определённые в Object.

Объект ядра
Реализован в | JavaScript 1.0: метод toString. JavaScript 1.1, NES 2.0: добавлены методы eval и valueOf; свойство constructor. JavaScript 1.2: не рекомендуется использовать метод eval. JavaScript 1.3: добавлен метод toSource. JavaScript 1.4: удалён метод eval.
Версия ECMA | ECMA-262

Создание

Object-конструктор:

new Object()

Параметры

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

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

Свойство | Описание
constructor | Специфицирует функцию, которая создаёт прототип объекта.
prototype | Позволяет добавлять свойства для всех объектов.

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

Метод | Описание
eval | Не рекомендуется использовать. Вычисляет строку кода JavaScript в контексте специфицированного объекта.
toSource | Возвращает литерал объекта, представляющий специфицированный объект; Вы можете использовать это значение для создания нового объекта.
toString | Вычисляет строку, представляющую специфицированный объект.
unwatch | Удаляет контрольную точку для свойства объекта.
valueOf | Возвращает примитивное значение специфицированного объекта.
watch | Добавляет контрольную точку для свойства объекта.

constructor

Специфицирует функцию, создающую прототип объекта. Заметьте, что значением этого свойства является ссылка на саму функцию, а не строка с именем функции.
Свойство из | Object
Реализовано в | 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; }

eval

Не рекомендуется. Вычисляет строку JavaScript-кода в контексте объекта.
Метод из | Object
Реализован в | JavaScript 1.1, NES 2.0 JavaScript 1.2, NES 3.0: не рекомендуется как метод объектов; остаётся как функция верхнего уровня. JavaScript 1.4: удалён как метод объектов.

Синтаксис
eval(string)

Параметр

string

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

Описание

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

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

JavaScript 1.2 и 1.3.

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

JavaScript 1.1.

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

См. также

eval.

prototype

Представляет прототип для данного класса. Вы можете использовать этот прототип для добавления свойств или методов всем экземплярам класса. См. также Function.prototype.
Свойство из | Object
Реализовано в | JavaScript 1.1
Версия ECMA | ECMA-262

toSource

Возвращает строку - исходный код объекта.
Метод из | Object
Реализован в | JavaScript 1.3

Синтаксис
toSource()

Параметры

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

Описание

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

  • Для встроенного объекта Object, toSource возвращает следующую строку, означающую, что исходный код недоступен:

       function Object() {
          [native code]
       }

  • Для экземпляров Object, toSource возвращает строку исходного кода.

  • Для специальных объектов, toSource возвращает JavaScript-источник, который определяет объект как строку.

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

Примеры

Следующий код определяет тип объекта Dog и создаёт theDog, объект типа Dog:

function Dog(name,breed,color,sex) {
   this.name=name
   this.breed=breed
   this.color=color
   this.sex=sex
}
theDog = new Dog("Gabby","Lab","chocolate","girl")

Вызов метода toSource из theDog отображает JavaScript-источник, который определяет этот объект:

theDog.toSource()
//возвращает "{name:"Gabby", breed:"Lab", color:"chocolate", sex:"girl"}

См. также

Object.toString.

toString

Возвращает строку, представляющую специфицированный объект.
Метод из | Object
Реализован в | JavaScript 1.0
Версия ECMA | ECMA-262

Синтаксис
toString()

Описание

Каждый объект имеет метод toString, который автоматически вызывается, если объект представляется как текстовое значение или если на объект имеется ссылка в конкатенации строк. Например, следующие примеры требуют, чтобы theDog был представлен как строка:

document.write(theDog)
document.write("The dog is " + theDog)

По умолчанию метод toString наследуется каждым объектом - потомком от Object. Вы можете переопределять этот метод для специальных/custom объектов, создаваемых Вами. Если Вы не переопределяете toStringв специальном объекте, toString возвращает [object type], где type это тип объекта или имя функции constructor, создавшей этот объект.

Например:

var o = new Object()
o.toString // возвращает [object Object]

Встроенные методы toString.

Каждый встроенный объект ядра JavaScript переопределяет метод toString из Object для возвращения соответствующего значения. JavaScript вызывает этот метод по мере необходимости для конвертации объекта в строку.

Переопределение метода toString по умолчанию.

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

Этот код определяет тип объекта Dog и создаёт theDog, объект типа Dog:

function Dog(name,breed,color,sex) {
   this.name=name
   this.breed=breed
   this.color=color
   this.sex=sex
}

theDog = new Dog("Gabby","Lab","chocolate","girl")

Если Вы вызываете метод toString в специальном объекте object, он возвращает значение по умолчанию, унаследованное из Object:

theDog.toString() //возвращает [object Object]

Следующий код создаёт dogToString, функцию, которая будет использоваться для переопределения метода toString по умолчанию. Эта функция генерирует строку, содержащую каждое свойство, в форме "property = value;".

function dogToString() {
   var ret = "Dog " + this.name + " is [\n"
   for (var prop in this)
      ret += " " + prop + " is " + this[prop] + ";\n"
   return ret + "]"
}

Следующий код присваивает определённую пользователем функцию методу toString объекта:

Dog.prototype.toString = dogToString

Замещая предыдущий код, theDog используется в любой момент в строковом контексте, JavaScript автоматически вызывает функцию dogToString, которая возвращает:

Dog Gabby is [
  name is Gabby;
  breed is Lab;
  color is chocolate;
  sex is girl;
]

Метод toString объекта обычно вызывается JavaScript,но Вы сами можете вызывать его так:

var dogString = theDog.toString()

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

JavaScript 1.2.

Поведение метода toString зависит от того, специфицируете ли Вы LANGUAGE="JavaScript1.2" в тэге <SCRIPT>:

  • Если Вы специфицируете LANGUAGE="JavaScript1.2" в тэге <SCRIPT>, метод toString возвращает литерал объекта.

  • Если Вы не специфицируете LANGUAGE="JavaScript1.2" в тэге <SCRIPT>, метод toString возвращает[object type], как в других версиях JavaScript.

Примеры

Пример 1:

Объект location. Здесь печатается строковой эквивалент текущего location.

document.write("location.toString() это " + location.toString() + "<BR>")

На выходе будет:

location.toString() это file:///C|/TEMP/myprog.htmll

Пример 2:

Объект без строкового значения. Предположим, у Вас есть объект Image с именем sealife, определённый так:

<IMG NAME="sealife" SRC="images\seaotter.gif" ALIGN="left" VSPACE="10">

Поскольку сам объект Image не имеет специального метода toString, sealife.toString() возвращает:

[object Image]

Пример 3:

Параметр radix. Этот код печатает строковые эквиваленты чисел от 0 до 9 в десятичном и двоичном виде.

for (x = 0; x < 10; x++) {
   document.write("Decimal: ", x.toString(10), " Binary: ",
      x.toString(2), "<BR>")
}

На выходе будет:

Decimal: 0 Binary: 0
Decimal: 1 Binary: 1
Decimal: 2 Binary: 10
Decimal: 3 Binary: 11
Decimal: 4 Binary: 100
Decimal: 5 Binary: 101
Decimal: 6 Binary: 110
Decimal: 7 Binary: 111
Decimal: 8 Binary: 1000
Decimal: 9 Binary: 1001

См. также

Object.toSource, Object.valueOf.

unwatch

Удаляет контрольную точку, установленную методом watch.
Метод из | Object
Реализован в | JavaScript 1.2, NES 3.0

Синтаксис
unwatch(prop)

Параметр

prop

Имя свойства объекта.

Описание

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

Getting Started with\Начинаем Работать с Netscape JavaScript Debugger.

По умолчанию этот метод наследуется каждым объектом - потомком от Object.

Пример

См. watch.

valueOf

Возвращает примитивное значение специфицированного объекта.
Метод из | Object
Реализован в | JavaScript 1.1
Версия ECMA | ECMA-262

Синтаксис
valueOf()

Параметры

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

Описание

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

По умолчанию метод valueOf наследуется каждым объектом - потомком от Object. Каждый встроенный объект ядра переопределяет этот метод для возвращения соответствующего значения. Если объект не имеет примитивного значения, valueOf возвращает сам объект, который отображается так:

[object Object]

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

Переопределение valueOf для специальных объектов.

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

Предположим, у Вас есть объект типа myNumberType и Вы хотите создать для него метод valueOf. Следующий код присваивает определённую пользователем функцию методу valueOf объекта:

myNumberType.prototype.valueOf = new Function(functionText)

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

Метод valueOf объекта обычно вызывается JavaScript, но Вы и сами можете вызвать его так:

myNumber.valueOf()

Примечание:

Объекты в строковом контексте конвертируются с помощью метода toString, который отличается от объектов String, конвертирующихся в строковые примитивы через использование valueOf. Все строковые объекты выполняют строковую конверсию, только если "[object type]". Но многие объекты не конвертируются в число, boolean или функцию.

См. также

parseInt, Object.toString.

watch

Наблюдает за свойством, которому присвоено значение, и запускает функцию, если оно появляется.
Метод из | Object
Реализован в | JavaScript 1.2, NES 3.0

Синтаксис
watch(prop, handler)

Параметры

prop | Имя свойства объекта.
handler | Вызываемая функция.

Описание

Наблюдает за присваиваемыми значениями в свойстве prop данного объекта, вызывая handler(prop, oldval, newval), если значение prop где-либо устанавливается, и сохраняя return-значение в этом свойстве. Точка контроля/watchpoint может фильтровать (или обнулять) присвоение значения, возвращая модифицированное newval (или старое oldval).

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

Чтобы удалить контрольную точку, используйте метод unwatch. По умолчанию метод watch наследуется каждым объектом - потомком от Object.

Отладчик JavaScript имеет функциональность, похожую на функциональность, предоставляемую этим методом, а также другие опции отладки. информацию об использовании отладчика см. в Getting Started with Netscape JavaScript Debugger.

Пример

<script language="JavaScript1.2">
o = {p:1}
o.watch("p",
   function (id,oldval,newval) {
      document.writeln("o." + id + " changed from "
         + oldval + " to " + newval)
      return newval
   })

o.p = 2
o.p = 3
delete o.p
o.p = 4

o.unwatch('p')
o.p = 5

</script>

Вывод скрипта:

o.p changed from 1 to 2
o.p changed from 2 to 3
o.p changed from 3 to 4

Назад Вперёд

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


Глава 1. Объекты, Методы и Свойства

Глава 1 Объекты, Методы и Свойства

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

Справочник организован так:

  • Полные статьи по каждому объекту появляются в алфавитном порядке; свойства и функции, не ассоциированные с каким-либо объектом, даны в Главе 2, "Свойства и Функции Верхнего Уровня/Top-Level."
    Каждая статья содержит полное описание объекта. Таблицы, включённые в описание каждого объекта, резюмируют свойства и методы объекта.

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

Назад Вперёд

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


Глава 5. Операции.

Глава 5 Операции

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

В следующей таблице содержится резюме по операциям JavaScript.

Таблица 5.1 Операции JavaScript.

Категория Операции | Операция | Описание
Арифметические | + | (Сложение) Складывает 2 числа.
 | ++ | (Инкремент/Увеличение) добавляет единицу к переменной, представляющей число (возвращая новое или старое значение переменной).
 | - | (Унарное отрицание, вычитание) Как унарная операция выполняет отрицание аргумента. Как бинарная операция, выполняет вычитание 2 чисел.
 | -- | (Декремент/Уменьшение) Вычитает единицу из переменной, представляющей число (возвращает новое или старое значение переменной).
 | * | (Умножение) Перемножает два числа.
 | / | (Деление) Выполняет деление одного числа на другое.
 | % | (Модулус) Вычисляет целочисленный остаток от деления двух чисел.
Строковые | + | (Конкатенация) Объединяются/складываются две строки.
 | += | Конкатенация двух строк и присвоение результата первому операнду.
Логические | && | (Логическое И) Возвращает первый операнд, если он может быть конвертирован в false; иначе, возвращает второй операнд. Таким образом, при использовании с Boolean-значениями, && возвращает true, если оба операнда true; иначе, возвращает false.
 | || | (Логическое ИЛИ) Возвращает первый операнд, если он может быть конвертирован в true; иначе, возвращает второй операнд. Таким образом, при использовании с Boolean-значениями, || возвращает true, если один из операндов true; если оба false, возвращает false.
 | ! | (Логическое НЕТ) Возвращает false, если его единственный операнд может быть конвертирован в true; иначе, возвращает true.
Побитовые | & | (Побитовое И) Возвращает 1 в битовой позиции, если биты обоих операндов являются единицами.
 | ^ | (Побитовое исключающее ИЛИ) Возвращает 1 в битовой позиции, если бит одного, но не обоих операндов являются единицами.
 | | | (Побитовое ИЛИ) Возвращает 1 в битовой позиции, если бит любого операнда равен 1.
 | ~ | (Побитовое НЕ) Побитовое отрицание операнда.
 | << | (Сдвиг влево) Сдвигает первый операнд в битовом представлении влево на количество битов, специфицированное вторым операндом, заполняя слева.
 | >> | (Сдвиг вправо с сохранением знака) Сдвигает первый операнд в битовом представлении вправо на количество битов, специфицированное вторым операндом, отбрасывая смещённые биты.
 | >>> | (Сдвиг вправо с заполнением нулями) Сдвигает первый операнд в битовом представлении вправо на количество битов, специфицированное вторым операндом, отбрасывая смещённые биты и заполняя слева нулями.
Операции Присвоения | = | Присваивает первому операнду значение второго операнда.
 | += | Складывает два числа и присваивает результат первому операнду.
 | -= | Вычитает одно число из другого и присваивает результат первому операнду.
 | *= | Перемножает два числа и присваивает результат первому операнду.
 | /= | Делит одно число на другое и присваивает результат первому операнду.
 | %= | Вычисляет целочисленный результат от деления двух чисел и присваивает результат первому операнду.
 | &= | Выполняет побитовое И и присваивает результат первому операнду.
 | ^= | Выполняет побитовое исключающее ИЛИ и присваивает результат первому операнду.
 | |= | Выполняет побитовое ИЛИ и присваивает результат первому операнду.
 | <<= | Выполняет сдвиг влево и присваивает результат первому операнду.
 | >>= | Выполняет сдвиг вправо с сохранением знака и присваивает результат первому операнду.
 | >>>= | Выполняет сдвиг вправо с заполнением нулями и присваивает результат первому операнду.
Операции Сравнения | == | Возвращает true, если операнды равны.
 | != | Возвращает true, если операнды не равны.
 | === | Возвращает true, если операнды равны и одного типа.
 | !== | Возвращает true, если операнды не равны и/или не одного типа.
 | > | Возвращает true, если левый операнд больше правого операнда.
 | >= | Возвращает true, если левый операнд больше или равен правому операнду.
 | < | Возвращает true, если левый операнд меньше правого операнда.
 | <= | Возвращает true, если левый операнд меньше или равен правому операнду.
Специальные | ? | Выполняет обычный "if...then...else".
 | , | Вычисляет два выражения и возвращает результат второго.
 | delete | Удаляет объект, свойство объекта или элемент по специфицированному индексу в массиве.
 | function | Определяет анонимную функцию.
 | in | Возвращает true, если специфицированное свойство имеется в специфицированном объекте.
 | instanceo | Возвращает true, если специфицированный объект имеет специфицированный тип объекта.
 | new | Создаёт экземпляр определённого пользователем типа объекта или одного из встроенных типов объекта.
 | this | Ключевое слово, используемое для обращения к текущему объекту.
 | typeof | Возвращает строку, указывающую тип невычисленного операнда.
 | void | Специфицирует выражение, вычисляемое без возвращения значения.

Операции Присвоения

Операция присвоения присваивает левому операнду значение правого операнда.

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

Базовая операция присвоения - знак равенства (=), который присваивает левому операнду значение правого операнда. То есть, x = y присваивает значение y значению x. Другие операции присвоения являются обычно сокращениями стандартных операций, как показано в таблице.

Таблица 5.2 Операции Присвоения

Сокращённая Операция | Значение
x += y | x = x + y
x -= y | x = x - y
x *= y | x = x * y
x /= y | x = x / y
x %= y | x = x % y
x <<= y | x = x << y
x >>= y | x = x >> y
x >>>= y | x = x >>> y
x &= y | x = x & y
x ^= y | x = x ^ y
x |= y | x = x | y

В нестандартных ситуациях операция присвоения не имеет идентичного значения из колонки Значение из Таблицы 5.2. Если левый операнд операции присвоения сам содержит операцию присвоения, левый операнд вычисляется только однократно. Например:

a[i++] += 5 //i вычисляется только один раз
a[i++] = a[i++] + 5 //i вычисляется дважды

Операции Сравнения

Операция сравнения сравнивает свои операнды и возвращает логическое значение, базируясь на верности /true сравнения.

Реализована в | JavaScript 1.0 JavaScript 1.3: добавлены операции === и !== JavaScript 1.4: == не рекомендуется для сравнения двух объектов JSObject. Используйте метод JSObject.equals.
Версия ECMA | ECMA-262 содержит все операции сравнения, кроме === и !== Версия ECMA-262 Edition 3 добавляет === и !==

Операнды могут иметь числовое или строковое значение. Строки сравниваются на базе стандартного лексикографического упорядочивания с использованием значений Unicode.

Boolean-значение возвращается как результат сравнения:

  • Две строки равны, если они имеют одинаковые последовательности символов, один размер и одинаковые символы в соответствующих позициях.

  • Два числа равны, если они численно равны (имеют одно числовое значение). NaN не равно ничему, включая NaN. Положительные и отрицательные нули равны.

  • Два объекта равны, если они ссылаются на один и тот же Object.

  • Два Булевых операнда равны, если они оба true или false.

  • Типы Null и Undefined являются == (но не ===).

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

Таблица5.3  Операции Сравнения

Операция

Описание

Примеры, возвращающие true1

Равно (==)

Возвращает true, если операнды равны. Если два операнда имеют разные типы, JavaScript пытается конвертировать операнды к одному типу для сравнения.

3 == var1
"3" == var1
3 == '3'

Не равно (!=)

Возвращает true, если операнды не равны. Если два операнда имеют разные типы, JavaScript пытается конвертировать операнды к одному типу для сравнения.

var1 != 4
var1 != "3"

Строго равно (===)

Возвращает true, если операнды равны и одного типа.

3 === var1

Строго не равно (!==)

Возвращает true, если операнды не равны и/или разных типов.

var1 !== "3"
3 !== '3'

Больше чем (>)

Возвращает true, если левый операнд больше, чем правый операнд.

var2 > var1

Больше или равно (>=)

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

var2 >= var1
var1 >= 3

Меньше чем (<)

Возвращает true, если левый операнд меньше, чем правый операнд.

var1 < var2

Меньше чем или равно (<=)

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

var1 <= var2
var2 <= 5

1

 В этих примерах предполагается, что переменной var1 присваивается значение 3, а переменной var2 присваивается значение 4.

 Использование Операций Равенства

Стандартные операции сравнения (== и !=) сравнивают два операнда, независимо от их типа.
Операции строгого равенства (=== и !==) выполняют сравнение равенства операндов одного типа. Используйте операции строгого равенства, если операнды обязаны быть специфического типа и значения или если важен точный тип операндов. Иначе, используйте стандартные операции равенства, которые позволяют проверить идентичность двух операндов, даже если они имеют разные типы.

Если нужна конверсия типа, JavaScript конвертирует операнды типов String, Number, Boolean или Object таким образом:

  • При сравнении числа и строки, строка конвертируется в числовое значение. JavaScript пытается конвертировать строковой числовой литерал в значение типа Number. Сначала математическое значение получается из строкового числового литерала. Затем это значение округляется до ближайшего значения типа Number.

  • Если один из операндов имеет тип Boolean, он конвертируется в 1, если он true, и в +0, если он false.

  • Если объект сравнивается с несколькими строками, JavaScript пытается возвратить значение по умолчанию для этого объекта.

    Операции пытаются конвертировать объект в примитивное значение, String или Number, используя методы valueOf и toString объекта. Если эта попытка конвертации не удаётся, генерируется ошибка времени выполнения.

Вы не можете использовать стандартную операцию равенства (==) для сравнения экземпляров JSObject. Для таких сравнений используйте метод JSObject.equals.

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

Поведение стандартных операций равенства (== и !=) зависит от версии JavaScript.

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

Можно использовать стандартную операцию равенства (==) или JSObject.equals для сравнения экземпляров JSObject.

JavaScript 1.2.

Стандартные операции равенства (== и !=) не выполняют конверсию типов перед выполнением сравнения. Операции строгого равенства (=== и !==) недоступны.

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

Стандартные операции равенства (== и !=) выполняют конверсию типов до выполнения сравнения.

Операции строгого равенства (=== и !==) недоступны.

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

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

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

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

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

% (Modulus)

Модулус-операция используется так:

var1 % var2

Возвращает целочисленный остаток от деления первого операнда на второй, то есть, var1 modulo var2, в вышеуказанной операции , где var1 и var2 это переменные. Функция modulo даёт целочисленный остаток от деления var1 на var2. Например, 100 % 3 возвращает 1.

++ (Инкремент/Увеличение)

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

var++ или ++var

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

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

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

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

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

var-- или --var

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

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

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

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

- (Унарное Отрицание)

Операция унарного отрицания ставится перед операндом и выполняет его отрицание. Например, y = -x меняет знак (отрицает) значения x и присваивает это значение переменной y; то есть, если x = 3, y может получить значение -3, а x останется в значении 3.

Побитовые Операции

Побитовые операции рассматривают свои операнды как наборы 32-битных значений (нулей и единиц), а не как десятеричные, 16-ричные или 8-ричные числа. Например, десятеричное число 9 имеет двоичное представление 1001. Побитовые операции выполняют свои операции с такими двоичными представлениями, но возвращают стандартные числовые значения JavaScript.

В таблице дано резюме по битовым операциям JavaScript:

Таблица 5.4 Побитовые Операции

Операция | Использование | Описание
Побитовое И | a & b | Возвращает 1 в каждой битовой позиции, в которой соответствующие биты обоих операндов равны 1.
Побитовое ИЛИ | a | b | Возвращает 1 в каждой битовой позиции, в которой соответствующий бит одного или обоих операндов равен 1.
Побитовое исключающее ИЛИ | a ^ b | Возвращает 1 в каждой битовой позиции, в которой соответствующий бит одного, но не обоих операндов, равен 1.
Побитовое НЕ | ~ a | Инвертирует биты операндов.
Сдвиг влево | a << b | Сдвигает a в двоичном представлении на b битов влево, заполняя справа нулями.
Сдвиг вправо с сохранением знака | a >> b | Сдвигает a в двоичном представлении на b битов вправо, отбрасывая смещённые биты.
Сдвиг вправо с заполнением нулями | a >>> b | Сдвигает a в двоичном представлении на b битов вправо, отбрасывая смещённые биты и заполняя слева нулями.

Побитовые Логические Операции

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

Концептуально логические побитовые операции работают так:

  • Операнды конвертируются до 32-битных целых и выражаются последовательностью битов (нулей и единиц).

  • Каждый бит первого операнда сравнивается с соответствующим битов второго операнда: первый бит с первым, второй со вторым, и так далее.

  • Операция применяется к каждой паре битов, и результат конструируется в битах.

Например, 1001 это двоичное представление десятеричной цифры 9, а 1111 - цифры 15.

Итак, если побитовые операции применить к этим значениям, результаты будут такими:

  • 15 & 9 даст 9 (1111 & 1001 = 1001)

  • 15 | 9 даст 15 (1111 | 1001 = 1111)

  • 15 ^ 9 даст 6 (1111 ^ 1001 = 0110)

Побитовые Операции Сдвига

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

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

Операции сдвига конвертируют свои операнды до 32-битных чисел и возвращают результат того же типа, что и у левого операнда.

<< (Сдвиг Влево)

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

Например, 9<<2 даёт 36, поскольку 1001 сдвигается на 2 бита влево и становится 100100, т.е. 36.

>> (Сдвиг Вправо с Сохранением Знака)

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

Например, 9>>2 даст 2, поскольку 1001, двинутое на 2 бита вправо, становится 10, т.е. 2. Аналогично, -9>>2 даст -3, поскольку знак сохраняется.

>>> (Сдвиг Вправо с Заполнением Нулями)

Сдвигает первый операнд на специфицированное количество битов вправо.

Излишние биты, сдвинутые вправо, отбрасываются. Слева биты заполняются нулями.

Например, 19>>>2 даёт 4, поскольку 10011, сдвинутое два раза вправо, становится 100, то есть 4. Для неотрицательных чисел сдвиг вправо с заполнением нулями и сдвиг вправо с сохранением знака дают тот же самый результат.

Логические Операции

Логические операции обычно используются с Boolean (логическими) значениями; если они имеются, они возвращают Boolean/Булево значение. Однако операции && и || в действительности возвращают значение одного из специфицированных операндов, поэтому, если эти операции используются с не-Boolean значениями, они могут вернуть не-Boolean значение.

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

Логические операции описаны в следующей таблице.

Таблица 5.5 Логические Операции

Операция | Использование | Описание
&& | expr1 && expr2 | (Логическое И) Возвращает expr1, если может быть конвертировано в false; иначе, возвращает expr2. Таким образом, при использовании с Boolean-значениями && возвращает true, если оба операнда true; иначе возвращает false.
|| | expr1 || expr2 | (Логическое ИЛИ) Возвращает expr1, если может быть конвертировано в true; иначе, возвращает expr2. Таким образом, при использовании с Boolean-значениями || возвращает true, если любой из операндов true; если оба false, возвращает false.
! | !expr | (Логическое НЕ) Возвращает false, если его единственный операнд может быть конвертирован в true; иначе возвращает true.

Примерами выражений, которые могут быть конвертированы в false, являются выражения, дающие при их вычислении null, 0, пустую строку ("") или undefined.

Хотя операции&& и || можно использовать с не-Boolean-значениями, их можно продолжать рассматривать как Boolean-операции, поскольку их return-значения всегда могут быть конвертированы в Boolean-значения.

Сокращённый Цикл Вычисления.

Поскольку логические выражения вычисляются слева направо, они тестируются на возможность "укороченного/short-circuit" вычисления по следующим правилам:

  • false && что-либо сокращённо вычисляется в false.

  • true || что-либо сокращённо вычисляется в true.

Логические правила гарантируют, что эти вычисления всегда корректны. Обратите внимание, что часть что-либо не вычисляется, поэтому выполнение этого что-либо в качестве побочного эффекта никакого эффекта иметь не будет.

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

JavaScript 1.0 и 1.1.

Операции && и || ведут себя так:

Операция | Поведение
&& | Если первый операнд (expr1) может быть конвертирован в false, операция && возвращает false вместо значения expr1.
|| | Если первый операнд (expr1) может быть конвертирован в true, операция || возвращает true вместо значения expr1.

Примеры

Вот примеры применения операции && (логическое И):

a1=true && true       // t && t возвращает true
a2=true && false      // t && f возвращает false
a3=false && true      // f && t возвращает false
a4=false && (3 == 4)  // f && f возвращает false
a5="Cat" && "Dog"     // t && t возвращает Dog
a6=false && "Cat"     // f && t возвращает false
a7="Cat" && false     // t && f возвращает false

А вот примеры применения операции || (логическое ИЛИ):

o1=true || true       // t || t возвращает true
o2=false || true      // f || t возвращает true
o3=true || false      // t || f возвращает true
o4=false || (3 == 4)  // f || f возвращает false
o5="Cat" || "Dog"     // t || t возвращает Cat
o6=false || "Cat"     // f || t возвращает Cat
o7="Cat" || false     // t || f возвращает Cat

Примеры применения операции ! (логическое НЕ):

n1=!true              // !t возвращает false
n2=!false             // !f возвращает true
n3=!"Cat"             // !t возвращает false

Строковые Операции (операции работы со строками)

Помимо операций сравнения, которые можно использовать со сроками, операция (+) выполняет конкатенацию (объединение) двух строковых значений, возвращая строку, являющуюся результатом объединения двух строк-операндов. Например, "my " + "string" возвратит строку "my string".

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

Сокращённая операция присвоения += также может использоваться для конкатенации строк. Например, если переменная mystring имеет значение "alpha," то выражение mystring += "bet" вычисляется в "alphabet", и это значение присваивается переменной mystring.

Специальные Операции

?: (Операция Проверки Условия)

Операция проверки условия является единственной операцией в JavaScript, принимающей три операнда. Эта операция часто используется как сокращение вместо операции if.

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

Синтаксис

condition ? expr1 : expr2

Параметры
condition | Выражение, вычисляемое в true или false.
expr1, expr2 | Выражения со значениями любого типа.

Описание

Если condition равно true, операция возвращает значение выражения expr1; иначе - возвращает значение выражения expr2. Например, чтобы отобразить разные сообщения, в зависимости от значения переменной isMember, можно использовать такой оператор:

document.write ("The fee is " + (isMember ? "$2.00" : "$10.00"))

, (Операция "запятая")

Операция "запятая" вычисляет оба операнда и возвращает значение второго операнда.
Реализована в | JavaScript 1.0
Версия ECMA | ECMA-262

Синтаксис

expr1, expr2

Параметры
expr1, expr2

Любые выражения.

Описание

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

Например, если a это 2-мерный массив с 10 элементами по измерению, то следующий код использует операцию "запятая" для инкремента двух переменных за один проход. Код печатает значения элементов по диагонали массива:

for (var i=0, j=9; i <= 9; i++, j--)
   document.writeln("a["+i+","+j+"]= " + a[i,j])

delete

Операция delete удаляет объект, свойство объекта или элемент массива по специфицированному индексу.
Реализована в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA-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) {
//

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

function

Операция 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.

in

Операция in возвращает true, если специфицированное свойство имеется в специфицированном объекте.

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

JavaScript 1.4

Синтаксис

propNameOrNumber in objectName

Параметры
propNameOrNumber | Строка или числовое выражение, представляющее имя свойства или индекс массива.
objectName | Имя объекта.

Описание

Некоторые примеры использования операции in:

// Массивы
trees=new Array("redwood","bay","cedar","oak","maple")
0 in trees        // возвращает true
3 in trees        // возвращает true
6 in trees        // возвращает false
"bay" in trees    // возвращает false (Вы обязаны специфицировать номер индекса,
                  // а не значение по этому индексу)
"length" in trees // возвращает true (length это свойство Array)

// Предопределённые объекты
"PI" in Math          // возвращает true
myString=new String("coral")
"length" in myString  // возвращает true

// Специальные объекты
mycar = {make:"Honda",model:"Accord",year:1998}
"make" in mycar  // возвращает true
"model" in mycar // возвращает true

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

color1=new String("green")
"length" in color1 // возвращает true
color2="coral"
"length" in color2 //генерирует ошибку (coral это не String-объект)

Использование in с удалёнными или undefined свойствами.

Если Вы удаляете свойство операцией delete, операция in возвратит false для данного свойства.

mycar = {make:"Honda",model:"Accord",year:1998}
delete mycar.make
"make" in mycar  // возвращает false

trees=new Array("redwood","bay","cedar","oak","maple")
delete trees[3]
3 in trees // возвращает false

Если Вы устанавливаете свойство в undefined, но не удаляете его, операция in возвращает true для этого свойства.

mycar = {make:"Honda",model:"Accord",year:1998}
mycar.make=undefined
"make" in mycar  // возвращает true

trees=new Array("redwood","bay","cedar","oak","maple")
trees[3]=undefined
3 in trees // возвращает true

Об использовании операции in с удалёнными элементами массива см. delete.

instanceof

Операция instanceof возвращает true, если специфицированный объект имеет специфицированный тип.

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

JavaScript 1.4

Синтаксис

objectName instanceof objectType

Параметры
objectName | Имя объекта для сравнения с objectType.
objectType | Тип объекта.

Описание

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

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

color1=new String("green")
color1 instanceof String // возвращает true
color2="coral"
color2 instanceof String // возвращает false (coral не является String-объектом)

Примеры

См. также примеры для throw.

Пример 1.

В этом коде instanceof используется для определения, является ли theDay Date -объектом. Поскольку theDay является Date -объектом, операторы в операторе if выполняются.

theDay=new Date(1995, 12, 17)
if (theDay instanceof Date) {
   // выполняемые операторы
}

Пример 2.

В этом коде instanceof используется для демонстрации того, что объекты String и Date имеют также тип Object (они получены из Object).

myString=new String()
myDate=new Date()

myString instanceof String // возвращает true
myString instanceof Object // возвращает true
myString instanceof Date   // возвращает false

myDate instanceof Date     // возвращает true
myDate instanceof Object   // возвращает true
myDate instanceof String   // возвращает false

Пример 3.

В это коде создаётся тип объектов Car и экземпляр этого типа объектов, mycar. Операция instanceof демонстрирует, что объект mycar имеет тип Car и тип Object.

function Car(make, model, year) {
this.make = make
this.model = model
this.year = year
}
mycar = new Car("Honda", "Accord", 1998)
a=mycar instanceof Car // возвращает true
b=mycar instanceof Object //

возвращает true

new

Операция new создаёт экземпляр определяемого пользователем типа объекта или встроенного типа объекта, имеющий конструктор функции.
Реализована в | JavaScript 1.0
Версия ECMA | ECMA-262

Синтаксис

objectName = new objectType (param1 [,param2] ...[,paramN])

Параметры
objectName | Имя нового экземпляра объекта.
objectType | Тип объекта. обязан быть функцией, определяющей тип объекта.
param1...paramN | Значения свойств объекта. эти свойства являются параметрами, определёнными для функции objectType.

Описание

Создание определяемого пользователем типа объектов проходит в два шага:

  1. Определяется тип объекта путём написания функции.

  2. Создаётся экземпляр объекта с помощью оператора new.

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

Вы всегда можете добавить свойство к ранее определённому объекту. Например, оператор car1.color = "black" добавляет свойство color в car1 и присваивает ему значение "black". Однако это не влияет на другие объекты. Чтобы добавить свойство ко всем объектам того же типа, Вы обязаны добавить свойство в определение типа объекта car.

Вы можете добавить свойство к ранее определённому объекту

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

Дополнительно см. prototype.

Car.prototype.color=null
car1.color="black"
birthday.description="The day you were born"

Примеры

Пример 1:

Тип объекта и экземпляр объекта. Предположим, Вы хотите создать тип объекта для автомобилей. Вы хотите назвать это тип car и Вы хотите, чтобы он имел свойства make, model и year. Для выполнения этого Вы можете написать следующую функцию:

function car(make, model, year) {
   this.make  = make
   this.model = model
   this.year  = year
}

Теперь Вы можете создать объект под названием mycar таким образом:

mycar = new car("Eagle", "Talon TSi", 1993)

Этот оператор создаёт mycar и присваивает его свойствам специфицированные значения. Теперь значением mycar.make является строка "Eagle", а mycar.year - это целое число 1993, и так далее.

Вы можете создать любое количество объектов типа car через вызов new. Например:

kenscar = new car("Nissan", "300ZX", 1992)

Пример 2:

Свойство объекта, которое само является объектом. Предположим, Вы определяете объект под названием person:

function person(name, age, sex) {
   this.name = name
   this.age = age
   this.sex = sex
}

и создаёте два экземпляра person-объектов:

rand = new person("Rand McNally", 33, "M")
ken = new person("Ken Jones", 39, "M")

затем Вы можете переписать определение типа car для включения в него свойства owner, которое принимает person-объект:

function car(make, model, year, owner) {
   this.make = make;
   this.model = model;
   this.year = year;
   this.owner = owner;
}

Чтобы создать новые экземпляры объекта, Вы пишете:

car1 = new car("Eagle", "Talon TSi", 1993, rand);
car2 = new car("Nissan", "300ZX", 1992, ken)

Вместо передачи строкового литерала или целочисленного значения при создании новых объектов, предыдущие операторы передают объекты rand и ken в качестве параметров для owners. Чтобы найти имя владельца машины car2, Вы можете получить доступ к свойству:

car2.owner.name

this

Это ключевое слово ссылается на текущий объект. Вообще, в методе this ссылается на вызывающий объект.
Реализован в | JavaScript 1.0
Версия ECMA | ECMA-262

Синтаксис

this[.propertyName]

Примеры

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

function validate(obj, lowval, hival) {
   if ((obj.value < lowval) || (obj.value > hival))
      alert("Invalid Value!")
}

Вы можете вызвать validate в обработчике события onChange в каждом элементе формы, используя this для передачи е1 (функции) элемента формы, как в следующем примере:

<B>Enter a number between 18 and 99:</B>
<INPUT TYPE = "text" NAME = "age" SIZE = 3
   onChange="validate(this, 18, 99)">

typeof

Операция typeof используется одним из следующих способов:

1. typeof operand
2. typeof (operand)

Операция typeof возвращает строку, указывающую тип невычисленного операнда.
operand это строка, переменная, ключевое слово или объект, тип которого возвращается. Скобки не обязательны.
Реализована в | JavaScript 1.1
Версия ECMA | ECMA-262

Предположим, Вы определили следующие переменные:

var myFun = new Function("5+2")
var shape="round"
var size=1
var today=new Date()

Операция typeof возвращает для этих переменных следующие результаты:

typeof myFun is object
typeof shape is string
typeof size is number
typeof today is object
typeof dontExist is undefined

Для ключевых слов true и null операция typeof возвращает:

typeof true is boolean
typeof null is object

Для чисел или строк операция typeof возвращает:

typeof 62 is number
typeof 'Hello world' is string

Для значений свойств операция typeof возвращает тип значения, содержащегося в свойстве:

typeof document.lastModified is string
typeof window.length is number
typeof Math.LN2 is number

Для методов и функций операция typeof возвращает:

typeof blur is function
typeof eval is function
typeof parseInt is function
typeof shape.split is function

Для предопределённых объектов операция typeof возвращает:

typeof Date is function
typeof Function is function
typeof Math is function
typeof Option is function
typeof String is function

void

Операция void используется одним из следующих способов:

1. void (expression)
2. void expression

Операция void специфицирует выражение, вычисляемое без возвращения значения.
expression это вычисляемое выражение JavaScript. Скобки не обязательны, но хорошим стилем является их наличие.
Реализована в | JavaScript 1.1
Версия ECMA | ECMA-262

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

Следующий код создаёт гипертекстовую ссылку, которая ничего не выполняет, если пользователь щёлкнет её. Если пользователь щёлкает ссылку, void(0) вычисляется в 0, но в JavaScript это не вызывает действий.

<A HREF="javascript:void(0)">Click here to do nothing</A>

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

<A HREF="javascript:void(document.form.submit())">
Click here to submit</A>

Назад Вперёд

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


Pakages

Объект верхнего уровня, используемый для доступа к Java-классам из кода JavaScript.

Объект ядра |
Реализован в | JavaScript 1.1, NES 2.0

Создание

Объект Packages это объект верхнего уровня, предопределённый в JavaScript. Вы можете автоматически получать к нему доступ без использования конструктора или вызова метода.

Описание

Объект Packages даёт доступ к public-методам и полям произвольного Java-класса из JavaScript. Свойства java, netscape и sun представляют пакеты java.*, netscape.* и sun.*, соответственно. Используйте стандартную нотацию точкой Java для доступа к классам, методам и полям этих пакетов. Например, Вы можете иметь доступ к конструктору класса Frame:

var theFrame = new Packages.java.awt.Frame();

Для удобства, JavaScript предоставляет объекты верхнего уровня netscape, sun и java, которые являются синонимами свойств Packages с теми же именами. Соответственно, Вы может получить доступ к Java-классам этих пакетов без ключевого слова Packages:

var theFrame = new java.awt.Frame();

Свойство className представляет полное квалифицированное имя любого Java-класса, доступного в JavaScript. Вы обязаны использовать объект Packages для доступа к классам вне пакетов netscape, sun и java.

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

Свойство | Описание
className | Полное квалифицированное имя Java-класса в пакетах, кроме пакетов netscape, java или sun, доступного в JavaScript.
java | Любой класс в Java-пакете java.*
netscape | Любой класс в Java-пакете netscape.*
sun | Любой класс в Java-пакете sun.*

Примеры

Эта JavaScript-функция создаёт диалоговый бокс Java:

function createWindow() {
   var theOwner = new Packages.java.awt.Frame();
   var theWindow = new Packages.java.awt.Dialog(theOwner);
   theWindow.setSize(350,200);
   theWindow.setTitle("Hello, World");
   theWindow.setVisible(true);
}

В это примере функция создаёт экземпляр theWindow как новый Packages-объект. Методы setSize, setTitle и setVisible доступны в JavaScript как public-методы из java.awt.Dialog.

className

Полное квалифицированное имя Java-класса в пакетах, кроме пакетов netscape, java или sun, доступного (класса) в JavaScript.
Свойство из | Packages
Реализовано в | 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.

java

Любой класс Java-пакета java.*.
Свойство из | Packages
Реализовано в | JavaScript 1.1, NES 2.0

Синтаксис
Packages.java

Описание

Используйте свойство java для доступа к любому классу пакета java из кода JavaScript. Заметьте, что объект верхнего уровня java является синонимом Packages.java.

Примеры

Следующий код получает в JavaScript доступ к конструктору класса java.awt.Frame:

var theOwner = new Packages.java.awt.Frame();

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

var theOwner = new java.awt.Frame();

netscape

Любой класс из Java-пакета netscape.*.
Свойство из | Packages
Реализовано в | JavaScript 1.1, NES 2.0

Синтаксис
Packages.netscape

Описание

Используйте свойство netscape для доступа к любому классу пакета netscape из кода JavaScript. Заметьте, что объект верхнего уровня netscape является синонимом Packages.netscape.

Примеры

См. примеры для

Packages.java.

sun

Любой класс из Java-пакета sun.*.

Свойство из | Packages
Реализовано в | JavaScript 1.1, NES 2.0

Синтаксис
Packages.sun

Описание

Используйте свойство sun для доступа к любому классу пакета sun из кода JavaScript. Заметьте, что объект верхнего уровня sun является синонимом Packages.sun.

Примеры

См. примеры для

Packages.java.

Назад Вперёд

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


Приложения

Часть 4 Приложения

Приложение A Зарезервированные Слова

В этом приложении указаны все зарезервированные слова JavaScript.


Справочник по Классам LiveConnect

Часть 3. Справочник по Классам LiveConnect.

Глава 6. Java-классы, Конструкторы и Методы.

В этой главе содержится информация о Java-классах, используемых для LiveConnect вместе с их конструкторами и методами.

Это алфавитный справочник по классам, которые дают доступ Java-объектам к коду JavaScript.


Элементы Языка

Часть 2 Элементы Языка

Глава 3. Операторы.

В этой главе рассмотрены все операторы JavaScript.

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

Один оператор может занимать несколько строк. несколько операторов могут находиться на одно строке, разделённые символами "точка с запятой".

Глава 4. Комментарии.

Описан синтаксис комментариев JavaScript.

Глава 5 Операторы

В JavaScript имеются операторы присвоения, сравнения, арифметические, побитовые, логические, строковые и специальные.

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


Справочник по Объектам

Часть 1 Объекты. Справочник.

Глава 1 Объекты, Методы и Свойства

Документация обо всех объекта JavaScript и их методах и свойствах.

Это алфавитный справочник основных возможностей JavaScript.

Глава 2 Свойства и Функции Верхнего Уровня

Все свойства и функции JavaScript, не ассоциированные с объектами.

В спецификации ECMA эти свойства и функции называются свойствами и методами объекта global.

Назад Вперёд

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


Предисловие

JavaScript это разработанный Netscape межплатформенный объектно-ориентированный язык скриптов (сценариев). Эта книга является справочником по ядру языка JavaScript.

Предисловие содержит следующие разделы:

  • Новые Возможности Этой Версии

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

  • Версии JavaScript

  • Где Найти Информацию о JavaScript

  • Соглашения по Документам

Новые Возможности Этой Версии

В JavaScript версии 1.5 имеются следующие новые возможности и улучшения:

  • Ошибки времени выполнения. Ошибки времени выполнения теперь сообщаются как исключения.

  • Улучшенное форматирование чисел. Включены методы Number.prototype.toExponential, Number.protoytpe.toFixed и Number.prototype.toPrecision. См. ссылки 1, 2 и 3.

  • Регулярные выражения:
    • "Жадные" квантификаторы +, *, ? и {} могут иметь после себя ? для форсирования их в не-жадные. См...

    • Неохватывающие скобки (?:x) могут использоваться вместо охватывающих скобок (x). Если используются неохватывающие скобки, совпадающие подвыражения не доступны как обратные ссылки/back-references. См...

    • Поддерживаются положительные и отрицательные утверждения. И те, и другие утверждают совпадение, в зависимости от того, что идёт после совпадающей строки. См. статьи о (?=) и (?!).

    • Флаг m добавлен для специфицирования того, что регулярное выражение должно совпадать с несколькими строками. См...

  • Обявление условных функций. Функции могут теперь объявляться в if. См...

  • Функции выражений. Функции могут теперь объявляться внутри выражения. См...

  • Несколько операторов catch. Поддерживается наличие нескольких catch в операторе try...catch. См...

  • Константы. Поддерживаются именованные константы только-для-чтения. Эта возможность имеется только в C-реализации JavaScript. См...

  • Getter'ы и Setter'ы. JavaScript writer'ы могут теперь добавлять getter и setter методы к своим объектам. Эта возможность имеется только в C-реализации JavaScript. См. определение Getter и Setter - методов в Главе 7 в книге "Ядро JavaScript. Руководство по Использованию".

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

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

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

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

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

Версии JavaScript

Каждая версия Navigator'а поддерживает различные версии JavaScript. Чтобы помочь Вам создавать скрипты, совместимые с несколькими версиями Navigator'а, в этом документе указывается версия JavaScript для каждой реализованной опции.

В таблице перечислены версии JavaScript, поддерживаемые версиями Navigator.
Версии Navigator'а, предшествовавшие версии 2.0, не поддерживают JavaScript.

Таблица 1 Версии JavaScript и Navigator

Версия JavaScript | Версия Navigator
JavaScript 1.0 | Navigator 2.0
JavaScript 1.1 | Navigator 3.0
JavaScript 1.2 | Navigator 4.0-4.05
JavaScript 1.3 | Navigator 4.06-4.7x
JavaScript 1.4 | -
JavaScript 1.5 | Navigator 6.0 Mozilla (свободно распространяемый браузер)

Каждая версия Netscape Enterprise Server также поддерживает различные версии JavaScript.

Чтобы помочь Вам создавать скрипты, совместимые с несколькими версиями

Enterprise Server, этот учебник использует сокращения для обозначения версии, в которой опция реализуется.

Таблица 2 Версии JavaScript и Netscape Enterprise Server

Аббревиатура | Версия Enterpriser Server
NES 2.0 | Netscape Enterprise Server 2.0
NES 3.0 | Netscape Enterprise Server 3.0

Где Найти Информацию о JavaScript

Документация о ядре JavaScript состоит из следующих книг:

  • "Ядро JavaScript, Руководство по Использованию." содержит информацию о ядре языка JavaScript и его объектах.

  • "Ядро JavaScript Справочник." (данная книга) содержит справочный материал о ядре языка JavaScript.

Если Вы новичок в JavaScript, начните с книги "Ядро JavaScript, Руководство по Использованию."

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

DevEdge, онлайновый ресурс Netscape для разработчиков, содержит информацию, которая может быть использована Вами при работе в JavaScript. Следующие URL представляют определённый интерес:

  • http://developer.netscape.com/docs/manuals/javascript.html

    Страница JavaScript в библиотеке DevEdge содержит документы о JavaScript. Эта страница часто изменяется. Необходимо периодически посещать её для получения свежей информации.

  • http://developer.netscape.com/docs/manuals/

    Библиотека DevEdge содержит документацию о многих продуктах и технологиях Netscape.

  • http://developer.netscape.com

    Домашняя страница DevEdge даёт доступ ко всем ресурсам DevEdge.

  • http://mozilla.org/js/

    Mozilla.org координирует разработку Mozilla, свободно распространяемого браузера, на котором основан Netscape 6. Вы можете найти информацию о JavaScript на странице JavaScript-проекта Mozilla'ы, а также дискуссию по вопросам JavaScript в группе новостей netscape.public.mozilla.jseng.

Соглашения по Документам

Приложения JavaScript могут работать на различных операционных системах (ОС); информация в этой книге применима ко всем версиям. Пути файлов и директорий даны в формате Windows (с \ для разделения имён директорий). Для Unix-версий пути директорий - те же, только используются / вместо \.

В этой книге используются uniform resource locators (URL)/универсальные локаторы ресурсов в следующей форме:

http://сервер.домен/путь/файл.html

В этих URL сервер это имя сервера, на котором Вы запускаете своё приложение, такое как research1 или www;
домен это имя Вашего Internet-домена, такое как netscape.com или uiuc.edu;
путь это структура директории на сервере;
файл.html это имя конкретного файла.

В целом элементы в URL, введённые шрифтом italic, это шаблоны, а элементы в нормальном моноширинном шрифте - литералы. Если на Вашем сервере имеется Secure Sockets Layer (SSL), Вы можете использовать https вместо http в URL.

В этой книге используются следующие соглашения по шрифтам:

  • Моноширинный шрифт используется в коде примеров и листинге кода, в API и элементах языка (таких как имена методов и свойств), названиях файлов, пути, названиях директорий, тэгах HTML и в любом тексте, который должны выводиться на экран.
    (Моноширинный italic-шрифт используется для замещаемых болванок-шаблонов, вставленных в код.)

  • Шрифт Italic используется для названий книг, выделения, переменных и заглушек-шаблонов и слов, используемых в литеральном смысле.

  • (Полу)Жирный шрифт используется для справочных терминов.

Назад    Вперёд

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


RegExp

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

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

Объект ядра

Реализован в

JavaScript 1.2, NES 3.0

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

JavaScript 1.5, NES 6.0: добавлен флаг m, нежадный модификатор, незахватывающие скобки, "смотрящие вперёд"/lookahead-утверждения. ECMA 262, Edition 3.

Создание

Формат литерального текста или функция конструктора RegExp.

Литеральный формат используется так:

/pattern/flags

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

new RegExp("pattern"[, "flags"])

Параметры

pattern

Текст регулярного выражения.

flags

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

  • g: глобальная подстановка

  • i: игнорировать регистр

  • m: подставлять на нескольких строках

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

/ab+c/i
new RegExp("ab+c", "i")

Описание

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

re = new RegExp("\\w+")
re = /\w+/

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

Таблица 1.1 Специальные символы в регулярных выражениях

TD>*

Символ

Значение

\

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

Например, /b/ совпадает с символом 'b'. Поместив обратную наклонную черту-backslash перед b, то есть /\b/, придаём символу специальное значение - "граница слова".

-или-

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

Например, * это специальный символ, который означает 0 или более вхождений предшествующего символа; например, /a*/ означает совпадение с 0 или более a. Чтобы искать * литерально, поставьте перед ним backslash; например, /a\*/ совпадает с 'a*'.

^

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

Например, /^A/ не совпадает с 'A' в строке "an A", но совпадает с первой 'A' в строке "An A."

$

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

Например, /t$/ не совпадает с 't' в "eater", но совпадает с ним в "eat".

Совпадение с предыдущим символом 0 или более раз.

Например, /bo*/ совпадает с 'boooo' в "A ghost booooed" и с 'b' в "A bird warbled", но ничего не совпадает в "A goat grunted".

+

Совпадение с предыдущим символом 1 или более раз. Эквивалентно {1,}.

Например, /a+/ совпадает с 'a' в "candy" и со всеми 'a' в "caaaaaaandy".

?

Совпадение с предыдущим символом 0 или 1 раз.

Например, /e?le?/ совпадает с 'el' в "angel" и с 'le' в "angle."

если используется сразу после одного из квантификаторов *, +, ? или {}, делает квантификатор нежадным (совпадает минимальное число раз), что противоположно действию по умолчанию, когда квантификатор жадничает (совпадает максимальное число раз).

Также используется во вперёдсмотрящих утверждениях, которые описаны в (?=), (?!), и (?:) в этой таблице.

.

(Десятичная точка) совпадает с любым одиночным символом, исключая символ новой строки.

Например, /.n/ совпадает с 'an' и 'on' в "nay, an apple is on the tree", но не с 'nay'.

(x)

Совпадает с 'x' и запоминает совпадение. Это называется "захватывающие скобки".

Например, /(foo)/ совпадает с и запоминает 'foo' в "foo bar." Совпавшая подстрока может быть вызвана из элементов результирующего массива [1], ..., [n] или из предопределённых свойств $1, ..., $9 RegExp-объектов.

(?:x)

Совпадает с 'x', но не запоминает совпадение. Это называется "незахватывающие скобки". Совпавшая подстрока не может быть вызвана из элементов результирующего массива [1], ..., [n] или из предопределённых свойств $1, ..., $9 RegExp-объектов.

x(?=y)

Совпадает с 'x', только если после 'x' следует 'y'. Например, /Jack(?=Sprat)/ совпадает с 'Jack', только если следом идёт 'Sprat'. /Jack(?=Sprat|Frost)/ совпадает с 'Jack', только если следом идёт 'Sprat' или 'Frost'. Однако ни 'Sprat', ни 'Frost' не являются частью результатов совпадения.

x(?!y)

Совпадает с 'x', только если после 'x' не следует 'y'. Например, /\d+(?!\.)/ совпадает с числом, только если следом не идёт десятичная точка.
/\d+(?!\.)/.exec("3.141") совпадает с 141, но не совпадает с 3.141.

x|y

Совпадает с 'x' или с 'y'.

Например, /green|red/ совпадает с 'green' в "green apple" и с 'red' в "red apple."

{n}

Где n это положительное целое. Совпадает точно с n появлений предшествующего элемента.

Например, /a{2}/ не совпадает с 'a' в "candy," но совпадает со всеми 'a' в "caandy" и с первыми двумя 'a' в "caaandy."

{n,}

Где n это положительное целое. Совпадает с не менее, чем n появлений предшествующего элемента.

Например, /a{2,}не совпадает с 'a' в "candy," но совпадает со всеми 'a' в "caandy" и в "caaaaaaandy."

{n,m}

Где n и m это положительные целые. Совпадает с минимум n и с максимум m появлений предшествующего элемента.

Например, /a{1,3}/ не совпадает ни с чем в "cndy", совпадает с 'a' в "candy," с первыми двумя 'a' в "caandy" и с первыми тремя 'a' в "caaaaaaandy". Обратите внимание, что при совпадении с "caaaaaaandy", совпадает "aaa", хотя оригинальная строка содержит больше 'a'.

[xyz]

Набор символов. Совпадение с одним из символов в скобках. Можно специфицировать диапазон символов с помощью дефиса.

Например, [abcd] это то же самое, что [a-c]. Совпадает с 'b' в "brisket" и с 'c' в "ache".

[^xyz]

Отрицающий набор символов. То есть совпадение с тем, что не заключено в скобки. Можно специфицировать диапазон символов с помощью дефиса.

Например, [^abc] это то же самое, что [^a-c]. С начала совпадает с 'r' в "brisket" и с 'h' в "chop."

[\b]

Совпадает с backspace. (Не с \b.)

\b

Совпадает с концом слова, таким как пробел. (Не с [\b].)

Например, /\bn\w/ совпадает с 'no' в "noonday";/\wy\b/ совпадает с 'ly' в "possibly yesterday."

\B

Совпадение не в конце слова.

Например, /\w\Bn/ совпадает с 'on' в "noonday", и /y\B\w/ совпадает с 'ye' в "possibly yesterday."

\cX

Где X это буква из диапазона A - Z. Совпадение с управляющим символом в строке.

Например, /\cM/ совпадает с control-M в строке.

\d

Совпадает с цифрой. Эквивалентно [0-9].

Например, /\d/ или /[0-9]/ совпадает с '2' в "B2 is the suite number."

\D

Совпадает с не-цифрой. Эквивалентно[^0-9].

Например, /\D/ или /[^0-9]/ совпадает с 'B' в "B2 is the suite number."

\f

Совпадает с form-feed/прогоном страницы.

\n

Совпадает с linefeed/прогоном строки.

\r

Совпадает с "возвратом каретки".

\s

Совпадает с одиночным пробельным символом, включая space, tab, form feed, line feed. Эквивалентно [ \f\n\r\t\u00A0\u2028\u2029].

Например, /\s\w*/ совпадает с ' bar' в "foo bar."

\S

Совпадает с одиночным символом, отличным от пробелов. Эквивалентно
[^ \f\n\r\t\u00A0\u2028\u2029].

Например, /\S/\w* совпадает с 'foo' в "foo bar."

\t

Совпадает с tab.

\v

Совпадает с vertical tab.

\w

Совпадает с любым алфавитным или цифровым символом, включая underscore/символ подчёркивания. Эквивалентно [A-Za-z0-9_].

Например, /\w/ matches 'a' in "apple," '5' in "$5.28," and '3' in "3D."

\W

Совпадает с любым не-словом. Эквивалентно [^A-Za-z0-9_].

Например, /\W/ or /[^$A-Za-z0-9_]/ совпадает с '%' в "50%."

\n

Где n это положительное целое. обратная ссылка на последнее совпадение подстроки, где n заключённых в скобки в регулярном выражении (включая левую скобку).

Например, /apple(,)\sorange\1/ совпадает с 'apple, orange' в "apple, orange, cherry, peach." Более сложные примеры даны после этой таблицы.

\0

Совпадает с символом NUL. После него не ставьте другую цифру.

\xhh

Совпадает с символом с кодом hh (два 16-ричных числа).

\uhhhh

Совпадает с символом с кодом hhhh (четыре 16-ричных числа).

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

Конструктор объекта регулярного выражения, например, new RegExp("ab+c"), предоставляет компиляцию регулярного выражения на этапе прогона/runtime. Используйте функцию, если знаете, что патэрн регулярного выражения будет изменяться, или если Вы не знаете патэрн и получаете его из другого источника, такого как ввод от пользователя.

Отдельный предопределённый объект RegExp доступен для каждого окна; то есть каждый отдельный поток выполнения JavaScript получает свой собственный объект RegExp. Поскольку каждый скрипт запускается в потоке без остановки до конца выполнения, это гарантирует, что разные скрипты не перепишут значения объекта RegExp.

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

Обратите внимание, что некоторые свойства объекта RegExp имеют и длинные, и короткие (Perl-подобные) имена. Оба имени всегда ссылаются на одно и то же значение. Perl это язык программирования, из которого JavaScript смоделировал свои регулярные выражения.

Свойство | Описание
constructor | Специфицирует функцию, создающую прототип объекта.
global | Нужно ли тестировать регулярное выражение относительно всех возможных совпадений в строке, или только относительно первого. В JavaScript 1.5 это свойство экземпляра объекта RegExp, а не объект RegExp.
ignoreCase | Игнорировать ли регистр символов при выполнении совпадений в строке. В JavaScript 1.5 это свойство экземпляра объекта RegExp, а не объект RegExp.
lastIndex | Индекс, с которого начинать поиск совпадения в строке. В JavaScript 1.5 это свойство экземпляра объекта RegExp, а не объект RegExp.
multiline | Искать ли в строках, расположенных по нескольким строкам. В JavaScript 1.5 это свойство экземпляра объекта RegExp, а не объект RegExp.
prototype | Позволяет добавлять свойства всем объектам.
source | Текст патэрна. В JavaScript 1.5 это свойство экземпляра объекта RegExp, а не объект RegExp.

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

Метод | Описание
exec | Выполняет поиск совпадений в своём параметре-строке.
test | Тестирует на совпадение в своём параметре-строке.
toSource | Возвращает литерал объекта, представляющий специфицированный объект; можно использовать это значение для создания нового объекта. Переопределяет метод Object.toSource.
toString | Возвращает строку, представляющую специфицированный объект. Переопределяет метод Object.toString.

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

Примеры

Пример 1.

Этот скрипт использует метод replace для переключения слов в строке. В замещающем тексте скрипт использует "$1" и "$2" для обозначения результатов совпадений с соответствующими скобками в патэрне регулярного выражения.

<SCRIPT>
re = /(\w+)\s(\w+)/;
str = "John Smith";
newstr=str.replace(re, "$2, $1");
document.write(newstr)
</SCRIPT>

На экране появится "Smith, John".

Пример 2.

В этом примере RegExp.input устанавливается событием Change. В функции getInfo метод exec использует значение RegExp.input в качестве аргумента.

<HTML>

<SCRIPT>
function getInfo() {
   re = /(\w+)\s(\d+)/;
   var m = re.exec();
   window.alert(m[] + ", your age is " + m[2]);
}
</SCRIPT>

Enter your first name and your age, and then press Enter.

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

</HTML>

constructor

Специфицирует функцию, которая создаёт прототип объекта. Обратите внимание, что значением этого свойств является ссылка на саму функцию, а не строка с именем функции.
Свойство из | RegExp
Реализовано в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Описание

См. Object.constructor.

exec

Выполняет поиск совпадений в специфицированной строке. Возвращает результирующий массив.
Метод из | RegExp
Реализован в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA 262, Edition 3 (только первый синтаксис)

Синтаксис
regexp.exec([str])
regexp([str])

Параметры

regexp | Имя регулярного выражения. Может быть именем переменной или литералом.
str | Строка, которая проверяется на совпадение с регулярным выражением.

Описание

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

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

Если совпадение найдено, метод 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. | 1
 | input | Строка-оригинал. | cdbBdbsbz
 | [0] | Последние совпавшие символы. | dbBd
 | [1], ...[n] | Совпавшие подстроки в кавычках, если имеются (подстроки). Количество подстрок в кавычках не ограничено. | [1] = bB [2] = d
myRe | lastIndex | Индекс, с которого начать следующий поиск. | 5
 | ignoreCase | Указывает, использовался ли флаг "i" для игнорирования регистра. | true
 | global | Указывает, использовался ли флаг "g" для глобального поиска совпадений. | true
 | multiline | Указывает, использовался ли флаг "m" для глобального поиска совпадений. | false
 | source | Текст патэрна. | 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>

global

Используется ли флаг "g" с регулярным выражением.
Свойство из | Экземпляры RegExp.
Read-only
Реализовано в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA 262, Edition 3

Описание

global это свойство отдельного объекта регулярного выражения.

Значение global будет true, если флаг "g" был использован; иначе, false. Флаг "g" указывает, что должно быть протестировано относительно всех возможных совпадений в строке.

Вы не можете изменить это свойство явно.

ignoreCase

Используется ли флаг "i" с регулярным выражением.
Свойство из | Экземпляры RegExp.
Read-only
Реализовано в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA 262, Edition 3

Описание

ignoreCase это свойство отдельного объекта регулярного выражения.

Значение ignoreCase будет true, если флаг "i" был использован; иначе, false. Флаг "i" указывает, что регистр должен игнорироваться при попытках совпадений в строке.

Вы не можете изменить это свойство явно.

lastIndex

Целочисленное read/write свойство, которое специфицирует индекс, с которого начинается поиск следующего совпадения.
Свойство из | Экземпляры RegExp.
Реализовано в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA 262, Edition 3

Описание

lastIndex это свойство отдельного объекта регулярного выражения.

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

  • Если lastIndex больше, чем размер строки, regexp.test и regexp.exec терпят неудачу, а lastIndex устанавливается в 0.

  • Если lastIndex равен размеру строки и если регулярное выражение совпадает с пустой строкой, то регулярное выражение совпадает с вводом, начиная с lastIndex.

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

  • Иначе, lastIndex устанавливается в следующую позицию после самого последнего совпадение.

Например, рассмотрим последовательность следующих операторов:

re = /(hi)?/g | Совпадает с пустой строкой.
re("hi") | Возвращает ["hi", "hi"] с lastIndex, который равен 2.
re("hi") | Возвращает [""], пустой массив, чей нулевой элемент является совпавшей строкой. В данном случае это пустая строка, поскольку lastIndex был 2 (и всё ещё равен 2), а "hi" имеет размер 2.

multiline

Указывает, искать ли в строках по нескольким строкам текста.
Свойство из | Экземпляры RegExp.
Static
Реализовано в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA 262, Edition 3

Описание

multiline это свойство отдельного объекта регулярного выражения.

Значение multiline равно true, если был использован флаг "m"; иначе, false. Флаг "m" указывает, что многострочная строка ввода должна рассматриваться как несколько строк. Например, если используется "m", "^" и "$" изменяются с начала и конца целой строки на начало и конец любой строки внутри строки (ввода).

Вы не можете изменить это свойство явно.

prototype

Представляет прототип для данного класса. Вы можете использовать прототип для добавления свойств всем экземплярам класса. О прототипах см. Function.prototype.
Свойство из | RegExp
Реализовано в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

source

Свойство только-для-чтения, содержащее текст патэрна, исключая символы /.
Свойство из | Экземпляры RegExp.
Read-only
Реализовано в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA 262, Edition 3

Описание

source это свойство отдельного объекта регулярного выражения.

Вы не можете изменить это свойство явно.

test

Выполняет поиск совпадения регулярного выражения и специфицированной строки. Возвращает true или false.
Метод из | Экземпляры RegExp.
Реализован в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA 262, Edition 3

Синтаксис
regexp.test([str])

Параметры

regexp | Имя регулярного выражения. Может быть именем переменной или литералом.
str | Строка, относительно которой выполняется совпадение с регулярным выражением.

Описание

Если Вы хотите знать, найден ли патэрн в строке, используйте метод test (аналогичный методу String.search); для получения большей информации (но более медленного выполнения) используйте метод exec (аналогичный методу String.match).

Пример

Этот пример печатает сообщение, содержание которого зависит от успешности теста:

function testinput(re, str){
   if (re.test(str))
      midstring = " contains ";
   else
      midstring = " does not contain ";
   document.write (str + midstring + re.source);
}

toSource

Возвращает строку исходного кода объекта.
Метод из | RegExp
Реализован в | JavaScript 1.3

Синтаксис
toSource()

Параметры

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

Описание

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

  • Для встроенного объекта RegExp, toSource возвращает следующую строку, указывающую, что исходный код недоступен:

       function Boolean() {
          [native code]
       }

  • Для экземпляров RegExp, toSource возвращает строку исходного кода объекта.

Этот метод обычно вызывается внутренне в JavaScript, а не явно в коде.

См. также

Object.toSource.

toString

Возвращает строку, представляющую специфицированный объект.
Метод из | RegExp
Реализован в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA 262, Edition 3

Синтаксис
toString()

Параметры

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

Описание

Объект RegExp переопределяет метод toString объекта Object; он не наследует Object.toString. Для объектов RegExp метод toString возвращает строку, представляющую специфицированный объект.

Примеры

Отображается строковое значение RegExp-объекта:

myExp = new RegExp("a+b+c");
alert(myExp.toString())         displays "/a+b+c/"

См. также

Object.toString.

Назад Вперёд

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


Глава 3.Операторы.

Глава 3 Операторы

В этой главе рассматриваются все операторы JavaScript.
Оператор JavaScript состоит из ключевого слова, используемого с соответствующим синтаксисом.
Один оператор может занимать несколько строк. несколько операторов могут занимать одну строку, отделённые один от другого знаком "точка с запятой".

Соглашения по синтаксису: все ключевые слова показаны жирным шрифтом. Слова шрифта italic представляют определяемые пользователем имена или операции. Части в квадратных скобках [ ] являются необязательными.
{statements} это блок операторов, который может состоять из 0 или более операторов и заключён в фигурные скобки { }.

В таблице перечислены операторы JavaScript.

Таблица 3.1 Операторы JavaScript

break | Прерывает текущий цикл while или for и передаёт управление следующему после цикла оператору.
const | Объявляет глобальную константу, инициализируя её (по выбору/optionally) значением.
continue | Прерывает выполнение блока операторов в цикле while или for и начинает выполнение следующей итерации цикла.
do...while | Выполняет операторы, пока тестовое условие не станет false. Операторы выполняются как минимум один раз.
export | Даёт возможность обозначенному/signed скрипту предоставлять свойства, функции и объекты другим обозначенным или необозначенным/unsigned скриптам.
for | Создаёт цикл из трёх необязательных выражений, заключённых в скобки и разделённых точкой с запятой, с последующим блоком операторов, выполняемых циклически.
for...in | Итерирует специфицированную переменную по всем свойствам объекта. Для каждого отдельного свойства JavaScript выполняет специфицированные операторы.
function | Объявляет функцию со специфицированными параметрами. В качестве параметров могут быть строки, числа и объекты.
if...else | Выполняет набор операторов, если специфицированное условие true. Если условие false, может быть выполнен другой набор операторов.
import | Позволяет скрипту импортировать свойства, функции и объекты из обозначенного/signed скрипта, который экспортирует информацию.
label | Идентификатор, который может использоваться совместно с break или continue для указания на точку продолжения выполнения программы.
return | Специфицирует значение, возвращаемое функцией.
switch | Даёт возможность программе вычислять выражение и искать совпадение значения выражения с меткой case.
throw | Вызывает определяемое пользователем исключение.
try...catch | Помечает блок операторов для попытки выполнения и специфицирует ответ, который должен выполняться при возникновении исключения.
var | Объявляет переменную, инициализируя её, по выбору, значением.
while | Создаёт цикл, который вычисляет выражение, и, если оно true, выполняет блок операторов. Затем цикл повторяется до тех пор, пока специфицированное условие true.
with | Устанавливает объект по умолчанию для набора выполняемых операторов.

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, прерывающий выполнение цикла while, если e равно 3, и возвращающий затем значение 3 * x.

function testBreak(x) {
   var i = 0;
   while (i < 6) {
      if (i == 3)
         break;
      i++;
   }
   return i*x;
}

См. также

continue, label, switch.

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.

continue

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

Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262 (для непомеченной/unlabeled версии) ECMA-262, Edition 3 (для помеченной/labeled версии)

Синтаксис

continue [label]

Параметр
label

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

Описание

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

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

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

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

Примеры

Пример 1.

Это цикл while, с оператором continue, выполняемым, если 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>");
}

См. также

break, label.

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);

export

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

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

Реализован в

JavaScript 1.2, NES 3.0

Синтаксис

export name1, name2, ..., nameN
export *

Параметры
nameN | Список экспортируемых свойств, функций и объектов.
* | Экспортируются все свойства, функции и объекты этого скрипта.

Описание

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

См. также

import.

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;
}

function

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

Реализован в | JavaScript 1.0, NES 2.0 JavaScript 1.5, NES 6.0: добавлено объявление условной функции (расширение Netscape).
Версия ECMA | ECMA-262

Синтаксис

function name([param] [, param] [..., param]) {
   statements
}

Вы можете также определять функции с помощью конструктора Function и оператора function; см. Function и function.

Параметры
name | Имя функции.
param | Имя аргумента, передаваемого функции. Функция может иметь не более 255 аргументов.
statements | Операторы, образующие тело функции.

Описание

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

Функция, созданная с помощью оператора function, является объектом 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 не объявляется и не может быть вызвана.

См. также

Function, function.

if...else

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

Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Синтаксис

if (condition) {
   statements1
}
[else {
   statements2
}]

Параметры
condition

Условие. Может быть любым выражением JavaScript, которое вычисляется в true или false. Должно быть заключено в скобки. Если true, выполняются операторы statements1.

statements1,
statements2

Любые операторы JavaScript, включая вложенные if. Несколько операторов обязаны быть заключены в фигурные скобки.

Описание

Вы не должны использовать операции присвоения в условном операторе. Например, не используйте такой код:

if(x = y)
{
   /* делайте правильно */
}

Если Вам необходимо использовать присвоение в условном операторе, добавьте дополнительные скобки вокруг операции присвоения. Например, if( (x = y) ).

Примеры

if (cipher_char == from_char) {
   result = result + to_char
   x++}
else
   result = result + clear_char

import

Даёт возможность скриптам импортировать свойства, функции и объекты из обозначенного/signed скрипта, экспортирующего информацию.

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

Реализован в

JavaScript 1.2, NES 3.0

Синтаксис

import objectName.name1, objectName.name2, ..., objectName.nameN
import objectName.*

Параметры
objectName

Имя объекта, который будет получать импортируемые имена.

name1,
name2,
nameN

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

*

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

Описание

Параметр objectName это имя объекта, который будет получать импортируемые имена. Например, если f и p экспортируются и если obj это объект импортирующего скрипта, следующий код делает f и p доступными в импортирующем скрипте как свойства объекта obj.

import obj.f, obj.p

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

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

См. также

export.

label

Предоставляет оператор с идентификатором,  позволяющим ссылаться на этот оператор из break или continue.
Реализован в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA 262, Edition 3

Например, Вы можете использовать метку для идентификации цикла, а затем использовать операторы break или continue для прерывания или продолжения выполнения цикла.

Синтаксис

label :
   statement

Параметр
label | Любой идентификатор JavaScript, кроме зарезервированного слова.
statement | Операторы. break может использоваться с любым помеченным оператором, а continue может использоваться с помеченными операторами цикла.

Примеры

Пример помеченного оператора, использующего break, см. в break. Пример помеченного оператора, использующего continue, см. в continue.

См. также

break, continue.

return

Специфицирует значение, возвращаемое функцией.

Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Синтаксис

return expression;

Параметры
expression

Возвращаемое выражение.

Примеры

Следующая функция возвращает квадрат своего аргумента x, где x это число.

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

switch

Позволяет программе вычислять выражение и попытаться сопоставить его значение с меткой case.

Реализован в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA-262, Edition 3

Синтаксис

switch (expression){
   case label :
      statements;
      break;
   case label :
      statements;
      break;
   ...
   default : statements;
}

Параметры
expression | Значение, сопоставляемое с label.
label | Идентификатор, используемый при сопоставлении с expression.
statements | Блок операторов, выполняемый однократно при совпадении expression с label.

Описание

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

Программа сначала ищет метку/label, совпадающую со значением expression/выражения, а затем выполняет ассоциированный оператор. Если ни один лэйбл не совпал, программа ищет необязательный оператор default  и, если он найден, выполняет ассоциированный оператор. Если оператор default не найден, программа продолжает выполняться с оператора после конца блока switch.

Необязательный оператор break, ассоциированный с каждой меткой case, гарантирует что прервёт выполнение блока switch, после того как совпадающий оператор будет выполнен, и продолжит выполнение с оператора, идущего после блока switch. Если break опущен, программа продолжает выполнение с оператора, следующего после оператора switch.

Примеры

Если expression вычисляется до "Bananas", программа ищет совпадение этого значения с case "Bananas" и выполняет ассоциированный оператор. Если обнаружен break, программа прерывает выполнение блока switch и выполняет оператор, идущий после switch. Если break отсутствует, оператор для case "Cherries" также будет выполнен.

switch (i) {
   case "Oranges" :
      document.write("Oranges are $0.59 a pound.<BR>");
      break;
   case "Apples" :
      document.write("Apples are $0.32 a pound.<BR>");
      break;
   case "Bananas" :
      document.write("Bananas are $0.48 a pound.<BR>");
      break;
   case "Cherries" :
      document.write("Cherries are $3.00 a pound.<BR>");
      break;
   default :
      document.write("Sorry, we are out of " + i + ".<BR>");
}
document.write("Is there anything else you'd like?<BR>");

throw

Вызывает определяемое пользователем исключение.

Реализован в | JavaScript 1.4
Версия ECMA | ECMA-262, Edition 3

Синтаксис

throw expression;

Параметры
expression

Значение для throw.

Описание

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

throw "Error2";    // генерирует исключение со строковым значением
throw 42;          // генерирует исключение с числовым значением 42
throw true;        // генерирует исключение со значением true

Примеры

Пример 1: Отлов объекта.

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

function UserException (message) {
   this.message=message;
   this.name="UserException";
}
function getMonthName (mo) {
   mo=mo-1; // Уточняет число month относительно индекса массива (1=Jan, 12=Dec)
   var months=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul",
      "Aug","Sep","Oct","Nov","Dec");
   if (months[mo] != null) {
      return months[mo];
   } else {
      myUserException=new UserException("InvalidMonthNo");
      throw myUserException;
   }
}

try {
// операторы для try;
monthName=getMonthName(myMonth)
}
catch (e) {
monthName="unknown";
logMyErrors(e.message,e.name); // передаёт объект исключения
обработчику ошибок
}

Пример 2: Отлов объекта.

Здесь тестируется строка для ввода zip-кода США. Если zip-код использует неверный формат, оператор throw вызывает исключение, создавая объект типа ZipCodeFormatException.

/*
 * Создаётся объект ZipCode.
 *
 * Принимаемые форматы zip-кода:
 *    12345
 *    12345-6789
 *    123456789
 *    12345 6789
 *
 * Если аргумент, передаваемый ZipCode-конструктору, не соответствует
 * одному из этих патэрнов, вызывается исключение.
 */

function ZipCode(zip) {
zip = new String(zip);
pattern = /[0-9]{5}([- ]?[0-9]{4})?/;
if (pattern.test(zip)) {
// значением zip-кода будет первое найденное
совпадение в строке
this.value = zip.match(pattern)[0];
this.valueOf = function (){return this.value};
this.toString = function (){return String(this.value)};
} else {
throw new ZipCodeFormatException(zip);
}
}

function ZipCodeFormatException(value) {
   this.value = value;
   this.message =
      "does not conform to the expected format for a zip code";
   this.toString =
      function (){return this.value + this.message};
}

/*
 * Эти строки могут находиться в скрипте, проверяющем данные адреса
 * для адресов США.
 */

var ZIPCODE_INVALID = -1;
var ZIPCODE_UNKNOWN_ERROR = -2;

function verifyZipCode(z) {
   try {
      z = new ZipCode(z);
   }
   catch (e) {
      if (e instanceof ZipCodeFormatException) {
         return ZIPCODE_INVALID;
      }
      else {
         return ZIPCODE_UNKNOWN_ERROR;
      }
   }
   return z;
}

a=verifyZipCode(95060);         // возвращает 95060
b=verifyZipCode(9560;)          // возвращает -1
c=verifyZipCode("a");           // возвращает -1
d=verifyZipCode("95060");       // возвращает 95060
e=verifyZipCode("95060 1234");  // возвращает 95060 1234

Пример 3: Повторный вызов исключения.

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

try {
throw n // вызывает исключение с числовым значением
}
catch (e) {
if (e <= 50) {
// операторы для обработки исключений 1-50
}
else {
// не может обработать это исключение,
поэтому вызывает его повторно
throw e
}
}

См. также

try...catch

try...catch

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

Реализован в | JavaScript 1.4 JavaScript 1.5, NES 6.0: добавлены множественные блоки catch (расширение Netscape).
Версия ECMA | ECMA-262, Edition 3

Синтаксис

try {
   statements
}
[catch (exception_var if expression)
   {statements}] . . .
[catch (exception_var) {statements}]
[finally {statements}]

Параметры
statements | Блок операторов, выполняемый однократно. Операторы могут быть декларативными (как var) или исполняемыми (как for).
catch | Блок операторов, выполняемый при вызове исключения в блоке try.
exception_var | Идентификатор объекта исключения.
expression | Выражение для тестирования.
finally | Блок операторов, выполняемый до завершения оператора try...catch. Это блок операторов выполняется независимо от того, было ли исключение отловлено или вызвано.

Описание

Оператор try...catch состоит из блока try, который содержит один или более операторов, и одного или более блоков catch, который содержит операторы, специфицирующие поведение при вызове исключения в блоке try. То есть, Вы можете продолжить блок try и, если это потерпит неудачу, передать управление в блок catch. Если любой оператор в блоке try (или в функции, вызываемой из блока try) вызывает исключение, управление немедленно передаётся блоку catch. Если исключение в блоке try не было вызвано, блок catch пропускается. Блок finally выполняется после выполнения блоков tru и catch, но до операторов, идущих после оператора try...catch.

Можно вкладывать друг в друга один или более операторов try...catch. Если внутренний оператор try...catch не имеет блока catch, выполняется вход в содержащий ("внешний") блок catch оператора try...catch.

Вы можете также использовать оператор try...catch для обработки исключений Java. См. в книге "Ядро JavaScript. Руководство по Использованию" информацию об исключениях Java.

Безусловный блок catch.

Если используется единственный безусловный блок catch, то вход в блок catch выполняется при вызове исключения. Например, это код вызывает исключение. Если исключение возникает, управление передаётся в блок catch.

try {
throw "myException" // генерирует исключение
}
catch (e) {
// операторы для обработки любого исключения
logMyErrors(e) // объект исключения передаётся обработчику
ошибок
}

Условные блоки catch.

Вы можете использовать один или несколько блоков catch для обработки специфических исключений. В этом случае вход в нужный блок catch выполняется при вызове специфицированного исключения. В следующем примере блок try может потенциально вызвать три исключения: TypeError, RangeError и EvalError. Если исключение возникает, управление передаётся в соответствующий блок catch. Если исключение не является одним из специфицированных, управление переходит к безусловному блоку catch в конце. Если Вы используете безусловный блок catch с одним или более условных блоков catch, безусловный блок catch обязан быть специфицированным в конце.

try {
   myroutine(); // может вызывать три исключения
}
catch (e if e instanceof TypeError) {
   // операторы для обработки исключений TypeError
}

catch (e if e instanceof RangeError) {
   // операторы для обработки исключений RangeError
}

catch (e if e instanceof EvalError) {
   // операторы для обработки исключений EvalError
}

catch (e){
   // операторы для обработки любого неспецифицированного исключения
   logMyErrors(e) // передаёт объект исключения обработчику исключений
}

Идентификатор исключения.

Если исключение вызывается в блоке try, exception_var содержит значение, специфицированное оператором throw; Вы можете использовать этот идентификатор для получения информации о вызванном исключении.
JavaScript создаёт этот идентификатор при входе в блок catch; этот идентификатор существует только в период работы блока catch; после того как блок catch завершает выполнение, идентификатор становится недоступным.

Блок finally.

Блок finally содержит операторы, выполняемые после выполнения блоков try и catch, но перед операторами, идущими после оператора try...catch. Блок finally выполняется независимо от того, было ли вызвано исключение. Если исключение вызывается, оператор в блоке finally выполняется даже тогда, когда ни один блок catch не обработал исключение.

Вы можете использовать блок finally для того, чтобы Ваш скрипт "изячно" завершался при возникновении исключения; например, может понадобиться освободить ресурс, задействованный скриптом. В следующем примере файл открывается, и выполняются операторы, использующие этот файл (серверный JavaScript позволяет получить доступ файлам). Если исключение вызывается при открытом файле, блок finally закрывает файл до краха скрипта.

openMyFile()
try {
   // связывается ресурс
   writeMyFile(theData)
}
finally {
   closeMyFile() // всегда закрывает ресурс
}

Примеры

См. примеры для throw.

См. также

throw.

var

Объявляет переменную, инициализируя её (по выбору) значением.

Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Синтаксис

var varname [= value] [..., varname [= value] ]

Параметры
varname | Имя переменной. Любой верный идентификатор.
value | Начальное значение переменной, может быть любым верным выражением.

Описание

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

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

  • если существует глобальная переменная с тем же именем;

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

Примеры

var num_hits = 0, cust_no = 0

while

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

Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Синтаксис

while (condition) {
   statements
}

Параметры
condition | Вычисляется перед началом каждой итерации цикла. Если это условие вычисляется в true, выполняются операторы в следующем блоке. Если condition вычисляется в false, выполнение продолжается в операторах, следующих после statements.
statements | Блок операторов, выполняемый, пока условие true. Хотя это и не обязательно, желательно выделять эти операторы в коде отступом относительно начала оператора.

Примеры

Следующий цикл while итерирует, пока n меньше трёх:

n = 0;
x = 0;
while(n < 3) {
   n ++;
   x += n;
}

При каждой итерации цикла n увеличивается и прибавляется к x. Следовательно, x и n принимают следующие значения:

  • После первого прохода: n = 1 и x = 1

  • После второго прохода: n = 2 и x = 3

  • После третьего прохода: n = 3 и x = 6

После завершения третьего прохода цикла, условие n < 3 больше не true, поэтому цикл прерывается.

with

Устанавливает объект по умолчанию для набора операторов.

Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Синтаксис

with (object){
   statements
}

Параметры
object | Специфицирует для операторов объект по умолчанию. Скобки вокруг object необходимы.
statements | Блок операторов.

Описание

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

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

Примеры

Следующий оператор специфицирует, что объект Math это объект по умолчанию. Операторы в блоке with обращаются к свойству PI и методам cos и sin без специфицирования объекта. JavaScript принимает для этих ссылок объект Math.

var a, x, y
var r=10
with (Math) {
   a = PI * r * r
   x = r * cos(PI)
   y = r * sin(PI/2)
}

Назад Вперёд

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


String

Объект, представляющий серию символов в строке.

Объект ядра
Реализован в | JavaScript 1.0: создание объекта String только символами в кавычках. JavaScript 1.1, NES 2.0: добавлен конструктор String; добавлено свойство prototype; добавлен метод split; добавлена возможность передавать строки между скриптами в различные окна и фрэймы (в предыдущих релизах Вы должны были добавлять пустую строку к строке другого окна, чтобы ссылаться на неё). JavaScript 1.2, NES 3.0: добавлены методы concat, match, replace, search, slice и substr. JavaScript 1.3: добавлен метод toSource; изменены методы charCodeAt, fromCharCode и replace.
Версия ECMA | ECMA-262

Создание

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

new String(String)

Параметры
String

Любая строка.

Описание

Объект String это оболочка вокруг данных примитивного типа String. Не путайте string-литерал с объектом String. Например, следующий код создаёт string-литерал s1 и String-объект s2:

s1 = "foo" // создаёт значение строкового литерала
s2 = new String("foo") // создаёт String-объект

Вы можете вызывать любой из методов String-объекта в строковом литеральном значении — JavaScript автоматически конвертирует строковой литерал во временный String-объект, вызывает метод, затем уничтожает временный String-объект. Вы можете также использовать свойство String.length со string-литералом.

Вы должны использовать string-литералы, если только Вам не нужно использовать именно String-объект, так как String-объекты могут иметь поведение, не предсказуемое интуитивно. Например:

s1 = "2 + 2" // создаёт значение строкового литерала
s2 = new String("2 + 2") // создаёт String-объект
eval(s1)     // возвращает число 4
eval(s2)     // возвращает строку "2 + 2"

Строка может быть представлена как литерал, заключённый в одинарные или двойные кавычки; например, "Netscape" или `Netscape'.

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

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

Свойство | Описание
constructor | Специфицирует функцию, создающую прототип объекта.
length | Размер строки.
prototype | Позволяет добавлять свойства String-объекту.

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

Метод | Описание
anchor | Создаёт "якорь" HTML, который используется в качестве цели гипертекстовой ссылки.
big | Отображает строку шрифтом большего размера, как при использовании тэга BIG.
blink | Строка мигает, как при использовании тэга BLINK.
bold | Строка выводится жирным шрифтом, как при использовании тэга B.
charAt | Возвращает символ, находящийся в строке по специфицированному индексу.
charCodeAt | Возвращает число, обозначающее Unicode-значение символа по данному индексу.
concat | Объединяет текст двух строк и возвращает новую строку.
fixed | Строка выводится моноширинным шрифтом, как при использовании тэга TT.
fontcolor | Строка выводится в специфицированном цвете, как при использовании тэга <FONT COLOR=color>.
fontsize | Строка выводится шрифтом специфицированного размера, как при использовании тэга <FONT SIZE=size>.
fromCharCode | Возвращает строку, созданную путём использования специфицированной последовательности Unicode-значений. Это метод класса String, а не String-экземпляра.
indexOf | Возвращает индекс, внутри вызывающего String-объекта, первого появления специфицированного значения, или -1 если оно не найдено.
italics | Строка выводится шрифтом italic, как при использовании тэга <I>.
lastIndexOf | Возвращает индекс, внутри вызывающего String-объекта, последнего появления специфицированного значения, или -1 если оно не найдено.
link | Создаёт гипертекстовую ссылку HTML.
match | Используется для поиска совпадений регулярного выражения относительно строки.
replace | Используется для поиска совпадений регулярного выражения относительно строки и для замены совпавшей подстроки новой подстрокой.
search | Выполняет поиск совпадений регулярного выражения относительно специфицированной строки.
slice | Извлекает раздел строки и возвращает новую строку.
small | Строка выводится шрифтом уменьшенного размера, как при использовании тэга SMALL.
split | Разделяет String-объект на массив строк путём разделения строки на подстроки.
strike | Строка выводится как перечёркнутый текст, как при использовании тэга STRIKE.
sub | Строка выводится как подиндекс, как при использовании тэга SUB.
substr | Возвращает специфицированное количество символов строки, начиная со специфицированного места.
subString | Возвращает символы строки, находящиеся между специфицированными индексами.
sup | Строка выводится как надиндекс, как при использовании тэга SUP.
toLowerCase | Возвращает вызывающее строковое значение, с символами, конвертированными в нижний регистр.
toSource | Возвращает литерал объекта, представляющий специфицированный объект; Вы можете использовать это значение для создания нового объекта. Переопределяет метод Object.toSource.
toString | Возвращает строку, представляющую специфицированный объект. Переопределяет метод Object.toString.
toUpperCase | Возвращает вызывающее строковое значение, с символами, конвертированными в верхний регистр.
valueOf | Возвращает примитивное значение специфицированного объекта. Переопределяет метод Object.valueOf.

Кроме того, этот метод наследует методы watch и unwatch из Object.

Примеры

Пример 1: Строковой литерал.

Следующий оператор создаёт string-литерал:

var last_name = "Schaefer"

Пример 2: Свойства строкового литерала.

Следующие операторы вычисляются до 8, "SCHAEFER" и "schaefer":

last_name.length
last_name.toUpperCase()
last_name.toLowerCase()

Пример 3: Доступ к отдельным символам строки.

Можно представить строку как массив символов. Тогда можно получить доступ к отдельным символам строки по индексу этого массива. Например, следующий код выводит "The first character in the String is H":

var myString = "Hello"
myString[0] // returns "H"

Пример 4: Передача строки между скриптами, находящимися в разных окнах или фрэймах.

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

var lastName = "Schaefer"
var firstName = "Jesse"
empWindow=window.open('String2.html','window1','width=300,height=300')

Если HTML-источник для второго окна (String2.html) создаёт две строковые переменные, empLastName и empFirstName, то следующий код в первом окне присваивает значения переменным второго окна:

empWindow.empFirstName=firstName
empWindow.empLastName=lastName

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

alert('empFirstName in empWindow is ' + empWindow.empFirstName)
alert('empLastName in empWindow is ' + empWindow.empLastName)

anchor

Создаёт HTML-якорь, используемый как цель для гиперссылки.
Метод из | String
Реализован в | 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>

См. также

String.link.

big

Выводит строку шрифтом большего размера, как при использовании тэга BIG.
Метод из | String
Реализован в | 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>

См. также

String.fontsize, String.small.

blink

Создаёт мигающую строку, как при использовании тэга BLINK.
Метод из | String
Реализован в | 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>

См. также

String.bold, String.italics, String.strike.

bold

Отображает строку жирным шрифтом, как при использовании тэга B.
Метод из | String
Реализован в | 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>

См. также

String.blink, String.italics, String.strike.

charAt

Возвращает специфицированные символы из строки.
Метод из | String
Реализован в | 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

См. также

String.indexOf, String.lastIndexOf, String.split.

charCodeAt

Возвращает число, обозначающее Unicode-значение символа, находящегося в строке по данному индексу.
Метод из | String
Реализован в | 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. Руководство по Использованию".

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

JavaScript 1.2.

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

Пример

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

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

concat

Объединяет текст двух или более строк и возвращает новую строку.
Метод из | String
Реализован в | 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'."

constructor

Специфицирует функция, которая создаёт прототип объекта. Заметьте, что значением этого свойства является ссылка на функцию, а не строка, содержащая имя функции.
Свойство из | String
Реализовано в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Описание

См. Object.constructor.

fixed

Строка выводится моноширинным шрифтом, как при использовании тэга TT.
Метод из | String
Реализован в | 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>

fontcolor

Строка выводится специфицированным цветом, как при использовании тэга <FONT COLOR=color>.
Метод из | String
Реализован в | JavaScript 1.0, NES 2.0

Синтаксис

fontcolor(color)

Параметры
color

Строка содержит цвет в виде 16-ричного RGB-триплета или в виде строкового литерала. Названия цветов - строковых литералов - даны в книге "Ядро JavaScript. Руководвство по Использованию".

Описание

Используйте метод 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>.
Метод из | String
Реализован в | 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>

См. также

String.big, String.small.

fromCharCode

Возвращает строку, созданную путём использования специфицированной последовательности из значений Unicode.
Метод из | String
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)

indexOf

Внутри вызывающего String-объекта возвращает индекс первого появления специфицированного значения, начиная поиск с fromIndex, или с  -1, если значение не найдено.
Метод из | String
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Синтаксис
indexOf(searchValue[, fromIndex])

Параметры
searchValue | Строка, представляющая значение для поиска.
fromIndex | Место в вызывающей строке, с которого начинается поиск. Это может быть целое число в диапазоне от 0 и до конца строки. Значение по умолчанию 0.

Описание

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

"Blue Whale".indexOf("Blue")    // возвращает 0
"Blue Whale".indexOf("Blute")   // возвращает -1
"Blue Whale".indexOf("Whale",0) // возвращает 5
"Blue Whale".indexOf("Whale",5) // возвращает 5
"Blue Whale".indexOf("",9)      // возвращает 9
"Blue Whale".indexOf("",10)     // возвращает 10
"Blue Whale".indexOf("",11)     // возвращает 10

Метод indexOf чувствителен к регистру. Например, следующее выражение возвращает -1:

"Blue Whale".indexOf("blue")

Примеры

Пример 1.

Этот пример использует indexOf и lastIndexOf для локализации значений в строке "Brave new world."

var anyString="Brave new world"

// Отображает 8
document.write("<P>The index of the first w from the beginning is " +
   anyString.indexOf("w"))
// Отображает 10
document.write("<P>The index of the first w from the end is " +
   anyString.lastIndexOf("w"))
// Отображает 6
document.write("<P>The index of 'new' from the beginning is " +
   anyString.indexOf("new"))
// Отображает 6
document.write("<P>The index of 'new' from the end is " +
   anyString.lastIndexOf("new"))

Пример 2.

Этот пример определяет две строковые переменные. Эти переменные содержат одинаковые строки, но во второй строке буквы введены в верхнем регистре. Первый метод writeln выводит 19. Но, поскольку метод indexOf чувствителен к регистру, строка "cheddar" в строке myCapString не будет найдена, поэтому второй метод writeln выводит -1.

myString="brie, pepper jack, cheddar"
myCapString="Brie, Pepper Jack, Cheddar"
document.writeln('myString.indexOf("cheddar") is ' +
   myString.indexOf("cheddar"))
document.writeln('<P>myCapString.indexOf("cheddar") is ' +
   myCapString.indexOf("cheddar"))

Пример 3.

Этот пример устанавливает count в число появлений буквы x в строке str:

count = 0;
pos = str.indexOf("x");
while ( pos != -1 ) {
   count++;
   pos = str.indexOf("x",pos+1);
}

См. также

String.charAt, String.lastIndexOf, String.split.

italics

Выводит строку шрифтом italic, как при использовании тэга <I>.
Метод из | String
Реализован в | JavaScript 1.0, NES 2.0

Синтаксис
italics()

Параметры

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

Описание

Используйте метод italics с методами 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>

См. также

String.blink, String.bold, String.strike.

lastIndexOf

Внутри вызывающего String-объекта возвращает индекс первого появления специфицированного значения, или с  -1, если значение не найдено. Поиск в вызывающей строке идёт в обратном направлении, начиная с fromIndex.
Метод из | String
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Синтаксис
lastIndexOf(searchValue[, fromIndex])

Параметры
searchValue | Срока - значение для поиска.
fromIndex | Место в вызывающей строке, с которого начинается поиск. Это может быть целое число в диапазоне от 0 и до конца строки. Значение по умолчанию - длина строки.

Описание

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

"canal".lastIndexOf("a")   // возвращает 3
"canal".lastIndexOf("a",2) // возвращает 1
"canal".lastIndexOf("a",0) // возвращает -1
"canal".lastIndexOf("x")   // возвращает -1

Метод lastIndexOf чувствителен к регистру. Например, следующее выражение вернёт -1:

"Blue Whale, Killer Whale".lastIndexOf("blue")

Примеры

Этот пример использует indexOf и lastIndexOf для локализации значений в строке "Brave new world."

var anyString="Brave new world"

// Отображает 8
document.write("<P>The index of the first w from the beginning is " +
   anyString.indexOf("w"))
// Отображает 10
document.write("<P>The index of the first w from the end is " +
   anyString.lastIndexOf("w"))
// Отображает 6
document.write("<P>The index of 'new' from the beginning is " +
   anyString.indexOf("new"))
// Отображает 6
document.write("<P>The index of 'new' from the end is " +
   anyString.lastIndexOf("new"))

См. также

String.charAt, String.indexOf, String.split.

length

Длина строки.
Свойство из | String
Read-only\Только для Чтения
Реализовано в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Описание

Для null-строки length будет 0.

Примеры

Этот пример выводит 8 в диалоговом окне Alert:

var x="Netscape"
alert("The String length is " + x.length)

link

Создаёт гипертекстовую ссылку HTML, которая запрашивает другой URL.
Метод из | String
Реализован в | JavaScript 1.0, NES 2.0

Синтаксис
link(hrefAttribute)

Параметры
hrefAttribute

Любая строка, специфицирующая атрибут HREF тэга A; это должен быть верный URL (относительный или абсолютный).

Описание

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

Ссылки, созданные методом link, становятся элементами массива ссылок объекта document. См. document.links.

Примеры

Этот пример отображает слово  "Netscape" как гипертекстовую ссылку, переводящую пользователя на домашнюю страницу Netscape:

var hotText="Netscape"
var URL="http://home.netscape.com"

document.write("Click to return to " + hotText.link(URL))

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

Click to return to <A HREF="http://home.netscape.com">Netscape</A>

match

Используется для поиска совпадений регулярного выражения относительно строки.
Метод из | String
Реализован в | JavaScript 1.2
Версия ECMA | ECMA-262 Edition 3

Синтаксис
match(regexp)

Параметры
regexp

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

Описание

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

Примечание

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

Примеры

Пример 1.

В этом примере match используется для нахождения 'Chapter' с последующими 1 или более цифровыми символами, с последующей десятичной точкой и цифровыми символами 0 или более раз. Регулярное выражение содержит флаг i, поэтому регистр игнорируется.

<SCRIPT>
str = "For more information, see Chapter 3.4.5.1";
re = /(chapter \d+(\.\d)*)/i;
found = str.match(re);
document.write(found);
</SCRIPT>

Это возвращает массив, содержащий Chapter 3.4.5.1,Chapter 3.4.5.1,.1

'Chapter 3.4.5.1' это первое совпадение и первое значение, запомненное из (Chapter \d+(\.\d)*).

'.1' это второе значение, значение, запомненное из (\.\d).

Пример 2.

Этот пример демонстрирует использование флагов глобализации и игнорирования регистра с match.

<SCRIPT>
str = "abcDdcba";
newArray = str.match(/d/gi);
document.write(newArray);
</SCRIPT>

Возвращённый массив содержит D, d.

prototype

Представляет прототип для данного класса. Вы можете использовать prototype для добавления свойств и методов во все экземпляры класса. О прототипах см. Function.prototype.
Свойство из | String
Реализовано в | JavaScript 1.1, NES 3.0
Версия ECMA | ECMA-262

replace

Находит совпадение между регулярным выражением и строкой и заменяет совпавшую подстроку новой подстрокой.
Метод из | String
Реализован в | JavaScript 1.2 JavaScript 1.3: добавлена возможность специфицировать функцию в качестве второго параметра.
Версия ECMA | ECMA-262 Edition 3

Синтаксис
replace(regexp, newSubStr)
replace(regexp, function)

Версии до JavaScript 1.3:

replace(regexp, newSubStr)

Параметры
regexp | Имя регулярного выражения. Это может быть имя переменной или литерал.
newSubStr | Строка, размещаемая вместо строки, найденной с помощью regexp.
function | Функция, вызываемая после выполнения совпадения.

Описание

Этот метод не изменяет String-объект, в котором он вызывается. Он просто возвращает новую строку.

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

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

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

$$ | Вставляет '$'.
$& | Вставляет совпавшую подстроку.
$` | Вставляет часть строки, предшествующую совпавшей подстроке.
$´ | Вставляет часть строки, следующую после совпавшей подстроки.
$n или $nn | Где n или nn это десятеричные числа, вставляет подстроку n-ного совпадения в скобках.

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

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

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

Вложенная функция может использовать совпавшие подстроки для определения новой строки (newSubStr), которая замещает найденную подстроку. Вы получаете совпавшие подстроки через параметры Вашей функции. Первый параметр Вашей функции содержит полную совпавшую подстроку. Следующие n параметров могут быть использованы для совпадений в скобках, запоминаемых строк подсовпадений, где n это количество строк подсовпадения в регулярном выражении. Наконец, последние два параметра это смещение в строке, где произошло совпадение, и сама строка.
Например, это метод replace возвращает XX.zzzz - XX , zzzz.

"XXzzzz".replace(/(X*)(z*)/,
     function (str, p1, p2, offset, s) {
        return str + " - " + p1 + " , " + p2;
     }
  )

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

JavaScript 1.2.

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

Примеры

Пример 1.

В этом примере регулярное выражение содержит флаги глобальный и игнорирования регистра, что позволяет методу replace заменить каждое появление 'apples' в строке на 'oranges.'

<SCRIPT>
re = /apples/gi;
str = "Apples are round, and apples are juicy.";
newstr=str.replace(re, "oranges");
document.write(newstr)
</SCRIPT>

Будет напечатано "oranges are round, and oranges are juicy."

Пример 2.

В этом примере регулярное выражение определено в replace и содержит флаг игнорирования регистра.

<SCRIPT>
str = "Twas the night before Xmas...";
newstr=str.replace(/xmas/i, "Christmas");
document.write(newstr)
</SCRIPT>

Будет напечатано "Twas the night before Christmas..."

Пример 3.

Этот скрипт переключает слова в строке. Для замещающего текста ,скрипт использует патэрны замещения $1 и $2.

<SCRIPT LANGUAGE="JavaScript1.2">
re = /(\w+)\s(\w+)/;
str = "John Smith";
newstr = str.replace(re, "$2, $1");
document.write(newstr)
</SCRIPT>

Будет напечатано "Smith, John".

Пример 4.

В этом примере градусы по Фаренгейту замещаются градусами по Цельсию. Градусы по Фаренгейту должны быть числом, заканчивающимся буквой F.
Функция возвращает градусы по Цельсию, оканчивающиеся буквой C. Например, если параметр ввода будет 212F, функция возвратит 100C. Если будет задано число 0F, функция возвратит -17.77777777777778C.

Регулярное выражение проверяет любые числа, оканчивающиеся на F. Число градусов по Фаренгейту доступно для Вашей функции через параметр $1. Функция устанавливает градусы по Цельсию, базируясь на градусах по Фаренгейту, переданных в строке функции f2c. f2c возвращает затем градусы по Цельсию. Эта функция приблизительно соответствует флагу s///e в Perl.

function f2c(x) {
 var s = String(x)
 var test = /(\d+(?:\.\d*)?)F\b/g
 return s.replace
    (test,
       function (str,p1,offset,s) {
          return ((p1-32) * 5/9) + "C";
       }
    )
}

search

Выполняет поиск совпадения регулярного выражения и данного String-объекта.
Метод из | String
Реализован в | JavaScript 1.2
Версия ECMA | ECMA-262 Edition 3

Синтаксис
search(regexp)

Параметр
regexp

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

Описание

В случае успеха, search возвращает индекс регулярного выражения в строке. Иначе, возвращает -1.

Если Вы хотите знать, найден ли в строке патэрн, используйте search (аналогично методу test регулярного выражения); для получения дополнительно информации (но более медленного выполнения) используйте match (аналогично методу exec регулярного выражения).

Пример

Это пример печатает сообщение, содержание которого зависит от успешности теста.

function testinput(re, str){
 if (str.search(re) != -1)
    midString = " contains ";
 else
    midString = " does not contain ";
 document.write (str + midString + re.source);
}

slice

Извлекает раздел строки и возвращает новую строку.
Метод из | String
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262 Edition 3

Синтаксис
slice(beginslice[, endslice])

Параметры
beginslice | Индекс с базой 0, по которому начинается извлечение.
endslice | Индекс с базой 0, по которому заканчивается извлечение. При отсутствии, slice извлекает до конца строки.

Описание

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

slice извлекает до, но не включая, endslice. String.slice(1,4) извлекает символы со второго по четвёртый (символы, индексированные 1, 2 и 3).

Как отрицательный индекс, endslice показывает смещение от конца строки . String.slice(2,-1) извлекает символы с третьего через второй и последний.

Пример

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

<SCRIPT>
str1="The morning is upon us. "
str2=str1.slice(3,-5)
document.write(str2)
</SCRIPT>

Будет записано:

morning is upon

small

Выводи строку шрифтом уменьшенного размера, как при использовании тэга <SMALL>.
Метод из | String
Реализован в | JavaScript 1.0, NES 2.0

Синтаксис
small()

Параметры

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

Описание

Используйте метод small с методами 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>

См. также

String.big, String.fontsize.

split

Делит String-объект на массив строк, разделяя строку на подстроки.
Метод из | String
Реализован в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262 (если в качестве сепаратора строка) ECMA-262 Edition 3 (если в качестве сепаратора регулярное выражение)

Синтаксис
split([separator][, limit])

Параметры
separator | Специфицирует символ, используемый при разделении строки в качестве сепаратора. Он обрабатывается как строка или как регулярное выражение. Если сепаратор отсутствует, возвращаемый массив содержит один элемент - всю строку целиком.
limit | Целое число, специфицирующее ограничение количества находимых разделений.

Описание

Метод split возвращает новый массив.

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

В JavaScript 1.2 и позже, split имеет следующие дополнения:

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

  • Может принимать ограниченное количество элементов, так что результирующий массив не будет содержать пустые ведомые элементы.

  • Если Вы специфицируете LANGUAGE="JavaScript1.2" в тэге SCRIPT, String.split(" ") делит строку при каждом прогоне одним или более пробельными символами, включая пробелы, табуляцию, прогоны строки и возвраты каретки. Для этого LANGUAGE="JavaScript1.2" обязано быть специфицировано в тэге <SCRIPT>.

Примеры

Пример 1.

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

function splitString (StringTosplit,separator) {
 arrayOfStrings = StringTosplit.split(separator)
 document.write ('<P>The original String is: "' + StringTosplit + '"')
 document.write ('<BR>The separator is: "' + separator + '"')
 document.write ("<BR>The array has " + arrayOfStrings.length + " elements: ")

 for (var i=0; i < arrayOfStrings.length; i++) {
    document.write (arrayOfStrings[i] + " / ")
 }
}

var tempestString="Oh brave new world that has such people in it."
var monthString="Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec"

var space=" "
var comma=","

splitString(tempestString,space)
splitString(tempestString)
splitString(monthString,comma)

Это пример производит следующий вывод:

The original String is: "Oh brave new world that has such people in it."
The separator is: " "
The array has 10 elements: Oh / brave / new / world / that / has / such / people / in / it. /

The original String is: "Oh brave new world that has such people in it."
The separator is: "undefined"
The array has 1 elements: Oh brave new world that has such people in it. /

The original String is: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec"
The separator is: ","
The array has 12 elements: Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov / Dec /

Пример 2.

Рассмотри следующий скрипт:

<SCRIPT LANGUAGE="JavaScript1.2">
str="She sells seashells \nby the\n seashore"
document.write(str + "<BR>")
a=str.split(" ")
document.write(a)
</SCRIPT>

При использовании LANGUAGE="JavaScript1.2" это скрипт даст:

"She", "sells", "seashells", "by", "the", "seashore"

Без LANGUAGE="JavaScript1.2" этот скрипт разделит только по отдельным пробельным символам, что даст:

"She", "sells", , , , "seashells", "by", , , "the", "seashore"

Пример 3.

Здесь split ищет 0 или боле символов пробела с последующим символом "точка с запятой" с последующими 0 или более пробелами и, если совпадение найдено, удаляет пробелы из строки.
nameList это массив, возвращаемый как результат работы split.

<SCRIPT>
names = "Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand ";
document.write (names + "<BR>" + "<BR>");
re = /\s*;\s*/;
nameList = names.split (re);
document.write(nameList);
</SCRIPT>

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

Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand
Harry Trump,Fred Barney,Helen Rigby,Bill Abel,Chris Hand

Пример 4.

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

<SCRIPT LANGUAGE="JavaScript1.2">
myVar = " Hello World. How are you doing? ";
splits = myVar.split(" ", 3);
document.write(splits)
</SCRIPT>

Скрипт отображает:

["Hello", "World.", "How"]

См. также

String.charAt, String.indexOf, String.lastIndexOf.

strike

Выводи строку перечёркнутым шрифтом, как при использовании тэга <STRIKE>.
Метод из | String
Реализован в | JavaScript 1.0, NES 2.0

Синтаксис
strike()

Параметры

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

Описание

Используйте метод strike с методами 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>

См. также

String.blink, String.bold, String.italics.

sub

Выводит строку как подиндекс, как при использовании тэга <SUB>.
Метод из | String
Реализован в | JavaScript 1.0, NES 2.0

Синтаксис
sub()

Параметры

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

Описание

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

Примеры

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

var superText="superscript"
var subText="subscript"

document.write("This is what a " + superText.sup() + " looks like.")
document.write("<P>This is what a " + subText.sub() + " looks like.")

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

This is what a <SUP>superscript</SUP> looks like.
<P>This is what a <SUB>subscript</SUB> looks like.

См. также

String.sup.

substr

Возвращает специфицированное количество символов строки, начиная со специфицированного места.
Метод из | String
Реализован в | JavaScript 1.0, NES 2.0

Синтаксис
substr(start[, length])

Параметры
start | Точка, с которой начинается извлечение символов.
length | Количество извлекаемых символов.

Описание

start это индекс символа. Индекс первого символа 0, а индекс последнего символа - на 1 меньше длины строки.
substr начинает извлечение символов от start и выбирает length-количество символов.

Если start имеет положительное значение и размер, равный строке или больший, substr не возвращает никаких символов.

Если start имеет отрицательное значение, substr использует его как индекс символа, считая от конца строки. Если start имеет отрицательное значение и abs(start) больше длины строки, substr использует 0 как start-индекс.

Если length равен 0 или отрицательный, substr не возвращает никаких символов. Если length опущен, start извлекает символы до конца строки.

Пример

Рассмотрим следующий скрипт:

<SCRIPT LANGUAGE="JavaScript1.2">

str = "abcdefghij"
document.writeln("(1,2): ", str.substr(1,2))
document.writeln("(-2,2): ", str.substr(-2,2))
document.writeln("(1): ", str.substr(1))
document.writeln("(-20, 2): ", str.substr(1,20))
document.writeln("(20, 2): ", str.substr(20,2))

</SCRIPT>

Этот скрипт отобразит:

(1,2): bc
(-2,2): ij
(1): bcdefghij
(-20, 2): bcdefghij
(20, 2):

См. также

subString.

subString

Возвращает поднабор String-объекта.
Метод из | String
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Синтаксис
subString(indexA, indexB)

Параметры
indexA | Целое, начиная от 0, на 1 меньшее, чем length строки.
indexB | Целое, начиная от 0, на 1 меньшее, чем length строки.

Описание

subString извлекает символы с indexA до, но не включая, indexB.
В частности:

  • Если indexA меньше 0, indexA рассматривается как имеющий значение 0.

  • Если indexB больше, чем StringName.length, indexB рассматривается так, как если бы он был StringName.length.

  • Если indexA равен indexB, subString возвращает пустую строку.

  • Если indexB опущен, indexA извлекает символы до конца строки.

В JavaScript 1.2 используется LANGUAGE="JavaScript1.2" в тэге SCRIPT:

  • Если indexA больше, чем indexB, JavaScript производит ошибку времени выполнения (out of memory/недостаточно памяти).

В JavaScript 1.2 - без LANGUAGE="JavaScript1.2" в тэге SCRIPT:

  • Если indexA больше, чем indexB, JavaScript возвращает подстроку, начинающуюся с indexB и заканчивающуюся indexA - 1.

Примеры
Пример 1.

В это примере subString используется для отображения символов из строки "Netscape":

var anyString="Netscape"

// Displays "Net"
document.write(anyString.subString(0,3))
document.write(anyString.subString(3,0))
// Displays "cap"
document.write(anyString.subString(4,7))
document.write(anyString.subString(7,4))
// Displays "Netscap"
document.write(anyString.subString(0,7))
// Displays "Netscape"
document.write(anyString.subString(0,8))
document.write(anyString.subString(0,10))

Пример 2.

В это примере замещается подстрока в строке. будут замещаться отдельные символы и подстроки. Вызов функции в конце примера изменяет строку "Brave New World" в "Brave New Web".

function replaceString(oldS,newS,fullS) {
// заменяет oldS на newS в String> fullS
 for (var i=0; i<fullS.length; i++) {
    if (fullS.subString(i,i+oldS.length) == oldS) {
       fullS = fullS.subString(0,i)+newS+fullS.subString(i+oldS.length,fullS.length)
    }
 }
 return fullS
}

replaceString("World","Web","Brave New World")

Пример 3.

В JavaScript 1.2, используя LANGUAGE="JavaScript1.2", следующий скрипт производит ошибку времени выполнения (out of memory).

<SCRIPT LANGUAGE="JavaScript1.2">
str="Netscape"
document.write(str.subString(0,3);
document.write(str.subString(3,0);
</SCRIPT>

Без LANGUAGE="JavaScript1.2", вышеприведённый скрипт печатает следующее:

Net Net

Во втором write индексы поменялись местами.

См. также

substr.

sup

Выводит строку как надиндекс, как при использовании тэга <SUP>.
Метод из | String
Реализован в | JavaScript 1.0, NES 2.0

Синтаксис
sup()

Параметры

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

Описание

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

Примеры

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

var superText="superscript"
var subText="subscript"

document.write("This is what a " + superText.sup() + " looks like.")
document.write("<P>This is what a " + subText.sub() + " looks like.")

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

This is what a <SUP>superscript</SUP> looks like.
<P>This is what a <SUB>subscript</SUB> looks like.

См. также

String.sub.

toLowerCase

Вызывающее строковое значение возвращается конвертированным в нижний регистр.
Метод из | String
Реализован в | JavaScript 1.0, NES 2.0
Версия ECMA | ECMA-262

Синтаксис
toLowerCase()

Параметры

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

Описание

Метод toLowerCase возвращает в качестве значения строку, конвертированную в нижний регистр.
toLowerCase не влияет на значение самой строки.

Примеры

Следующий пример выводит строку "alphabet" в нижнем регистре:

var upperText="ALPHABET"
document.write(upperText.toLowerCase())

См. также

String.toUpperCase.

toSource

Возвращает строку - исходный код объекта.
Метод из | String
Реализован в | JavaScript 1.3

Синтаксис
toSource()

Параметры

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

Описание

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

  • Для встроенного объекта String, toSource возвращает следующую строку, указывающую, что исходный код недоступен:

       function String() {
          [native code]
       }

  • Для экземпляров String или строковых литералов, toSource возвращает строку исходного кода.

Это метод обычно вызывается внутренне в JavaScript, а не явно в коде.

toString

Возвращает строку, представляющую специфицированный объект.
Метод из | String
Реализован в | JavaScript 1.1, NES 2.0
Версия ECMA | ECMA-262

Синтаксис
toString()

Параметры

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

Описание

Объект String переопределяет метод toString объекта Object; он не наследует Object.toString. Для String-объектов метод toString возвращает строковое представление объекта.

Примеры

В этом примере выводится строковое значение String-объекта:

x = new String("Hello world");
alert(x.toString())      // Выводится "Hello world"

См. также

Object.toString.

toUpperCase

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

Синтаксис
toUpperCase()

Параметры

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

Описание

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

Примеры

Этот пример выводит строку  "ALPHABET" в верхнем регистре:

var lowerText="alphabet"
document.write(lowerText.toUpperCase())

См. также

String.toLowerCase.

valueOf

Возвращает примитивное значение String-объекта.
Метод из | String
Реализован в | JavaScript 1.1
Версия ECMA | ECMA-262

Синтаксис

valueOf()

Параметры

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

Описание

Метод valueOf в String возвращает примитивное значение String-объекта как тип данных String. Это значение эквивалентно String.toString.

Этот метод обычно вызывается внутренне в JavaScript, а не явно в коде.

Примеры

x = new String("Hello world");
alert(x.valueOf())          // Выводит "Hello world"

См. также

String.toString, Object.valueOf.

Назад     Вперёд

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


sun

Объект верхнего уровня, используемый для доступа к Java-классам в пакете sun.*.
Объект ядра |
Реализован в | JavaScript 1.1, NES 2.0

Создание

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

Описание

Объект sun это синоним для свойства Packages.sun.

См. также

Packages, Packages.sun

Назад Вперёд

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


Свойства и Функции Верхнего Уровня

Глава 2
Свойства и Функции Верхнего Уровня

В этой главе рассматриваются все свойства и функции JavaScript, не ассоциированные с какими-либо объектами.
В спецификации ECMA эти свойства и функции называются "свойства и методы объекта global".

В следующей таблице даны свойства верхнего уровня:

Таблица 2.1 Свойства верхнего уровня

Свойство | Описание
Infinity | Числовое значение, представляющее бесконечность.
NaN | Значение "Not-A-Number".
undefined | Значение "undefined".

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

Таблица 2.2 Функции верхнего уровня

Функция | Описание
decodeURI | Декодирует URI, который был закодирован с помощью encodeURI.
decodeURIComponent | Декодирует URI, который был закодирован с помощью encodeURIComponent.
encodeURI | Высчитывает новую версию URI, замещая каждый экземпляр некоторых определённых символов escape-последовательностями - UTF-8-кодировками этих символов.
encodeURIComponent | Высчитывает новую версию компонентов URI, замещая каждый экземпляр некоторых определённых символов escape-последовательностями - UTF-8-кодировками этих символов.
eval | Обрабатывает строку кода JavaScript без ссылки на определённый объект.
isFinite | Вычисляет аргумент для определения, является ли он конечным числом.
isNaN | Вычисляет аргумент для определения, является ли он не-числом.
Number | Конвертирует объект в число.
parseFloat | Разбирает строковой аргумент и возвращает число с плавающей точкой.
parseInt | Разбирает строковой аргумент и возвращает целое число.
String | Конвертирует объект в строку.

decodeURI

Декодирует Uniform Resource Identifier (URI), созданный до этого функцией encodeURI или аналогичным способом.

Функция ядра |
Реализована в | JavaScript 1.5, NES 6.0
Версия ECMA | ECMA-262 Edition 3.

Синтаксис
decodeURI(encodedURI)

Параметры
encodedUri

Полный кодированный Uniform Resource Identifier.

Описание

Заменяет каждую escape-последовательность кодированного URI символом, который эта последовательность представляет.

Не декодирует escape-последовательности, которые не могут быть созданы функцией encodeURI.

См. также

decodeURIComponent, encodeURI, encodeURIComponent.

decodeURIComponent

Декодирует компонент Uniform Resource Identifier'а (URI), созданный ранее функцией encodeURIComponent или аналогичным способом.

Функция ядра |
Реализована в | JavaScript 1.5, NES 6.0
Версия ECMA | ECMA-262 Edition 3.

Синтаксис
decodeURIComponent(encodedURI)

Параметр
encodedUri

Кодированный компонент Uniform Resource Identifier'а.

Описание

Заменяет каждую escape-последовательность кодированного компонента URI символом, который эта последовательность представляет.

См. также

decodeURI, encodeURI, encodeURIComponent.

encodeURI

Кодирует Uniform Resource Identifier (URI), замещая каждый экземпляр определённого символа одной, двумя или тремя escape-последовательностями, представляющими кодировку данного символа в UTF-8.

Функция ядра |
Реализована в | JavaScript 1.5, NES 6.0
Версия ECMA | ECMA-262 Edition 3.

Синтаксис
encodeURI(uri)

Параметр
uri

Полный Uniform Resource Identifier.

Описание

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

encodeURI замещает все символы соответствующими escape-последовательностями UTF-8, за исключением следующих символов:

зарезервированные символы | , / ? : @ & = + $ ,
незаменяемые символы | алфавитные, десятеричные цифры, - _ . ! ~ * ' ( )
знак score | #

См. также

decodeURI, eval, encodeURIComponent.

encodeURIComponent

Кодирует компонент Uniform Resource Identifier'а (URI), замещая каждый экземпляр определённого символа одной, двумя или тремя escape-последовательностями, представляющими кодировку данного символа в UTF-8.

Функция ядра |
Реализована в | JavaScript 1.5, NES 6.0
Версия ECMA | ECMA-262 Edition 3.

Синтаксис
encodeURIComponent(uri)

Параметр
uri

Компонент Uniform Resource Identifier'а.

Описание

Принимает, что URI это компонент URI, а не полный URI, поэтому не рассматривает зарезервированные символы как имеющие специальное значение и кодирует их. См. в encodeURI список зарезервированных символов.

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

незаменяемые символы | алфавитные, десятеричные цифры, - _ . ! ~ * ' ( )
знак score | #

См. также

decodeURI, eval, encodeURI.

eval

Вычисляет строку кода JavaScript без ссылки на определённый объект.

Функция ядра |
Реализована в | JavaScript 1.0 JavaScript 1.4: eval не может вызываться неявно.
Версия ECMA | ECMA-262

Синтаксис
eval(string)

Параметр
string

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

Описание

eval это функция верхнего уровня, не ассоциированная с каким-либо объектом.

Аргументом функции eval является строка. Если строка является выражением, eval вычисляет это выражение. Если аргументом является один или более операторов JavaScript, eval выполняет эти операторы. Не вызывайте eval для вычисления арифметических выражений; JavaScript вычисляет арифметические выражения автоматически.

Если Вы конструируете арифметическое выражение как строку, Вы можете использовать eval для вычисления его позднее. Например, предположим, у Вас имеется переменная x. Вы можете отложить вычисление выражения, включающего x, присвоив строковое значение выражения, скажем, "3 * x + 2", переменной, а затем вызвать eval из более поздней точки Вашего скрипта.

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

eval(new String("2+2")) // возвращает String-объект, содержащий "2+2"
eval("2+2")             // возвращает 4

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

var x = 2
var y = 4
var myEval = eval
myEval("x + y")

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

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

Вы можете использовать eval косвенно, хотя это не рекомендуется.

JavaScript 1.1.

eval является также методом всех объектов. Этот метод описан для класса Object.

Примеры

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

Пример 1.

В этом коде оба оператора, содержащих eval, возвращают 42. Первый вычисляет строку "x + y + 1"; второй - строку "42".

var x = 2
var y = 39
var z = "42"
eval("x + y + 1") // возвращает 42
eval(z)           // возвращает 42

Пример 2.

В этом примере функция getFieldName(n) возвращает имя специфицированного элемента формы как строку. Первый оператор присваивает строковое значение третьего элемента/поля формы переменной field. Второй оператор использует eval для отображения значения элемента формы.

var field = getFieldName(3)
document.write("The field named ", field, " has value of ",
   eval(field + ".value"))

Пример 3.

В этом примере eval используется для вычисления строки str. Строка состоит из операторов JavaScript, которые открывают диалоговое окно Alert и присваивают переменной z значение 42, если x равен пяти, и присваивают 0 переменной z в ином случае. Когда выполняется второй оператор, eval вызывает выполнение вышеуказанных операторов, а также будет вычислять набор операторов и возвратит значение, присвоенной переменной z.

var str = "if (x == 5) {alert('z is 42'); z = 42;} else z = 0; "
document.write("<P>z is ", eval(str))

Пример 4.

В этом примере функция setValue использует eval для присвоения значения переменной newValue текстовому полю textObject:

function setValue (textObject, newValue) {
   eval ("document.forms[0]." + textObject + ".value") = newValue
}

См. также

метод Object.eval.

Infinity

Числовое значение, представляющее бесконечность.

Свойство ядра |
Реализовано в | JavaScript 1.3 (В предыдущих версиях Infinity было определено только как свойство объекта Number).
Версия ECMA | ECMA-262

Синтаксис
Infinity

Описание

Infinity это свойство верхнего уровня, не ассоциированное с каким-либо объектом.

Начальным значением Infinity является Number.POSITIVE_INFINITY. Значение Infinity (положительная бесконечность) больше, чем любые другие числа, в том числе и она сама. Это значение математически ведёт себя как Бесконечность; например, что-либо, умноженное на Бесконечность, является Бесконечностью, и что-либо, делённое на бесконечность, является 0.

См. также

Number.NEGATIVE_INFINITY, Number.POSITIVE_INFINITY.

isFinite

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

Функция ядра |
Реализована в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
isFinite(number)

Параметр
number

Вычисляемое число.

Описание

isFinite это функция верхнего уровня, не ассоциированная с каким-либо объектом.

Вы можете использовать этот метод для определения конечности числа. Метод isFinite проверяет число как аргумент. Если аргумент является NaN, положительной или отрицательной Бесконечностью, метод возвращает false, в ином случае - true.

Примеры

Вы можете проверить клиентский ввод для определения, введено ли конечное число.

if(isFinite(ClientInput) == true)
{
   /* здесь некоторые операторы */
}

См. также

Number.NEGATIVE_INFINITY, Number.POSITIVE_INFINITY.

isNaN

Вычисляет аргумент для определения, является ли он не-числом.

Функция ядра |
Реализована в | JavaScript 1.0: только Unix. JavaScript 1.1, NES 2.0: все платформы.
Версия ECMA | ECMA-262

Синтаксис
isNaN(testValue)

Параметр
testValue

Обсчитываемое значение.

Описание

isNaN это функция верхнего уровня, не ассоциированная с каким-либо объектом.

Функции parseFloat и parseInt возвращают NaN, если вычисляют значение, не являющееся числом. isNaN возвращает true, если передано NaN, и false - в ином случае.

Примеры

Вычисляется floatValue для определения, является ли оно числом, а затем вызывается соответствующая процедура:

floatValue=parseFloat(toFloat)

if (isNaN(floatValue)) {
   notFloat()
} else {
   isFloat()
}

См. также

Number.NaN, parseFloat, parseInt.

NaN

Значение, представляющее Not-A-Number/Не-Число.

Свойство ядра |
Реализовано в | JavaScript 1.3 (В предыдущих версиях NaN было определено только как свойство объекта Number).
Версия ECMA | ECMA-262

Синтаксис
NaN

Описание

NaN это свойство верхнего уровня, не ассоциированное с каким-либо объектом.

Начальным значением NaN является NaN.

NaN всегда не равно любому другому числу, включая само NaN; Вы не можете проверить на наличие значения not-a-number, сравнивая Number.NaN. Вместо этого используйте функцию isNaN.

Некоторые методы JavaScript (такие как конструктор Number, parseFloat и parseInt) возвращают NaN, если значением специфицированного параметра не является число.

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

См. также

isNaN, Number.NaN.

Number

Конвертирует специфицированный объект в число.

Функция ядра |
Реализована в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA-262

Синтаксис
Number(obj)

Параметр
obj

Объект.

Описание

Number это функция верхнего уровня, не ассоциированная с каким-либо объектом.

Если объект является Date-объектом, Number возвращает значение в миллисекундах, отмеренное от даты 01 января 1970 UTC (GMT), положительное после этой даты, негативное - до.

Если объект - строка, не содержащая верного числового литерала, Number возвращает NaN.

Пример

Здесь Date-объект конвертируется в числовое значение:

d = new Date ("December 17, 1995 03:24:00")
alert (Number(d))

Это выводит диалоговое окно с числом "819199440000."

См. также

Number.

parseFloat

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

Функция ядра

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

JavaScript 1.0: если первый символ специфицированной строки parseFloat(string) не может быть конвертирован в число, возвращается NaN, на Solaris и Irix, и 0 - на всех других платформах.

JavaScript 1.1, NES 2.0: возвращает NaN на всех платформах если первый символ строки в parseFloat(string) не может быть конвертирован в число.

Версия ECMA

ECMA-262

Синтаксис
parseFloat(string)

Параметр
string

Строка - разбираемое значение.

Описание

parseFloat это функция верхнего уровня, не ассоциированная с каким-либо объектом.

parseFloat разбирает свой аргумент, строку, и возвращает число с плавающей точкой. Если она обнаруживает символ, отличный от знака (+ или -), цифры (0-9), десятичной точки или экспоненты, она возвращает значение до этой позиции и игнорирует это и все последующие символы. Ведущие и ведомые пробелы допускаются.

Если первый символ не может быть конвертирован в число, parseFloat возвращает NaN.

Для арифметических целей значение NaN не является числом при любом основании исчисления/radix. Вы можете вызвать функцию isNaN для того, чтобы определить, является ли результат работы parseFloat не-числом/NaN. Если NaN передаётся в арифметические операции, результат операции также будет NaN.

Примеры

Все следующие примеры возвращают 3.14:

parseFloat("3.14")
parseFloat("314e-2")
parseFloat("0.0314E+2")
var x = "3.14"
parseFloat(x)

Этот пример возвращает NaN:

parseFloat("FF2")

См. также

isNaN, parseInt.

parseInt

Разбирает строковой аргумент и возвращает целое число - специфицированную базу/radix.

Функция ядра

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

JavaScript 1.0: если первый символ строки, специфицированной в parseInt(string), не может быть конвертирован в число, возвращается NaN на Solaris и Irix, и 0 на всех других платформах.

JavaScript 1.1, LiveWire 2.0: возвращает NaN на всех платформах, если первый символ строки, специфицированной в parseInt(string), не может быть конвертирован в число.

Версия ECMA

ECMA-262

Синтаксис
parseInt(string[, radix])

Параметры
string | Строка - разбираемое значение.
radix | Целое число - основание системы счисления - radix.

Описание

parseInt это функция верхнего уровня, не ассоциированная с каким-либо объектом.

Функция parseInt разбирает свой первый аргумент, строку, и пытается вернуть целое число - специфицированное основание счисления (base). Например, radix 10 означает конвертацию в десятеричное число, 8 - восьмеричное, 16 - шестнадцатеричное, и так далее. Для баз более 10 применяются буквы алфавита для обозначения аргументов больше 9. Например, для 16-ричных чисел (base 16) используются латинские буквы от A до F.

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

Если radix не специфицирован или специфицирован как 0, JavaScript принимает следующее:

  • Если введённая строка начинается с "0x", radix равен 16 (hexadecimal).

  • Если введённая строка начинается с "0", radix равен 8 (octal). Это значение не рекомендуется.

  • Если введённая строка начинается с любого другого значения, radix равен 10 (decimal).

Если первый символ не может быть конвертирован в число, parseInt возвращает NaN.

Для арифметических целей, значение NaN не является числом при любом radix. Вы можете вызвать функцию isNaN, чтобы определить, является ли результат parseInt NaN. Если NaN передаётся в арифметические операции, результат операции также будет NaN.

Примеры

Все следующие примеры возвращают 15:

parseInt("F", 16)
parseInt("17", 8)
parseInt("15", 10)
parseInt(15.99, 10)
parseInt("FXX123", 16)
parseInt("1111", 2)
parseInt("15*3", 10)

Все следующие примеры возвращают NaN:

parseInt("Hello", 8)
parseInt("0x7", 10)
parseInt("FFF", 10)

Хотя radix специфицирован разный, все следующие примеры возвращают 17, поскольку введённая строка начинается с "0x".

parseInt("0x11", 16)
parseInt("0x11", 0)
parseInt("0x11")

См. также

isNaN, parseFloat, Object.valueOf.

String

Конвертирует специфицированный объект в строку.

Функция ядра |
Реализована в | JavaScript 1.2, NES 3.0
Версия ECMA | ECMA-262

Синтаксис
String(obj)

Параметр
obj

Объект.

Описание

String это функция верхнего уровня, не ассоциированная с каким-либо объектом.

Метод String конвертирует значение любого объекта в строку; он возвращает то же самое значение, что и метод toString отдельного объекта.

Если объектом является Date-объект, String возвращает более читабельное строковое представление даты.
Формат: Thu Aug 18 04:37:43 Pacific Daylight Time 1983.

Пример

Этот пример конвертирует Date-объект в строку, годную для чтения.

D = new Date (430054663215)
alert (String(D))

На выводе появится диалоговое окно, содержащее: "Thu Aug 18 04:37:43 GMT-0700 (Pacific Daylight Time) 1983."

См. также

String.

undefined

Значение "undefined" (неопределённое).

Свойство ядра |
Реализовано в | JavaScript 1.3
Версия ECMA | ECMA-262

Синтаксис
undefined

Описание

undefined это функция верхнего уровня, не ассоциированная с каким-либо объектом.

Переменная , которой не присвоено никакого значения, имеет тип undefined. Метод или оператор также возвращают undefined, если вычисляемая переменная не имеет присвоенного значения.

Вы можете использовать undefined, чтобы определить, присвоено ли значение переменной.
В этом коде переменная x не определена, и оператор if вычисляется в true.

var x
if(x == undefined) {
   // эти операторы выполняются
}

undefined является также примитивным значением.

Назад Вперёд

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