JavaScript. Подробное руководство, 6-е издание

Флэнаган Дэвид

III

Справочник по базовому JavaScript

 

 

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

Arguments

Array

Boolean

Date

Error

EvalError

Function

Global

JSON

Math

Number

Object

RangeError

ReferenceError

RegExp

String

SyntaxError

TypeError

URIError

Справочные страницы с описанием методов и свойств классов отсортированы по их полным именам, включающим имена определяющих их классов. Например, чтобы найти метод replace() класса String, его следует искать как String. replace(), а не просто replace.

В базовом JavaScript определены некоторые глобальные функции и свойства, такие как eval() и NaN . Формально они являются свойствами глобального объекта. Однако у глобального объекта нет имени, поэтому в справочнике они перечислены по их неполным именам. Для удобства полный набор глобальных функций и свойств базового JavaScript объединен в специальную справочную статью «Global» (хотя объекта или класса с таким именем нет).

 

Справочник по базовому JavaScript

 

Arguments

arguments[]

массив аргументов функции

Синтаксис

arguments

Описание

Массив arguments[] определен только внутри тела функции, где он ссылается на объект Arguments этой функции. Данный объект имеет нумерованные свойства и представляет собой массив, содержащий все переданные функции аргументы. Идентификатор arguments - это, по существу, локальная переменная, автоматически объявляемая и инициализируемая внутри каждой функции. Она ссылается на объект Arguments только внутри тела функции и не определена в глобальном программном коде.

См. также

Arguments; глава 8

Arguments

аргументы и другие свойства функции (Object->Arguments)

Синтаксис

arguments

arguments[n]

Элементы

Объект Arguments определен только внутри тела функции. Хотя формально он не является массивом, у него есть нумерованные свойства, действующие как элементы массива, и свойство length , значение которого равно количеству элементов массива. Его элементами являются значения, переданные функции в качестве аргументов. Элемент 0 - это первый аргумент, элемент 1 - второй аргумент и т. д. Все значения, переданные в качестве аргументов, становятся элементами массива в объекте Arguments независимо от того, присвоены ли этим аргументам имена в объявлении функции.

Свойства

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

length -  Количество аргументов, переданных функции, и количество элементов массива в объекте Arguments.

Описание

Когда вызывается функция, для нее создается объект Arguments , и локальная переменная arguments автоматически инициализируется ссылкой на объект Arguments . Основное назначение объекта Arguments - предоставить возможность определить, сколькo аргументов передано функции, и обратиться к неименованным аргументам. В дополнение к элементам массива и свойству length , у объекта Arguments имеется свойство callee , которое позволяет неименованной функции ссылаться на саму себя.

Для большинства задач объект Arguments можно рассматривать как массив с дополнительным свойством callee . Однако он не является экземпляром объекта Array , а свойство Arguments.length не обладает особым поведением, как свойство Array.length , и не может использоваться для изменения размера массива.

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

См. также

Function; глава 8

Arguments.callee

(не доступно в строгом режиме)

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

Синтаксис

arguments.callee

Описание

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

Пример

// Неименованный литерал функции использует свойство callee

// для ссылки на себя, чтобы произвести рекурсивный вызов

var factorial = function(x) {

  if (x < 2) return 1; else return x * arguments.callee(x1);

}

var у = factorial(5); // Вернет 120

Arguments.length

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

Синтаксис

arguments.length

Описание

Свойство length объекта Arguments возвращает количество аргументов, переданных текущей функции. Это свойство определено только внутри тела функции.

Обратите внимание: это свойство возвращает фактическое количество переданных аргументов, а не ожидаемое. О количестве аргументов в объявлении функции говорится в справочной статье Function.length . Кроме того, следует отметить, что это свойство не обладает особым поведением, как свойство Array.length .

Пример

// Использовать объект Arguments, чтобы проверить, верное ли количество

// аргументов было передано

function check(args) {

  var actual = args.length; // Фактическое количество аргументов

  var expected = args.callee.length; // Ожидаемое количество аргументов

  if (actual != expected) { // Если не совпадают, сгенерировать исключение

    throw new Error("Неверное число аргументов: ожидается: " +

               expected + ”; фактически передано " + actual);

  }

}

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

function f(x, у, z) {

  check(arguments); // Проверить правильность количества аргументов

  return х + у + z; // Выполнить оставшуюся часть функции обычным образом

См. также

Array.length, Function.length

 

Array

Array

встроенная поддержка массивов (Object->Array)

Конструктор

new Array()

new Array(размер)

new Array(элементе, элемент1..... элемент)

Аргументы

размер - Желаемое количество элементов в массиве. Длина возвращаемого массива (length ) равна аргументу размер.

элемент0, ... элементN - Список аргументов из двух и более произвольных значений. Когда конструктор А г ray () вызывается с этими аргументами, элементы только что созданного массива инициализируются указанными значениями, а свойство length становится равным количеству аргументов.

Возвращаемое значение

Вновь созданный и инициализированный массив. Когда конструктор Array() вызывается без аргументов, он возвращает пустой массив, свойство length которого равно 0.

При вызове с одним числовым аргументом конструктор возвращает массив с указанным количеством неопределенных элементов. При вызове с любыми другими аргументами конструктор инициализирует массив значениями аргументов. Когда конструктор Аrray() вызывается как функция (без оператора new ), он ведет себя точно так-же, как при вызове с оператором new .

Исключения

RangeErгог Когда конструктору Аггау() передается один целый аргумент размер, генерируется исключение RangeErгог , если размер отрицателен или превышает 232-1.

Синтаксис литерала

ECMAScript v3 определяет синтаксис литералов для массивов. Программист может создавать и инициализировать массив, заключая список выражений, перечисленных через запятые, в квадратные скобки. Значения этих выражений становятся элементами массива. Например:

var а = [1, true, 'abc‘];

var b = [а[0], а[0]*2, f(x)];

Свойства

length Целое, доступное для чтения и записи, определяет количество элементов массива или, если элементы массива расположены не непрерывно, число, на единицу большее индекса последнего элемента массива. Изменение этого свойства укорачивает или расширяет массив.

Методы

Методы every(), filter(), forEach(), indexOf (), lastlndexOf(), map(), reduce(), reduceRight() и some() впервые появились в ECMAScript 5, но были реализованы всеми броузерами, кроме IE, до утверждения стандарта ES5.

соnсat() Присоединяет элементы к массиву.

every() Проверяет, возвращает ли предикат значение true для каждого элемента массива.

filter() Возвращает массив элементов, удовлетворяющих требованиям функции-предиката.

forEach() Вызывает функцию для каждого элемента массива.

indexOf() Выполняет поиск элемента в массиве.

join() Преобразует все элементы массива в строки и выполняет их конкатенацию.

lastIndexOf() Выполняет поиск в массиве в обратном порядке.

mар() Вычисляет элементы нового массива из элементов данного массива,

рор() Удаляет элемент из конца массива,

рush() Помещает элемент в конец массива.

reduce() Вычисляет значение на основе элементов данного массива.

reduceRight() Выполняет свертку массива справа налево.

reveгse() Меняет порядок следования элементов в массиве на противоположный,

shift() Сдвигает элементы к началу массива,

slice() Возвращает подмассив массива.

some() Проверяет, возвращает ли предикат значение true хотя бы для одного элемента массива.

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

splice() Вставляет, удаляет или заменяет элементы массива

toLocaleString() Преобразует массив в локализованную строку.

toString() Преобразует массив в строку.

unshift() Вставляет элементы в начало массива.

Описание

Массивы - это базовое средство JavaScript, подробно описанное в главе 7.

См. также

Глава 7

Array.concat()

выполняет конкатенацию массивов

Синтаксис

массивюconcat (значение, ...)

Аргументы

значение, ... Любое количество значений, присоединяемых к массиву.

Возвращаемое значение

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

Описание

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

Пример

var а = [1,2,3];

a.concat(4, 5)         // Вернет [1,2,3,4,5]

а.concat([4,5]);       // Вернет [1,2,3,4,5]

a.concat([4,5],[6,7])  // Вернет [1,2,3,4,5,6,7]

a.concat(4, [5,[6,7]]) // Вернет [1,2,3,4,5,[6,7]]

См. также

Array.join(), Array.push(), Array.splice()

Array.every() (EcmaScript 5)

проверяет, возвращает ли предикат значение true для каждого элемента массива

Синтаксис

массив.every (предикат)

массивюevery (предикат, о)

Аргументы

предикат Функция-предикат, выполняющая проверку элементов массива

о Необязательное значение this , передаваемое предикату.

Возвращаемое значение

true, если предикат вернет true (или какое-либо истинное значение) для каждого элемента массива, или false, если предикат вернет false (или какое-либо ложное значение) хотя бы для одного элемента массива.

Описание

Метод every() проверяет соответствие всех элементов массива некоторому условию. Он обходит в цикле элементы массива в порядке возрастания индексов и для каждого элемента вызывает указанную функцию предикат. Если предикат вернет false (или любое другое значение, которое в логическом контексте преобразуется в значение false), метод every() прекратит выполнение цикла и немедленно вернет false. Если для каждого элемента предикат вернет true, то и метод every() вернет true. При применении к пустому массиву every() возвращает true.

Для каждого индекса і в массиве функция предикат вызывается с тремя аргументами:

предикат(массив[і], і, массив)

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

Дополнительные сведения приводятся в статье Array.forEach().

Пример

[1,2,3] .every(function(x) { return х < 5; }) // => true: все элементы < 5

[1,2,3] .every(function(x) { return x < 3; })//=> false: не все элементы < З

[].every(function(x) { return false; }); // => true: всегда true для []

См. также

Array.filter(), Array.forEach(), Array.some()

Array.filter() (ECMAScript 5)

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

Синтаксис

массив.mар(предикат)

массив.mар(предикат, о)

Аргументы

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

о Необязательное значение this, передаваемое предикату.

Возвращаемое значение

Новый массив, содержащий только те элементы массива, для которых предикат вернет true (или истинное значение).

Описание

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

Метод filter() выполняет цикл по индексам массива в порядке возрастания и вызывает предикат для каждого элемента. Для каждого индекса і функция предикат вызывается с тремя аргументами:

предикат(массив[і], і, массив)

Если предикат вернет true или истинное значение, элемент с индексом і в массиве будет добавлен во вновь созданный массив. После того как метод filter() проверит все элементы массива у он вернет новый массив.

Дополнительные сведения приводятся в статье Array.forEach().

Пример

[1,2,3].filter(function(x) { return х > 1; }); // => [2,3]

См. также

Array.every(), Array.forEach(), Array.indexOf(), Array.map(), Array.reduce()

Array.forEach() (ECMAScript 5)

вызывает функцию для каждого элемента массива

Синтаксис

массив.forEach(f)

массив.forEach(f, о)

Аргументы

f Функция, вызываемая для каждого элемента массива,

о Необязательное значение this , передаваемое функции f.

Возвращаемое значение

Этот метод ничего не возвращает.

Описание

Метод forEach() выполняет цикл по индексам массива в порядке возрастания и вызывает функцию f для каждого элемента. Для каждого индекса і функция f вызывается с тремя аргументами:

f(массив[і], і, массив)

Значение, возвращаемое функцией f, игнорируется. Обратите внимание, что метод forEach() ничего не возвращает. В частности, он не возвращает массив.

Особенности методов массивов

Описываемые ниже особенности относятся к методу forEach() , а также к родственным ему методам map(), filter(), every() и some().

Каждый из этих методов принимает функцию в первом аргументе и необязательный второй аргумент. Если указан второй аргумент о, функция будет вызвана как метод объекта о. То есть в теле функции ключевое слово this будет возвращать о. Если второй аргумент не указан, то функция будет вызываться как функция (а не как метод) и ключевое слово this в ней будет ссылаться на глобальный объект при выполнении в нестрогом режиме или содержать значение null при выполнении в строгом режиме. Каждый из этих методов проверяет длину массива перед началом итераций. Если вызываемая функция добавляет новые элементы в конец массива, цикл по этим новым элементам выполняться не будет. Если функция изменяет существующие элементы, цикл по которым еще не выполнялся, на следующих итерациях она получит измененные значения.

При работе с разреженными массивами эти методы не вызывают функцию для индексов с фактически отсутствующими элементами.

Пример

var а = [1,2,3];

a.forEach(function(x,і,а) { a[i]++; }); //а теперь будет [2,3,4]

См. также

Array.every(), Array.filter(), Array.indexOf(), Array.map(), Array.reduce()

Array.indexOf() (ECMAScript 5)

поиск в массиве

Синтаксис

массив. indexOf(значение)

массив.indexOf(значение, начало)

Аргументы

значение Значение, которое ищется в массиве.

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

Возвращаемое значение

Первый индекс >= началу в массиве, где элемент === значению, или -1, если такой элемент не найден.

Описание

Этот метод выполняет поиск в массиве элемента, эквивалентного указанному значению, и возвращает индекс первого найденного элемента. Поиск начинается с индекса, определяемого аргументом начало, или с 0 и продолжается в порядке последовательного увеличения индексов, пока не будет найдено соответствие или пока не будут проверены все элементы. Для проверки эквивалентности используется оператор ===. Возвращает индекс первого соответствующего элемента или -1, если соответствие не было найдено.

Пример

['a','b','c'].indexOf('b')   // => 1

['a','b','c'].indexOf('d')   // => -1

['a','b','c'].indexOf('a',1) // => -1

См. также

Array.lastlndexOf(), String.indexOf()

Array.join()

выполняет конкатенацию элементов массива в строку

Синтаксис

массив.join ()

массив.join (разделитель)

Аргументы

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

Возвращаемое значение

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

Описание

Метод join() преобразует каждый элемент массива в строку и затем выполняет конкатенацию этих строк, вставляя указанный разделитель между элементами. Возвращает полученную строку.

Обратное преобразование (разбиение строки на элементы массива) можно выполнить с помощью метода split() объекта String . Подробности см. в справочной статье String.split().

Пример

а = new Аггау(1, 2, 3, "testing");

s = a.join("+") // s - это строка ”1+2+3+testing"

См. также

String.split()

Array.lastlndexOf() (ECMAScript 5)

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

Синтаксис

массив.lastlndexOf(значение)

массив.lastlndexOf(значение, начало)

Аргументы

значение Искомое значение.

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

Возвращаемое значение

Наибольший индекс <= начало в массиве, где элемент === значение, или -1, если такой элемент не найден.

Описание

Этот метод выполняет поиск элемента, эквивалентного указанному значению, в обратном порядке, последовательно уменьшая индекс, и возвращает индекс первого найденного элемента. Если указан аргумент начало, его значение будет использоваться в качестве начальной позиции поиска; иначе поиск начнется с конца массива. Для проверки эквивалентности используется оператор ===. Возвращает индекс первого соответствующего элемента или -1, если соответствие не было найдено.

См. также

Array.indexOf(), String.lastlndex0f()

Array.length

размер массива

Синтаксис

массив.length

Описание

Свойство length массива всегда на единицу больше индекса последнего элемента, определенного в массиве. Для традиционных «плотных» массивов, в которых определена непрерывная последовательность элементов и которые начинаются с элемента 0, свойство length указывает количество элементов в массиве.

Свойство length инициализируется в момент создания массива с помощью метода-конструктора Аггау(). Добавление новых элементов изменяет значение length , если в этом возникает необходимость:

с[3] = "four";      // с.length изменяется на 4

с[10] = "blastoff"; // с.length становится равным 11

Чтобы изменить размер массива, можно установить значение свойства length . Если новое значение length меньше предыдущего, массив обрезается и элементы в его конце теряются. Если значение length увеличивается (новое значение больше старого), массив становится больше, а новые элементы, добавленные в конец массива, получают значение undefined .

Array.map() (ECMAScript 5)

вычисляет элементы нового массива из элементов старого массива

Синтаксис

массив.map(f)

массив.mаp(f, о)

Аргументы

f Функция, вызываемая для каждого элемента массива. Возвращаемое ею значение становится элементом возвращаемого массива.

о Необязательное значение this , передаваемое функции f.

Возвращаемое значение

Новый массив, элементы которого были вычислены функцией f.

Описание

Метод map() создает новый массив той же длины, что и прежний массив, и вычисляет элементы этого нового массива, передавая элементы массива функции f. Метод mар() выполняет цикл по индексам массива в порядке их возрастания и вызывает f для каждого элемента. Для каждого индекса і функция f вызывается с тремя аргументам, а ее возвращаемое значение сохраняется в элементе с индексом і вновь созданного массива:

а[і] = f(array[і], і, array)

После того как метод mар() передаст каждый элемент массива функции f и сохранит результаты в новом массиве, он вернет новый массив.

Дополнительные сведения приводятся в статье Array.forEach().

Пример

[1,2,3].map(function(x) { return х*х; }); // => [1,4,9]

См. также

Array.every(), Array.filter(), Array.forEach(), Array.indexOf(), Array.reduce()

Array.pop()

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

Синтаксис

массив.pop()

Возвращаемое значение

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

Описание

Метод рор() удаляет последний элемент массива, уменьшает длину массива на единицу и возвращает значение удаленного элемента. Если массив уже пуст, рор() его не изменяет и возвращает значение undefined .

Пример

Метод рор() и парный ему метод push() позволяют реализовать стек, работающий по принципу «первым вошел, последним вышел». Например:

var stack = [];   // stack: []

stack.push(1, 2); // stack:[1,2] Вернет 2

stack.pop();      // stack:[1] Вернет 2

stack.push([4,5]);// stack:[1,[4,5]] Вернет 2

stack.pop()       // stack: [1] Вернет [4,5]

stack.pop();      // stack: [] Вернет 1

См. также

Array.push()

Array.push()

добавляет элементы массива

Синтаксис

массив, push(значение, ...)

Аргументы

значение, ... Одно или более значений, которые должны быть добавлены в конец массива.

Возвращаемое значение

Новая длина массива после добавления в него указанных значений.

Описание

Метод push() добавляет свои аргументы в указанном порядке в конец массива. Он изменяет существующий массив, а не создает новый. Метод push() и парный ему метод рор() используют массив для реализации стека, работающего по принципу «первым вошел, последним вышел». Пример - в статье Array.рор().

См. также

Array. рор()

Array.reduce() (ECMAScript 5)

вычисляет значение из элементов массива

Синтаксис

массив.reduce(f)

массив.reduce(f, начальное_значение)

Аргументы

f Функция, объединяющая два значения (два элемента массива) и возвращающая новое значение «свертки».

начальное_значение Необязательное начальное значение свертки массива. Если этот аргумент указан, метод reduce() будет действовать, как если бы это значение было добавлено в начало массива.

Возвращаемое значение

Значение свертки массива, которое является результатом последнего вызова функции f.

Описание

Метод reduce() в первом аргументе принимает функцию f. Эта функция должна действовать как двухместный оператор: она должна принимать два значения, выполнять над ними некоторую операцию и возвращать результат. Если массив имеет n элементов, функция f будет вызвана методом reduce() для свертки элементов в единственное значение n -1 раз. (Возможно, вы уже знакомы с операцией свертки массивов по другим языкам программирования

При первом вызове функции f передаются два первых элемента массива. При каждом следующем вызове функции f передаются значение, полученное при предыдущем вызове, и следующий элемент (в порядке возрастания индексов) массива. Возвращаемое значение последнего вызова становится возвращаемым значением метода reduce() . Методу reduce() может предаваться второй необязательный аргумент с начальным_значением. Если начальное_значение указано, метод reduce() будет действовать так, как если бы значение этого аргумента было вставлено в начало массива (в реальности массив не модифицируется). Иными словами, если метод reduce() вызывается с двумя аргументами, то начальное_значение будет использоваться, как если бы оно было получено ранее в результате вызова функции f. В этом случаев при первом вызове функции f будут переданы начальное_значение и первый элемент массива. Когда передается начальное_значение, создается свертка из n+1 элементов (n элементов массива плюс начальное_ значение) и функция сбудет вызвана n раз.

Если массив пуст и начальное_значение не указано, метод reduce() возбудит исключение ТуреЕrror . Если массив пуст и начальное_значение указано, метод reduce() вернет начальное_значение, не вызвав f ни разу. Если массив имеет единственный элемент и начальное_значение не указано, метод reduce() вернет единственный элемент массива, не вызывая функцию f.

Выше говорится о двух аргументах функции f, но в действительности метод reduce() передает этой функции четыре аргумента. В третьем аргументе передается индекс второго аргумента в массиве, а в четвертом - сам массив. Функция f всегда вызывается как функция, а не как метод.

Пример

[ 1,2,3,4].reduce(function(х,у) { return х*у; }) // => 24: ((1*2)*3)*4

См. также

Array.forEach(), Array.map(), Array.reduceRight()

Array.reduceRight() (ECMAScript 5)

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

Синтаксис

массив. reduceRight(f)

массив. reduceRight(f, начальное_значение)

Аргументы

f Функция, объединяющая два значения (два элемента массива) и возвращающая новое значение «свертки».

начальное_значение Необязательное начальное значение свертки массива. Если этот аргумент указан, метод reduceRight() будет действовать, как если бы это значение было добавлено в конец массива.

Возвращаемое значение

Значение свертки массива, которое является результатом последнего вызова функции f.

Описание

Метод reduceRight() действует подобно методу reduce(): он вызывает n-1 раз функцию f для свертки n элементов массива в единственное значение. Отличие reduceRight() от  reduce() заключается только в том, что он выполняет обход элементов массива справа налево (от больших индексов к меньшим), а не слева направо. Подробности см. в статье Array.reduce().

Пример

[2, 10, 60].reduceRight(function(х,у) { return х/у }) // => 3: (60/10)/2

См. также

Array. reduce()

Array.reverse()

изменяет порядок следования элементов в массиве на противоположный

Синтаксис

массив.reverse()

Описание

Метод reverse() объекта Array меняет порядок следования элементов в массиве на противоположный. Он делает это «на месте», т. е. переупорядочивает элементы указанного массива, не создавая новый. Если есть несколько ссылок на массив, новый порядок следования элементов массива будет виден по всем ссылкам.

Пример

а = new Array(1, 2, 3); // а[0] == 1, а[2] == 3;

a.reverse();            // Теперь а[0] == 3, а[2] == 1;

Array.shift()

сдвигает элементы к началу массива

Синтаксис

массив.shift()

Возвращаемое значение

Бывший первый элемент массива.

Описание

Метод shift() удаляет и возвращает первый элемент массива, смещая все последующие элементы на одну позицию вниз для занятия освободившегося места в начале массива. Если массив пуст, shift() не делает ничего и возвращает значение undefined. Обратите внимание: shift() не создает новый массив, а непосредственно изменяет сам массив. Метод shift() похож на Array.рор() за исключением того, что удаление элемента производится из начала массива, а не с конца, shift() часто используется в сочетании с unshift() .

Пример

var а = [1, [2,3], 4]

a.shift(); // Вернет 1; а = [[2,3], 4]

a.shift(); // Вернет [2,3]; а = [4]

См. также

Array.pop(), Array.unshift()

Array.slice()

возвращает фрагмент массива

Синтаксис

массив.siice(начало, конец)

Аргументы

начало Индекс элемента массива, с которого начинается фрагмент. Отрицательное значение этого аргумента указывает позицию, измеряемую от конца массива. Другими словами, -1 обозначает последний элемент, -2 - второй элемент с конца и т. д.

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

Возвращаемое значение

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

Описание

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

Обратите внимание: slice() не изменяет массив. Для удаления фрагмента массива следует использовать метод Array.splice() .

Пример

var а = [1,2,3,4,5]

a.slice(0,3);       // Вернет [1,2,3]

a.slice(3);         // Вернет [4,5]

a.slice(1,-1);      // Вернет [2,3,4]

a.slice(-3,-2);     // Вернет [3]; в ІЕ 4 работает с ошибкой,возвращая [1,2,3]

Ошибки

В Internet Explorer 4 начало не может быть отрицательным числом. В более поздних версиях IE эта ошибка исправлена.

См. также

Array.splice()

Array.some() (ECMAScript 5)

проверяет, возвращает ли предикат значение true хотя бы для одного элемента массива

Синтаксис

массив.some(предикат)

массив.some(предикат, о)

Аргументы

предикат Функция-предикат для проверки элементов массива.

о Необязательное значение this в вызове функции предиката.

Возвращаемое значение

true, если предикат вернет true (или истинное значение) хотя бы для одного элемента массива, или false, если предикат вернет false (или ложное значение) для всех элементов.

Описание

Метод some() проверяет, выполняется ли условие хотя бы для одного элемента массива. Он выполняет цикл по элементам массива в порядке возрастания индексов и вызывает указанную функцию предикат для каждого элемента. Если предикат вернет true (или значение, которое в логическом контексте преобразуется в true), то метод some() прекратит выполнение цикла и немедленно вернет true. Если все вызовы предиката вернут false (или значение, которое в логическом контексте преобразуется в false), то метод some() вернет false. При применении к пустому массиву some() вернет false.

Этот метод очень похож на метод every() . Дополнительные сведения приводятся в статьях.Аггау.eveгу() и Array.forEach().

Пример

[1,2,3].some(function(x) { return x > 5; }) //=> false: нет элементов > 5

[1,2,3].some(function(x) { return x > 2; }) //=> true: некоторые > 3

[].some(function(x) { return true; });      // => false: всегда false для []

См. также

Array.every(), Array.filter(), Array.forEach()

Array.sort()

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

Синтаксис

массив.sort()

массив.sort(orderfunc)

Аргументы

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

Возвращаемое значение

Ссылка на массив. Обратите внимание, что массив сортируется на месте, копия массива не создается.

Описание

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

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

• Отрицательное число, если в соответствии с выбранным критерием сортировки значение а «меньше» значения b и должно находиться в отсортированном массиве перед Ь.

• Ноль, если а и Ь в смысле сортировки эквивалентны.

• Положительное число, если значение а «больше» значения Ь.

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

Пример

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

// Функция сортировки чисел в порядке возрастания

function numberorder(a, b) { return a - b; }

a = new Array(33, 4, 1111, 222);

a.sort();             // Алфавитная сортировка: 1111, 222, 33, 4

a.sort(numberorder);  // Числовая сортировка: 4, 33, 222, 1111

Array.splice()

вставляет, удаляет или замещает элементы массива

Синтаксис

массив.sрlісе(начало, удаляемое_количество, значение, ...)

Аргументы

начало Элемент массива, с которого следует начать вставку или удаление.

удаляемое_количество Количество элементов, которые должны быть удалены из массива, начиная с элемента, заданного аргументом начало, и включая этот элемент. Чтобы выполнить вставку без удаления, в этом аргументе следует передать значение 0.

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

Возвращаемое значение

Массив, содержащий удаленные из массива элементы, если они есть.

Описание

Метод splice() удаляет указанное количество элементов массива, начиная с элемента, позиция которого определяется аргументом начало, включая его, и заменяет значениями, перечисленными в списке аргументов. Элементы массива, расположенные после вставляемых или удаляемых элементов, сдвигаются и образуют непрерывную последовательность с остальной частью массива. Однако следует заметить, что, в отличие от метода с похожим именем, slice(), метод splice() непосредственно изменяет массив.

Пример

Работу splice() проще всего понять на примере:

var а = [1,2,3,4,5,6,7,8]

a.splice(1,2);      // Вернет [2,3]; а равно [1,4]

a.splice(1,1);      // Вернет [4]; а равно [1]

a.splice(1,0,2,3);  // Вернет []; а равно [1 2 3]

См. также

Array.slice()

Array.toLocaleString()

преобразует массив в локализованную строку (переопределяет Object.toLocaleString())

Синтаксис

массив.toLocaleString()

Возвращаемое значение

Локализованное строковое представление массива.

Исключения

ТуреЕrror Если метод вызывается для объекта, не являющегося массивом.

Описание

Метод toLocaleString() массива возвращает локализованное строковое представление массива. Это делается путем вызова метода toLocaleString() для всех элементов массива и последующей конкатенации полученных строк с использованием символа-разделителя, определяемого региональными параметрами настройки.

См. также

Array.toString(), Object.toLocaleString()

Array.toString()

преобразует массив в строку (переопределяет Object.toString())

Синтаксис

массив.toString()

Возвращаемое значение

Строковое представление массива.

Исключения

ТуреЕrror Если метод вызывается для объекта, не являющегося массивом.

Описание

Метод toString() массива преобразует массив в строку и возвращает эту строку. Когда массив используется в строковом контексте, JavaScript автоматически преобразует его в строку путем вызова этого метода. Однако в некоторых случаях может потребоваться явный вызов toString().

toString() сначала преобразует в строку каждый элемент (вызывая их методы toStгing() ). После преобразования все элементы выводятся в виде списка строк, разделенных запятыми. Это значение совпадает со значением, возвращаемым методом join() без аргументов.

См. также

Array.toLocaleString(), Object.toString()

Array.unshift()

вставляет элементы в начало массива

Синтаксис

массив.unshift(значение, ...)

Аргументы

значение, Одно и более значений, которые должны быть вставлены в начало массива.

Возвращаемое значение

Новая длина массива.

Описание

Метод unshift() вставляет свои аргументы в начало массива, сдвигая существующие элементы к верхним индексам для освобождения места. Первый аргумент unshift() становится новым нулевым элементом массива, второй аргумент - новым первым элементом и т. д. Обратите внимание: unshift() не создает новый массив, а изменяет существующий.

Пример

Метод unshift() часто используется совместно с shift(). Например:

#i_074.jpg

См. также

Array.shift()

 

Boolean

Boolean

поддержка логических значений (Object->Boolean)

Конструктор

new Boolean (значение) // Функция-конструктор

Вооlеаn(значение)      // Функция преобразования

Аргументы

значение Значение, которое должно быть сохранено в объекте Boolean или преобразовано в логическое значение.

Возвращаемое значение

При вызове в качестве конструктора (с оператором new ) Boolean() преобразует аргумент в логическое значение и возвращает объект Boolean , содержащий это значение. При вызове в качестве функции (без оператора new ) Boolean() просто преобразует свой аргумент в элементарное логическое значение и возвращает его.

Значения 0, NaN, null, пустая строка и значение undefined преобразуются в false. Все остальные элементарные значения, за исключением false (но включая строку "false"), а также все объекты и массивы преобразуются в true.

Методы

toString() Возвращает "true" или "false" в зависимости от логического значения, представляемого объектом Boolean .

valueOf() Возвращает элементарное логическое значение, содержащееся в объекте Boolean .

Описание

Логические значения - это базовый тип данных JavaScript. Объект Boolean представляет собой «обертку» вокруг логического значения. Объектный тип Boolean в основном существует для предоставления метода toString(), который преобразует логические значения в строки. Когда метод toString() вызывается для преобразования логического значения в строку (а он часто вызывается интерпретатором JavaScript неявно), логическое значение преобразуется во временный объект Boolean , для которого может быть вызван метод toString().

См. также

Object

Boolean.toString()

преобразует логическое значение в строку (переопределяет Object.toString())

Синтаксис

b.toString()

Возвращаемое значение

Строка "true" или "false" в зависимости от того, чем является Ь: элементарным логическим значением или объектом Boolean .

Исключения

ТуреЕrror Если метод вызывается для объекта, не являющегося объектом Boolean .

Boolean.valueOf()

логическое значение объекта Boolean (переопределяет Object.valueOf())

Синтаксис

b.valueOf()

Возвращаемое значение

Элементарное логическое значение, которое содержится в b, который является объектом Boolean .

Исключения

TypeError Если метод вызывается для объекта, не являющегося Boolean.

 

Date

Date

работа с датами и временем (Object->Date)

Конструктор

new Date()

new Date(миллисекунды)

new Date (строка_ даты)

new Date(год, месяц, день, часы, минуты, секунды, мс)

Конструктор Date() без аргументов создает объект Date со значением, равным текущим дате и времени. Если конструктору передается единственный числовой аргумент, он используется как внутреннее числовое представление даты в миллисекундах, аналогичное значению, возвращаемому методом getTime(). Когда передается один строковый аргумент, он рассматривается как строковое представление даты в формате, принимаемом методом Date.parse(). Кроме того, конструктору можно передать от двух до семи числовых аргументов, задающих индивидуальные поля даты и времени. Все аргументы, кроме первых двух - полей года и месяца, - могут отсутствовать. Обратите внимание: эти поля даты и времени задаются на основе локального времени, а не времени UTC (Universal Coordinated Time - универсальное скоординированное время), аналогичного GMT (Greenwich Mean Time - среднее время по Гринвичу). В качестве альтернативы может использоваться статический метод Date.UTC().

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

Аргументы

миллисекунды

Количество миллисекунд между нужной датой и полночью 1 января 1970 года (UTC). Например, передав в качестве аргумента число 5000, мы создадим дату, обозначающую пять секунд после полуночи 1 января 1970 года.

строка_даты

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

год

Год в виде четырех цифр. Например, 2001 для 2001 года. Для совместимости с более ранними реализациями JavaScript к аргументу добавляется 1900, если значение аргумента находится между 0 и 99.

месяц

Месяц, заданный в виде целого от 0 (январь) до 11 (декабрь).

день

День месяца, заданный в виде целого от 1 до 31. Обратите внимание, что наименьшее из значений этого аргумента равно 1, а остальных аргументов - 0. Необязательный аргумент.

часы

Часы, заданные в виде целого от 0 (полночь) до 23 (11 часов вечера). Необязательный аргумент.

минуты

Минуты в часах, указанные в виде целого от 0 до 59. Необязательный аргумент.

секунды

Секунды в минутах, указанные в виде целого от 0 до 59. Необязательный аргумент.

мс

Миллисекунды в секунде, указанные в виде целого от 0 до 999. Необязательный аргумент.

Методы

У объекта Date нет доступных для записи или чтения свойств; вместо этого доступ к значениям даты и времени выполняется через методы. Большинство методов объекта Date имеют две формы: одна для работы с локальным временем, другая - с универсальным временем (UTC или GMT). Если в имени метода присутствует строка «UTC», он работает с универсальным временем. Эти пары методов указываются в приведенном далее списке вместе. Например, обозначение get[UTC]Day() относится к двум методам: getDay() и getUTCDay().

Методы объекта Date могут вызываться только для объектов типа Date и генерируют исключение TypeError , если вызывать их для объектов другого типа.

get[UTC]Date()

Возвращает день месяца из объекта Date в соответствии с локальным или универсальным временем.

get[UTC]Day()

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

get[UTC]FullYear()

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

get[UTC]Hours()

Возвращает поле часов в объекте Date в локальном или универсальном времени.

get[UTC]Milliseconds()

Возвращает поле миллисекунд в объекте Date в локальном или универсальном времени.

get[UTC]Minutes()

Возвращает поле минут в объекте Date в локальном или универсальном времени.

get[UTC]Month()

Возвращает поле месяца в объекте Date в локальном или универсальном времени.

get[UTC]Seconds()

Возвращает поле секунд в объекте Date в локальном или универсальном времени.

getTime()

Возвращает внутреннее представление (миллисекунды) объекта Date . Обратите внимание: это значение не зависит от часового пояса, следовательно, отдельный метод getUTCTime() не нужен.

getTimezoneOffset()

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

getYear()

Возвращает поле года в объекте Date . Признан устаревшим, рекомендуется вместо него применять метод getFullYear() .

set[UTC]Date()

Устанавливает день месяца в Date в соответствии с локальным или универсальным временем.

set[UTC]FullYear()

Устанавливает год (и, возможно, месяц и день) в Date в соответствии с локальным или универсальным временем.

set[UTC]Hours()

Устанавливает час (и, возможно, поля минут, секунд и миллисекунд) в Date в соответствии с локальным или универсальным временем.

set[UTC]Milliseconds()

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

set[UTC]Minutes()

Устанавливает поле минут (и, возможно, поля секунд и миллисекунд) в Date в соответствии с локальным или универсальным временем.

set[UTC]Month()

Устанавливает поле месяца (и, возможно, дня месяца) в Date в соответствии с локальным или универсальным временем.

set[UTC]Seconds()

Устанавливает поле секунд (и, возможно, поле миллисекунд) в Date в соответствии с локальным или универсальным временем.

setTime()

Устанавливает поля объекта Date в соответствии с миллисекундным форматом.

setYear()

Устанавливает поле года объекта Date . Признан устаревшим, вместо него рекомендуется использовать setFullYear() .

toDateString()

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

toGMTString()

Преобразует Date в строку, беря за основу часовой пояс GMT. Признан устаревшим, вместо него рекомендован метод toUTCString() .

toISOString()

Преобразует Date в строку, используя стандарт ISO-8601, объединяющий формат представления даты/времени и UTC.

toJSON()

Сериализует объект Date в формат JSON с помощью метода toISOString() .

toLocaleDateString()

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

toLocaleString()

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

toLocaleTimeString()

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

toString()

Преобразует Date в строку в соответствии с локальным часовым поясом.

toTimeString()

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

toUTCString()

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

valueOf()

Преобразует объект Date в его внутренний миллисекундный формат.

Статические методы

В дополнение к перечисленным методам экземпляра в объекте Date определены два статических метода. Эти методы вызываются через сам конструктор Date(), а не через отдельные объекты Date :

Date.now() Возвращает текущее время в миллисекундах с начала эпохи.

Date.parse() Анализирует строковое представление даты и времени и возвращает внутреннее представление этой даты в миллисекундах.

Date.UTC() Возвращает представление указанной даты и времени UTC в миллисекундах.

Описание

Объект Date - это тип данных, встроенный в язык JavaScript. Объекты Date создаются с помощью представленного ранее синтаксиса new Date().

После создания объекта Date можно воспользоваться его многочисленными методами. Многие из методов позволяют получать и устанавливать поля года, месяца, дня, часа, минуты, секунды и миллисекунды в соответствии либо с локальным временем, либо с временем UTC (универсальным, или GMT). Метод toString() и его варианты преобразуют даты в понятные для восприятия строки. getTime() и setTime() преобразуют количество миллисекунд, прошедших с полуночи (GMT) 1 января 1970 года, во внутреннее представление объекта Date и обратно. В этом стандартном миллисекундном формате дата и время представляются одним целым, что делает дату очень простой арифметически. Стандарт ECMAScript требует, чтобы объект Date мог представить любые дату и время с миллисекундной точностью в пределах 100 миллионов дней до и после 01.01.1970. Этот диапазон равен ±273 785 лет, поэтому JavaScript-часы будут правильно работать до 275 755 года.

Пример

Известно множество методов, позволяющих работать с созданным объектом Date :

d = new Date(); // Получает текущую дату и время

document.write('Сегодня: "+d.toLocaleDateString() + '. ');// Показывает дату

document.write('Время: '+ d.toLocaleTimeString());  // Показывает время

var dayOfWeek = d.getDay();                         // День недели

var weekend = (dayOfWeek == 0) || (dayOfWeek == 6); // Сегодня выходной?

Еще одно типичное применение объекта Date - это вычитание миллисекундного представления текущего времени из другого времени для определения относительного местоположения двух временных меток. Следующий пример клиентского кода показывает два таких применения:

// ... остальная часть HTML-документа ...

См. также

Date.parse(), Date.UTC()

Date.getDate()

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

Синтаксис

дата. getDate()

Возвращаемое значение

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

Date.getDay()

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

Синтаксис

дата.getDay()

Возвращаемое значение

День недели даты, представляющей собой объект Date , в соответствии с локальным временем. Возвращает числа от 0 (воскресенье) до 6 (суббота).

Date.getFullYear()

возвращает значение поля года объекта Date

Синтаксис

дата.getFullYear()

Возвращаемое значение

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

Date.getHours()

возвращает значение поля часа объекта Date

Синтаксис

дата.getHours()

Возвращаемое значение

Значение поля часа в дате, представляющей собой объект Date , в локальном времени. Возвращаемое значение находится в диапазоне между 0 (полночь) и 23 (11 часов вечера).

Date.getMilliseconds()

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

Синтаксис

дата.getMilliseconds()

Возвращаемое значение

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

Date.getMinutes()

возвращает значение поля минут объекта Date

Синтаксис

дата.getMinutes()

Возвращаемое значение

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

Date.getMonth()

возвращает значение поля месяца объекта Date

Синтаксис

дата.getMonth()

Возвращаемое значение

Поле месяца в дате, представляющей собой объект Date , вычисленное в локальном времени. Возвращаемое значение может принимать значения от 0 (январь) до 11 (декабрь).

Date.getSeconds()

возвращает значение поля секунд объекта Date

Синтаксис

дата.getSeconds()

Возвращаемое значение

Поле секунд в дате, представляющем собой объект Date , в локальном времени. Возвращаемое значение может принимать значения от 0 до 59.

Date.getTime()

возвращает значение даты в миллисекундах

Синтаксис

дата.getTime()

Возвращаемое значение

Миллисекундное представление даты, представляющей собой объект Date , т.е. число миллисекунд между полночью 01.01.1970 и датой/временем, определяемыми датой.

Описание

Метод getTime() преобразует дату и время в одно целое значение. Это удобно, когда требуется сравнить два объекта Date или определить время, прошедшее между двумя датами. Обратите внимание: миллисекундное представление даты не зависит от часового пояса, поэтому отсутствует метод getUTCTime(), дополняющий данный. Не путайте метод getTime() с методами getDay() и getDate(), возвращающими, соответственно, день недели и день месяца.

Методы Date.parse() и Date.UTC() позволяют преобразовать спецификацию даты и времени в миллисекундное представление, обходя избыточное создание объекта Date .

См. также

Date, Date.parse(), Date.setTime(), Date.UTC()

Date.getTimezoneOffset()

определяет смещение относительно GMT

Синтаксис

дата.getTimezoneOffset()

Возвращаемое значение

Разница в минутах между временем по Гринвичу (GMT) и локальным временем.

Описание

Функция getTimezoneOffset() возвращает разницу в минутах между универсальным и локальным временем, сообщая, в каком часовом поясе выполняется JavaScript-код и действует ли (или будет ли действовать) летнее время для указанной даты. Возвращаемое значение измеряется в минутах, а не в часах, поскольку в некоторых странах имеются часовые пояса, не занимающие целого часового интервала.

Date.getUTCDate()

Возвращает значение поля дня месяца объекта Date (универсальное время)

Синтаксис

дата.getUTCDate()

Возвращаемое значение

День месяца (значение между 1 и 31), полученный при вычислении даты в универсальном времени.

Date.getUTCDay()

возвращает значение поля дня недели объекта Date (универсальное время)

Синтаксис

дата. getUTCDay()

Возвращаемое значение

День недели, получаемый, когда дата выражена в универсальном времени. Возвращаемые значения могут находиться в интервале между 0 (воскресенье) и 6 (суббота).

Date.getUTCFullYear()

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

Синтаксис

дата.getUTCFullYear()

Возвращаемое значение

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

Date.getUTCHours()

возвращает значение поля часов объекта Date (универсальное время)

Синтаксис

дата.getUTCHours()

Возвращаемое значение

Поле часов для даты9 вычисленное в универсальном времени. Возвращаемое значение - целое между 0 (полночь) и 23 (11 часов вечера).

Date.getUTCMilliseconds()

возвращает значение поля миллисекунд объекта Date (универсальное время)

Синтаксис

дата.getUTCMilliseconds()

Возвращаемое значение

Поле миллисекунд для даты, выраженное в универсальном времени.

Date.getUTСМіnutes()

возвращает значение поля минут объекта Date (универсальное время)

Синтаксис

дата.getUTCMinutes()

Возвращаемое значение

Поле минут для даты, вычисленное в универсальном времени. Возвращает целое между 0 и 59.

Date.getUTCMonth()

возвращает значение поля месяца года объекта Date (универсальное время)

Синтаксис

дата.getUTCMonth()

Возвращаемое значение

Месяц года, получающийся, когда дата вычислена в универсальном времени. Возвращает целое между 0 (январь) и 11 (декабрь). Обратите внимание: объект Date обозначает первый день месяца цифрой 1, но первому месяцу года соответствует цифра 0.

Date.getUTCSeconds()

возвращает значение поля секунд объекта Date (универсальное время)

Синтаксис

дата.getUTCSeconds()

Возвращаемое значение

Поле секунд даты, вычисленное в универсальном времени. Возвращает целое между 0 и 59.

Date.getYear() (устарел)

возвращает значение поля года объекта Date

Синтаксис

дата.getYear()

Возвращаемое значение

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

Описание

Метод getYear() возвращает поле года для указанного объекта Date минус 1900. Согласно спецификации ECMAScript v3, этот метод не является обязательным в совместимых реализациях JavaScript; используйте вместо него метод getFullYear().

Date.now() (ECMAScript 5)

возвращает текущее время в миллисекундах

Синтаксис

Date.now()

Возвращаемое значение

Текущее время в миллисекундах, прошедшее с полуночи 1 января 1970 года по Гринвичу.

Описание

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

Date.now = function() { return (new Date()).getTime(); }

См. также

Date, Date.getTime()

Date.parse()

синтаксический разбор строки даты/времени

Синтаксис

Date.parsе(дата)

Аргументы

дата Строка для разбора, содержащая дату и время.

Возвращаемое значение

Количество миллисекунд между указанными датой/временем и полночью 1 января 1970 года по Гринвичу.

Описание

Метод Date.parse() - это статический метод объекта Date . Метод Date.parse() принимает один строковый аргумент, анализирует дату, содержащуюся в строке, и возвращает ее в виде числа миллисекунд, прошедших с начала эпохи. Это возвращаемое значение может использоваться непосредственно для создания нового объекта Date или для установки даты в существующем объекте Date с помощью Date.setTime() .

Стандарт ECMAScript 5 требует, чтобы этот метод мог разбирать строки, возвращаемые методом Date.toISOString(). В ECMAScript 5 и более ранних версиях спецификации требовалось также, чтобы этот метод мог разбирать строки, возвращаемые методами toString() и toUTCString().

См. также

Date, Date.setTime(), Date.toISOString(), Date.toString()

Date.setDate()

устанавливает поле дня месяца объекта Date

Синтаксис

дата.setDatе(день_месяца)

Аргументы

день_месяца Целое между 1 и 31, используемое как новое значение (в локальном времени) поля дня месяца объекта дата.

Возвращаемое значение

Миллисекундное представление измененной даты. До выхода стандарта ECMAScript этот метод ничего не возвращал.

Date.setFullYear()

устанавливает поля года и, если явно указано, месяца и дня месяца объекта Date

Синтаксис

дата.setFullYear(год)

дата.setFullYear(год, месяц)

дата.setFullYear(год, месяц, день)

Аргументы

год Год, выраженный в локальном времени, который должен быть установлен в дате. Этот аргумент должен быть целым, включающим век, например 1999; не может быть сокращением, таким как 99.

месяц Необязательное целое между 0 и 11, используемое для установки нового значения поля месяца (в локальном времени) для даты.

день Необязательное целое между 1 и 31, используемое как новое значение поля дня месяца для даты (в локальном времени).

Возвращаемое значение

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

Date.setHours()

устанавливает значения полей часов, минут, секунд и миллисекунд объекта Date

Синтаксис

дата.setHours(часы)

дата.setHours(часы, минуты)

дата.setHours(часы, минуты, секунды)

дата.setHours(часы, минуты, секунды, миллисекунды)

Аргументы

часы Целое между 0 (полночь) и 23 (11 часов вечера) локального времени, устанавливаемое в качестве нового значения часов в дате.

минуты Необязательное целое между 0 и 59, используемое в качестве нового значения поля минут в дате (в локальном времени). Этот аргумент не поддерживался до выхода стандарта ECMAScript.

секунды Необязательное целое между 0 и 59. Представляет собой новое значение поля секунд в дате (в локальном времени). Этот аргумент не поддерживался до выхода стандарта ECMAScript.

миллисекунды Необязательное целое между 0 и 999, используемое как новое значение поля миллисекунд в дате (в локальном времени). Этот аргумент не поддерживался до выхода стандарта ECMAScript.

Возвращаемое значение

Миллисекундное представление измененной даты. До выхода стандарта ECMAScript этот метод ничего не возвращал.

Date.setMilliseconds()

устанавливает значение поля миллисекунд объекта Date

Синтаксис

дата.setMilliseconds( миллисекунды)

Аргументы

миллисекунды Поле миллисекунд, выраженное в локальном времени, для установки в дате. Этот аргумент должен быть целым между 0 и 999.

Возвращаемое значение

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

Date.setMinutes()

устанавливает значения полей минут, секунд и миллисекунд объекта Date

Синтаксис

дата.setMinutes (минуты)

дата.setMinutes {минуты, секунды)

дата.setMinutes {минуты, секунды, миллисекунды)

Аргументы

минуты Целое между 0 и 59, устанавливаемое в качестве значения минут (в локальном времени) в дате, представляющей собой объект Date .

секунды Необязательное целое между 0 и 59, используемое как новое значение поля секунд даты (в локальном времени). Этот аргумент не поддерживался до выхода стандарта ECMAScript.

миллисекунды Необязательное целое между 0 и 999, представляющее собой новое значение (в локальном времени) поля миллисекунд даты. Этот аргумент не поддерживался до выхода стандарта ECMAScript.

Возвращаемое значение

Миллисекундное представление измененной даты. До выхода стандарта ECMAScript этот метод ничего не возвращал.

Date.setMonth()

устанавливает поля месяца и дня месяца объекта Date

Синтаксис

дата.setMonth(месяц)

дата.setMonth(месяц, день)

Аргументы

месяц Целое между 0 (январь) и 11 (декабрь), устанавливаемое в качестве значения поля месяца (в локальном времени) в дате, представляющей собой объект Date . Обратите внимание: месяцы нумеруются, начиная с 0, а дни в месяце - с 1.

день Необязательное целое между 1 и 31, используемое как новое значение поля дня месяца в дате (в локальном времени). Этот аргумент не поддерживался до выхода стандарта ECMAScript.

Возвращаемое значение

Миллисекундное представление измененной даты. До выхода стандарта ECMAScript этот метод ничего не возвращал.

Date.setSeconds()

устанавливает значения полей секунд и миллисекунд объекта Date

Синтаксис

дата.setSeconds(секунды)

дата.setSeconds(секунды, миллисекунды)

Аргументы

секунды Целое между 0 и 59, устанавливаемое как значение секунд в дате, представляющей собой объект Date .

миллисекунды Необязательное целое между 0 и 999, используемое как новое значение поля миллисекунд в дате (в локальном времени). Этот аргумент не поддерживался до выхода стандарта ECMAScript.

Возвращаемое значение

Миллисекундное представление измененной даты. До выхода стандарта ECMAScript этот метод ничего не возвращал.

Date.setTime()

устанавливает значение даты в миллисекундах

Синтаксис

дата.setTimе(миллисекунды)

Аргументы

миллисекунды Количество миллисекунд между требуемыми датой/временем и полночью 1 января 1970 года по Гринвичу. Подобное миллисекундное значение может быть также передано конструктору Date() и получено при вызове методов Date.UTC() и Date.parse(). Представление даты в миллисекундном формате делает ее независимой от часового пояса.

Возвращаемое значение

Аргумент миллисекунды. До выхода стандарта ECMAScript метод ничего не возвращал.

Date.setUTCDate()

устанавливает значение поля дня месяца объекта Date (универсальное время)

Синтаксис

дата.setUTCDatе(день_месяца)

Аргументы

день_месяца День месяца, выраженный в универсальном времени и устанавливаемый в дате. Этот аргумент должен быть целым между 1 и 31.

Возвращаемое значение

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

Date.setUTCFullYear()

устанавливает значения полей года, месяца и дня месяца объекта Date (универсальное время)

Синтаксис

дата.setUTCFullYear(год)

дата.setUTCFullYear(год, месяц)

дата.setUTCFullYear(год, месяц, день)

Аргументы

год Год, выраженный в универсальном времени, для установки в дате. Этот аргумент должен быть целым, включающим век, например 1999, а не сокращением, как 99.

месяц Необязательное целое между 0 и 11, используемое как новое значение поля месяца даты (в универсальном времени). Обратите внимание: месяцы нумеруются, начиная с 0, тогда как нумерация дней месяцев начинается с 1.

день Необязательное целое между 1 и 31; используется как новое значение (в универсальном времени) поля «день месяца» в дате.

Возвращаемое значение

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

Date.setUTCHours()

устанавливает значения полей часов, минут, секунд и миллисекунд объекта Date (универсальное время)

Синтаксис

дата.setUTCHours(часы)

дата.setUTCHours(часы, минуты)

дата.setUTCHours(часы, минуты, секунды)

дата.setUTCHours(часы, минуты, секунды, миллисекунды)

Аргументы

часы Значение поля часов, выраженное в универсальном времени, для установки в дате. Этот аргумент должен быть целым между 0 (полночь) и 23 (11 часов вечера).

минуты Необязательное целое между 0 и 59, используемое как новое значение поля минут в дате (в универсальном времени).

секунды Необязательное целое между 0 и 59, используемое как новое значение поля секунд в дате (в универсальном времени).

миллисекунды Необязательное целое между 0 и 999, используемое как новое значение поля миллисекунд в дате (в универсальном времени).

Возвращаемое значение

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

Date.setUTCMilliseconds()

устанавливает значение поля миллисекунд объекта Date (универсальное время)

Синтаксис

дата.setUTCMilliseconds(миллисекунды)

Аргументы

миллисекунды Значение поля миллисекунд, выраженное в универсальном времени, для установки в дате. Этот аргумент должен быть целым между 0 и 999.

Возвращаемое значение

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

Date.setUTCMinutes()

устанавливает значения полей минут, секунд и миллисекунд объекта Date (универсальное время)

Синтаксис

дата.setUTCMinutes(минуты)

дата.setUTCMinutes(минуты, секунды)

дата.setUTCMinutes(минуты, секунды, миллисекунды)

Аргументы

минуты Значение поля минут в универсальном времени для установки в дате. Этот аргумент должен принимать значение между 0 и 59.

секунды Необязательное целое между 0 и 59, используемое как новое значение поля секунд в дате (в универсальном времени).

миллисекунды Необязательное целое между 0 и 999, используемое как новое значение поля миллисекунд в дате (в универсальном времени).

Возвращаемое значение

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

Date.setUTCMonth()

устанавливает поля месяца и дня месяца объекта Date (универсальное время)

Синтаксис

дата.setUTCMonth(месяц)

дата.setUTCMonth(месяц, день)

Аргументы

месяц Месяц, выраженный в универсальном времени, для установки в дате. Этот аргумент должен быть целым между 0 (январь) и 11 (декабрь). Обратите внимание: месяцы нумеруются, начиная с 0, а дни в месяце - с 1.

день Необязательное целое между 1 и 31, используемое как новое значение поля дня месяца в дате (в универсальном времени).

Возвращаемое значение

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

Date.setUTCSeconds()

устанавливает значения полей секунд и миллисекунд объекта Date (универсальное время)

Синтаксис

дата. setUTCSeconds(секунды)

дата. setUTCSeconds(секунды, миллисекунды)

Аргументы

секунды Значение поля секунд в универсальном времени для установки в дате. Этот аргумент должен быть целым между 0 и 59.

миллисекунды Необязательное целое между 0 и 999, используемое как новое значение поля миллисекунд даты (в универсальном времени).

Возвращаемое значение

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

Date.setYear() (устарел)

устанавливает поле года объекта Date

Синтаксис

дата.setYear(год)

Аргументы

год Целое, устанавливаемое как значение поля года (в локальном времени) в дате, представляющей собой объект Date . Если это значение находится между 0 и 99, к нему добавляется 1900, и оно рассматривается как год между 1900 и 1999.

Возвращаемое значение

Миллисекундное представление измененной даты. До выхода стандарта ECMAScript этот метод ничего не возвращал.

Описание

Метод setYear() устанавливает поле года в указанном объекте Date , особым образом обрабатывая интервал времени между 1900 и 1999 годами.

Согласно спецификации ECMAScript v3, этот метод не является обязательным в совместимых реализациях JavaScript; вместо него рекомендован метод setFullYear().

Date.toDateString()

возвращает дату из объекта Date в виде строки

Синтаксис

дата.toDateString()

Возвращаемое значение

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

См. также

Date.toString(), Date.toTimeString()

Date.toGMTString() (устарел)

преобразует объект Date в строку универсального времени

Синтаксис

дата.toGMTString()

Возвращаемое значение

Строковое представление даты и времени, указанное в объекте дата. Перед преобразованием в строку, дата переводится из локального времени во время по Гринвичу.

Описание

Метод toGMTString() признан устаревшим, вместо него рекомендуется использовать аналогичный метод Date.toUTCString().

Согласно спецификации ECMAScript v3 совместимые реализации JavaScript больше не обязаны предоставлять этот метод; используйте вместо него метод toUTCString().

См. также

Date.toUTCString()

Date.tolSOString() (ECMAScript 5)

преобразует объект Date в строку в формате IS08601

Синтаксис

дата.toISOString()

Возвращаемое значение

Строковое представление даты, отформатированное в соответствии со стандартом ISO-8601 и выраженное как точная комбинация даты и времени в UTC с указанием часового пояса «Z». Возвращаемая строка имеет следующий формат:

yyyy-mm-ddThh:mm:ss. sssZ

См. также

Date.parse(), Date.toString()

Date.toJSON() (ECMAScript 5)

сериализует объект Date в формат JSON

Синтаксис

дата.toJSON(ключ)

Аргументы

ключ Метод toJSON() не использует этот аргумент и просто передает его функции JSON.stringify() .

Возвращаемое значение

Строковое представление даты, полученное вызовом метода toISOString() .

Описание

Для преобразования объекта Date в строку этот метод использует функцию JSON.stringify() . Он не предназначен для широкого использования.

См. также

Date.toISOString(), JSON.stringify()

Date.toLocaleDateString()

возвращает дату из Date в виде строки с учетом региональных настроек

Синтаксис

дата.toLocaleDateString()

Возвращаемое значение

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

См. также

Date.toDateString(), Date.toLocaleString(), Date.toLocaleTimeString(), Date.toString(), Date. toTimeString()

Date.toLocaleString()

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

Синтаксис

дата.toLocaleString()

Возвращаемое значение

Строковое представление даты и времени в объекте дата. Дата и время представлены в локальном часовом поясе и отформатированы в соответствии с региональными настройками.

Порядок использования

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

См. также

Date.toISOString(), Date.toLocaleDateString(), Date.toLocaleTimeString(), Date.toString(), Date.toUTCString()

Date.toLocaleTimeString()

возвращает время из Date в виде строки с учетом региональных настроек

Синтаксис

дата.toLocaleTimeString()

Возвращаемое значение

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

См. также

Date.toDateString(), Date.toLocaleDateString(), Date.toLocaleString(), Date.toString(), Date. toTimeString()

Date.toString()

преобразует объект Date в строку (переопределяет Object.toString())

Синтаксис

дата.toString()

Возвращаемое значение

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

Описание

Метод toString() возвращает понятное человеку и зависящее от реализации строковое представление даты. В отличие от toUTCString(), метод toString() вычисляет дату в локальном часовом поясе. В отличие от toLocaleString(), метод toString() может представлять дату и время без учета региональных настроек.

См. также

Date.parse(), Date.toDateString(), Date.toISOString(), Date.toLocaleString(), Date.toTimeString(), Date.toUTCString()

Date.toTimeString()

возвращает время из объекта Date в виде строки

Синтаксис

дата.toTimeString()

Возвращаемое значение

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

См. также

Date.toString(), Date.toDateString(), Date.toLocaleTimeString()

Date.toUTCString()

преобразует объект Date в строку (универсальное время)

Синтаксис

дата.toUTCString()

Возвращаемое значение

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

Описание

Метод toUTCString() возвращает зависящую от реализации строку, представляющую дату в универсальном времени.

См. также

Date.toISOString(), Date.toLocaleString(), Date.toString()

Date.UTC()

преобразует спецификацию даты в миллисекунды

Синтаксис

Date.UTC(год, месяц, день, часы, минуты, секунды, мс)

Аргументы

год Год в четырехзначном формате. Если аргумент находится между 0 и 99, к нему добавляется 1900, и он рассматривается как год между 1900 и 1999.

месяц Месяц в виде целого числа от 0 (январь) до 11 (декабрь).

день День месяца в виде целого числа от 1 до 31. Обратите внимание: наименьшее значение этого аргумента равно 1, наименьшее значение других аргументов - 0. Этот аргумент не является обязательным.

часы Час в виде целого числа от 0 (полночь) до 23 (11 часов вечера). Этот аргумент может отсутствовать.

минуты Минуты в часе в виде целого числа от 0 до 59. Этот аргумент может отсутствовать.

секунды Секунды в минутах в виде целого числа от 0 до 59. Этот аргумент может отсутствовать.

мс Количество миллисекунд. Этот аргумент может отсутствовать; игнорировался до выхода стандарта ECMAScript.

Возвращаемое значение

Миллисекундное представление указанного универсального времени. Метод возвращает количество миллисекунд между полночью по Гринвичу 1 января 1970 года и указанным временем.

Описание

Метод Date.UTC() - это статический метод, который вызывается через конструктор Date(), а не через отдельный объект Date .

Аргументы Date.UTC() определяют дату и время и подразумевают время в формате UTC. Указанное время UTC преобразуется в миллисекундный формат, который может использоваться методом-конструктором Date() и методом Date.setTime(). Метод-конструктор Date() может принимать аргументы даты и времени, идентичные тем, что принимает метод Date.UTC(). Разница в том, что конструктор Date() подразумевает локальное время, a Date. UTC() - время по Гринвичу (GMT). Создать объект Date , используя спецификацию времени в UTC, можно следующим образом:

d = new Date(Date.UTC(1996, 4, 8, 16, 30));

См. также

Date, Date.parse(), Date.setTime()

Date.valueOf()

преобразует объект Date в миллисекунды (переопределяет Object.valueOf())

Синтаксис

дата.valueOf()

Возвращаемое значение

Миллисекундное представление даты. Возвращаемое значение совпадает со значением, возвращаемым Date.getTime().

 

decodeURI

decodeURI()

декодирует символы в URI

Синтаксис

decodeURI(uri)

Аргументы

uri Строка, содержащая в закодированном виде URI (Uniform Resource Identifier -унифицированный идентификатор ресурса) или другой текст, подлежащий декодированию.

Возвращаемое значение

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

Исключения

URIError Означает, что одна или несколько управляющих последовательностей в uri имеют неверный формат и не могут быть правильно декодированы.

Описание

decodeURI() - это глобальная функция, возвращающая декодированную копию аргумента uri. Она выполняет действие, обратное действию функции encodeURI(); подробности см. в описании этой функции.

См. также

decodeURIComponent(), encodeURI(), encodeURIComponent(), escape(), unescape()

decodeURIComponent()

декодирует управляющие последовательности символов в компоненте URI

Синтаксис

decodeURIComponent(s)

Аргументы

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

Возвращаемое значение

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

Исключения

URIError Означает, что одна или несколько управляющих последовательностей в аргументе s имеют неверный формат и не могут быть правильно декодированы.

Описание

decodeURIComponent() - глобальная функция, возвращающая декодированную копию своего аргумента s. Ее действие обратно кодированию, выполняемому функцией encodeURIComponent(); подробности см. в справочной статье по этой функции.

См. также

decodeURIO, encodeURI(), encodeURIComponent(), escape(), unescape()

encodeURI()

выполняет кодирование URI с помощью управляющих последовательностей

Синтаксис

encodeURI(uri)

Аргументы

uri Строка, содержащая URI или другой текст, который должен быть закодирован.

Возвращаемое значение

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

Исключения

URIError Указывает, что строка uri содержит искаженные суррогатные пары символов Юникода и не может быть закодирована.

Описание

encodeURI() - это глобальная функция, возвращающая закодированную копию аргумента uri. Не кодируются символы, цифры и следующие знаки пунктуации ASCII:

- _ . ! ~ * ' ( )

Функция encodeURI() кодирует URI целиком, поэтому следующие символы пунктуации, имеющие в URI специальное значение, также не кодируются:

; / ? : @ & = + $ , #

Любые другие символы в uri заменяются путем преобразования символа в его код UTF-8 и последующего кодирования каждого из полученных байтов шестнадцатиричной управляющей последовательностью в формате %хх. В этой схеме кодирования ASCII-символы заменяются одной последовательностью %хх, символы с кодами от \u0080 до \u07ff - двумя управляющими последовательностями, а все остальные 16-раз-рядные символы Юникода - тремя управляющими последовательностями.

При использовании этого метода для кодирования URI необходимо быть уверенным, что ни один из компонентов URI (например, строка запроса) не содержит символов-разделителей URI, таких как ? и #. Если компоненты могут содержать эти символы, необходимо кодировать каждый компонент отдельно с помощью функции encodeURIComponent().

Метод decodeURIO предназначен для выполнения действия, обратного кодированию. До выхода ECMAScript v3 с помощью методов escape() и unescape(), сейчас признанных устаревшими, выполнялись сходные кодирование и декодирование.

Пример

// Возвращает http://www.isp.com/app.cgi?arg1=1&arg2=hello%20world

encodeURI(" http://www.isp.com/app.cgi?arg1=1&arg2=hello world");

encodeURI("\u00a9"); // Символ копирайта кодируется в %С2%А9

См. также

decodeURIO, decodeURIComponent(), encodeURIComponent(), escape(), unescape()

encodeURIComponent()

выполняет кодирование компонентов URI с помощью управляющих последовательностей

Синтаксис

encodeURIComponent(s)

Аргументы

s Строка, содержащая фрагмент URI или другой текст, подлежащий кодированию.

Возвращаемое значение

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

Исключения

URIError Указывает, что строка s содержит искаженные суррогатные пары символов Юникода и не может быть закодирована.

Описание

encodeURIComponent() - это глобальная функция, возвращающая закодированную копию своего аргумента s. Не кодируются буквы, цифры и следующие знаки пунктуации ASCII:

- _ . ! ~ * ' ( )

Все остальные символы, в том числе такие символы пунктуации, как / : #, служащие для разделения различных компонентов URI, заменяются одной или несколькими шестнадцатеричными управляющими последовательностями. Описание используемой схемы кодирования см. в статье, посвященной функции encodeURI() .

Обратите внимание на разницу между encodeURIComponent() и encodeURI(): функция encodeURIComponent() предполагает, что ее аргументом является фрагмент URI (такой* как протокол, имя хоста, путь или строка запроса). Поэтому она преобразует символы пунктуации, используемые для разделения фрагментов URI.

Пример

encodeURIComponent("hello world?"); // Вернет hello%20world%3F

См. также

decodeURIO, decodeURIComponent(), encodeURI(), escape(), unescape()

 

Error

Error

обобщенное исключение (Object—>Error)

Конструктор

new Error()

new Error (сообщение)

Аргументы

сообщение Необязательное сообщение об ошибке с дополнительной информацией об исключении.

Возвращаемое значение

Вновь созданный объект Error . Если задан аргумент сообщение, объект Error будет использовать его в качестве значения своего свойства message; в противном случае он возьмет в качестве значения этого свойства строку по умолчанию, определенную реализацией. Когда конструктор Error() вызывается как функция (без оператора new ), он ведет себя так же, как при вызове с оператором new .

Свойства

message

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

name

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

Методы

toString() Возвращает строку, определенную в реализации, которая представляет этот объект Error .

Описание

Экземпляры класса Error представляют ошибки или исключения и обычно используются с инструкциями throw и try/catch . Свойство name определяет тип исключения, а посредством свойства message можно создать и отправить пользователю сообщение с подробной информацией об исключении.

Интерпретатор JavaScript никогда не создает объект Error непосредственно. Вместо этого он создает экземпляры одного из подклассов Error , таких как SyntaxError или RangeError . В ваших программах для предупреждения об исключении может быть удобнее создавать объекты Error или просто выдавать сообщение об ошибке или ее код в виде элементарного строкового или числового значения.

Обратите внимание: спецификация ECMAScript определяет для класса Error метод toString() (он наследуется всеми подклассами Error ), но не требует, чтобы этот метод возвращал строку, содержащую значение свойства message . Поэтому не следует ожидать, что метод toString() преобразует объект Error в строку, понятную человеку. Чтобы отобразить для пользователя сообщение об ошибке, необходимо явно использовать свойства name и message объекта Error .

Пример

Предупредить об исключении можно так:

function factorial(x) {

if (х < 0)

  throw new Error("factorial: x должно быть >= 0");

  if (x <= 1)

    return 1;

  else

    return x * factorial(x1);

}

Перехватывая исключение, можно сообщить о нем пользователю следующим способом (с помощью клиентского метода Window.alert() ):

try {

  &*(&/* здесь возникает ошибка */ }

catch(e) {

  if (е instanceof Error) {

    // Это экземпляр класса Error или его подкласса?

    alert(e.name + ": + е.message);

  }

}

См. также

EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError

Error.message

сообщение об ошибке

Синтаксис

error.message

Описание

Свойство message объекта Error (или экземпляра любого подкласса Error ) предназначено для хранения понятной человеку строки, содержащей подробные сведения о возникшей ошибке или исключении. Если конструктору Еrror() передан аргумент message , он становится значением свойства message . Если аргумент message передан не был, объект Error наследует для этого свойства значение по умолчанию, определенное реализацией (которое может быть пустой строкой).

Error.name

тип ошибки

Синтаксис

error.name

Описание

Свойство name объекта Error (или экземпляра любого подкласса Error ) задает тип произошедшей ошибки или исключения. Все объекты Error наследуют это свойство от своего конструктора. Значение свойства совпадает с именем конструктора. Другими словами, у объектов SyntaxError свойство name равно «SyntaxError», а у объектов EvalЕrror - «EvalError».

Error.toString()

преобразует объект Error в строку (переопределяет Object.toString())

Синтаксис

error.toString()

Возвращаемое значение

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

escape() (устарело)

кодирует строку

Синтаксис

escape(s)

Аргументы

s Строка, которая должна быть закодирована (с применением управляющих последовательностей).

Возвращаемое значение

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

Описание

escape() - глобальная функция, которая возвращает новую строку, содержащую закодированную версию аргумента s. Сама строка s не изменяется. Функция escape() возвращает строку, в которой все символы, имеющиеся в строке s, отличные от букв, цифр и символов пунктуации (@, *, _, +, -,. и /) набора ASCII, заменены управляющими последовательностями в формате %хх или %ихххх (где х обозначает шестнадцатеричную цифру). Символы Юникода от \u0000 до \u00f f заменяются управляющей последовательностью %хх, все остальные символы Юникода - последовательностью %uхххх.

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

Хотя функция escape() стандартизована в первой версии ECMAScript, она была признана устаревшей и удалена из стандарта в ECMAScript v3. Реализации ECMAScript обычно поддерживают эту функцию, хотя это необязательно. Вместо escape() следует использовать функции encodeURI() и encodeURIComponent().

Пример

escape("Hello World!"); // Вернет "Hello%20World%21"

См. также

encodeURI(), encodeURIComponent()

 

Eval

eval()

исполняет содержащийся в строке JavaScript-код

Синтаксис

eval(код)

Аргументы

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

Возвращаемое значение

Значение, полученное в результате выполнения кода, если оно есть.

Исключения

Функция eval() возбуждает исключение SyntaxError , если аргумент код содержит некорректный программный код на языке JavaScript. Если исключение будет возбуждено самим программным кодом в аргументе код, функция eval() передаст его выше по стеку вызовов.

Описание

eval() - это метод глобального объекта, вычисляющий строку, в которой содержится программный код на языке JavaScript. Если код содержит JavaScript-выражение, eval() вычислит выражение и вернет его значение. Если код содержит одну или несколько JavaScript-инструкций, eval() выполнит эти инструкции и вернет то значение (если оно есть), которое вернет последняя инструкция. Если код не возвращает никакого значения, eval() вернет значение undefined. И наконец, если код сгенерирует исключение, eval() передаст это исключение вызывающей программе.

В спецификациях ECMAScript 3 и ECMAScript 5 определяется различное поведение функции eval(). Кроме того, в спецификации ECMAScript 5 для нее определяется различное поведение в строгом и нестрогом режимах. Чтобы объяснить эти различия, необходимо немного отклониться от темы. Реализовать эффективный интерпретатор намного проще, когда язык программирования определяет eval как оператор, а не как функцию. В языке JavaScript eval является функцией, но ради обеспечения эффективности в нем различаются непосредственные и косвенные вызовы eval(). В непосредственном вызове используется идентификатор eval , и, если убрать скобки, вызов функции будет выглядеть как применение оператора eval . Любые другие вызовы eval() являются косвенными. Если присвоить функцию eval() переменной с другим именем и вызвать по имени переменной, это будет косвенный вызов. Аналогично, если вызвать eval() как метод глобального объекта, это также будет косвенный вызов. Определив понятия непосредственного и косвенного вызова, поведение функции eval() можно описать следующим образом:

Непосредственный вызов, ES3 и нестрогий режим ES5

eval() выполняет код в текущей лексической области видимости. Если код объявляет переменную или функцию, она будет определена в локальной области видимости. Это обычный случай использования функции eval().

Косвенный вызов, ES3

Спецификация ECMAScript 3 позволяет интерпретаторам возбуждать исключение EvalError для любых косвенных вызовов eval(). На практике реализации ES3 обычно этого не делают, тем не менее в них следует избегать косвенных вызовов.

Косвенный вызов, ES5

Согласно спецификации ECMAScript 5, вместо того чтобы возбудить исключение EvalError , косвенный вызов eval() должен выполнить код в глобальной области видимости, игнорируя любые локальные переменные в текущей лексической области видимости. В ES5 можно выполнить присваивание var geval = eval; и затем использовать geval() для выполнения кода в глобальной области видимости.

Непосредственный и косвенный вызов, строгий режим

В строгом режиме объявления переменных и функций в коде определяют их в частной области видимости, которая действует только в данном вызове функции eval(). Это означает, что в строгом режиме непосредственный вызов eval() не может изменить лексическую область видимости, а косвенный вызов не может изменить глобальную область видимости. Эти правила действуют, если вызов eval() выполняется в строгом режиме или если код начинается с директивы «use strict».

Функция eval() в языке JavaScript предоставляет очень мощные возможности, тем не менее она не часто используется в реальных программах. Очевидной областью ее применения являются программы, работающие как рекурсивные интерпретаторы JavaScript или динамически генерирующие и выполняющие JavaScript-код. Большинство JavaScript-функций, принимающих строковые аргументы, могут также принимать аргументы других типов и перед обработкой просто преобразуют эти значения в строки. Метод eval() ведет себя иначе. Если аргумент код не является элементарным строковым значением, он возвращается в неизменном виде. Поэтому будьте внимательны, чтобы случайно не передать функции eval() объект String вместо элементарного строкового значения.

Пример

eval("1+2"); // Вернет 3

// Этот фрагмент использует клиентские JavaScript-методы для запроса выражения 

// от пользователя и вывода результатов его вычисления.

// Подробности см. в описаниях клиентских методов Window.alert() и Window.рrompt().

try {

  alert("Результат: " + eval(prompt("Введите выражение:","")));

}

  catch(exception) { alert(exception);

}

EvalError

генерируется при некорректном использовании eval() Objects Errors EvalError

Конструктор

new EvalError()

new EvalErroг(сообщение)

Аргументы

сообщение Необязательное сообщение об ошибке с дополнительной информацией об исключении. Если этот аргумент указан, он принимается в качестве значения свойства message объекта EvalError .

Возвращаемое значение

Вновь созданный объект EvalError . Если задан аргумент сообщение, объект Error возьмет его в качестве значения своего свойства message ; в противном случае в качестве значения этого свойства будет использована строка по умолчанию, определенная реализацией. Когда конструктор EvalError() вызывается как функция (без оператора new ), он ведет себя точно так же, как при вызове с оператором new .

Свойства

message Сообщение об ошибке с дополнительной информацией об исключении.

В этом свойстве хранится строка, переданная конструктору, или строка по умолчанию, определенная реализацией. Подробности см. в статье с описанием свойства Error.message .

name Строка, определяющая тип исключения. Для всех объектов EvalError

значение этого свойства равно «EvalError».

Описание

Экземпляры класса EvalError могут создаваться, когда глобальная функция eval() вызывается с любым другим именем. Ограничения на способы вызова функции eval() рассматриваются в ее описании. Информация о генерации и перехвате исключений приводится в статье, посвященной классу Error.

См. также

Error, Error.message, Error.name

 

Function

Function

функция JavaScript (Object->Function)

Синтаксис

function имя_функции(имена_аргументов) // Инструкция определения функции {

  тело

}

function(имена _аргументов) { тело } // Литерал неименованной функции

имя_функции{значения_аргументов) // Вызов функции

Конструктор

new Function(имена_аргументов..., тело)

Аргументы

имена_аргументов...

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

тело

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

Возвращаемое значение

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

Исключения

SyntaxError Указывает, что в аргументе тело или в одном из аргументов из перечня имена_аргументов имеется синтаксическая ошибка.

Свойства

arguments[]

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

caller

Ссылка на объект Function, вызвавший данную функцию, или null, если функция была вызвана из программного кода верхнего уровня. Признано устаревшим.

length

Число именованных аргументов, указанных при объявлении функции.

prototype

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

Методы

apply()

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

bind()

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

call()

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

toString()

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

Описание

Функция в языке JavaScript - это фундаментальный тип данных. В главе 8 рассказывается, как определять и использовать функции, а в главе 9 рассматриваются близкие темы, касающиеся методов, конструкторов и свойства prototype функций. Подробности см. в этих главах. Обратите внимание: функциональные объекты могут создаваться с помощью описанного здесь конструктора Function(), но это неэффективно, поэтому в большинстве случаев предпочтительным способом определения функции является инструкция определения функции или функциональный литерал.

В JavaScript 1.1 и более поздних версиях тело функции автоматически получает локальную переменную по имени arguments , которая ссылается на объект Arguments . Этот объект представляет собой массив значений, переданных функции в качестве аргументов. Не путайте его с устаревшим свойством arguments[], описанным ранее. Подробности см. в статье об объекте Arguments .

Function.apply()

вызывает функцию как метод объекта

Синтаксис

функция, apply(этот_объект, аргументы)

Аргументы

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

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

Возвращаемое значение

Значение, возвращаемое при вызове функции.

Исключения

ТуреЕrror Генерируется, если метод вызывается для объекта, не являющегося функцией, или с аргументом аргументы, не являющимся массивом или объектом Arguments.

Описание

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

Аргумент аргументы должен быть массивом или объектом Arguments . Если аргументы должны передаваться функции в виде отдельных аргументов, а не в виде массива, следует использовать вызов Function.call().

Пример

// Применяет метод Object.toStгing(), предлагаемый по умолчанию для объекта,

// переопределяющего его собственной версией метода. Обратите внимание

// на отсутствие аргументов.

Object.prototype.toString.apply(o);

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

// в массиве. Обратите внимание: в этом случае первый аргумент не имеет значения,

var data = [1,2,3,4,5,6,7,8];

Math.max.apply(null, data);

См. также

Function. call()

Function.arguments[] (устарело)

аргументы, переданные функции

Синтаксис

функция.arguments [і]

функция.arguments, length

Описание

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

Это свойство признано устаревшим, и его никогда не следует использовать в новых JavaScript-сценариях; вместо него рекомендуется использовать объект Arguments .

См. также

Arguments

Function.bind() (ECMAScript 5)

возвращает функцию, которая вызывается как метод

Синтаксис

функция.bind (объект)

функция.bind (объект, аргументы...)

Аргументы

объект Объект, к которому должна быть привязана функция.

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

Возвращаемое значение

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

Описание

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

Пример

Допустим, что имеется функция f и в программе вызывается ее метод bind(), как показано ниже:

var g = f.bind(o, 1, 2);

В результате этого будет создана новая функция g, вызов g(3) которой эквивалентен следующему вызову:

f.call(o, 1, 2, 3);

См. также

Function.apply(), Function.call(), раздел 8.7.4

Function.call()

вызывает функцию как метод объекта

Синтаксис

функция.call(этот_объект, аргументы...)

Аргументы

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

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

Возвращаемое значение

Значение, возвращаемое вызовом функции.

Исключения

ТуреЕrror Генерируется, если метод вызывается для объекта, не являющегося функцией.

Описание

саll() вызывает указанную функцию, как если бы она была методом объекта, указанного в аргументе этот_объект, передавая ей любые аргументы, расположенные в списке аргументов после аргумента этот_объект. Вызов call() возвращает то, что возвращает вызываемая функция. В теле функции ключевое слово this ссылается на объект этот_объект или на глобальный объект, если аргумент этот_объект содержит значение null. Если аргументы для передачи в функцию требуется указать в виде массива, используйте метод Function.apply().

Пример

// Вызывает метод Object.toString(), по умолчанию предлагаемый для объекта,

// переопределяющего его собственной версией метода. Обратите внимание

// на отсутствие аргументов.

Object.рrototype.toString.call(о);

См. также

Function. apply()

Function.caller (устарело; не определено в строгом режиме)

функция, вызвавшая данную

Синтаксис

функция.caller

Описание

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

Свойство Function.caller не является частью стандарта ECMAScript и не обязательно для совместимых реализаций, поэтому не следует использовать его.

Function.length

количество аргументов в объявлении функции

Синтаксис

функция.length

Описание

Свойство length функции указывает количество именованных аргументов, объявленных при определении функции. Фактически функция может вызываться с большим или меньшим количеством аргументов. Не путайте это свойство объекта Function со свойством length объекта Arguments , указывающим количество аргументов, фактически переданных функции. Пример имеется в статье о свойстве Arguments.length .

См. также

Arguments.length

Function.prototype

прототип класса объектов

Синтаксис

функция.prototype

Описание

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

Обсуждение функций-конструкторов, свойства prototype и определений классов в языке JavaScript находится в главе 9.

См. также

Глава 9

Function.toString()

преобразует функцию в строку

Синтаксис

функция.toString()

Возвращаемое значение

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

Исключения

ТуреЕrror Генерируется, если метод вызывается для объекта, не являющегося функцией.

Описание

Метод toString() объекта Function преобразует функцию в строку способом, зависящим от реализации. В большинстве реализаций, например в Firefox и IE, данный метод возвращает строку JavaScript-кода, которая включает ключевое слово function , список аргументов, полное тело функции и т. д. В этих реализациях результат работы метода toString() может передаваться в виде аргумента функции eval(). Однако такое поведение не оговаривается спецификациями, и на него не следует полагаться.

 

Global

Global

глобальный объект (Object—>Global)

Синтаксис

this

Глобальные свойства

Глобальный объект - это не класс, поэтому для следующих глобальных свойств имеются отдельные справочные статьи под собственными именами. То есть подробные сведения о свойстве undefined можно найти под заголовком «undefined», а не «Global, undefined». Обратите внимание, что все переменные верхнего уровня также представляют собой свойства глобального объекта.

Infinity Числовое значение, обозначающее положительную бесконечность.

NaN Нечисловое значение,

undefined Значение undefined.

Глобальные функции

Глобальный объект - это объект, а не класс, поэтому перечисленные далее глобальные функции не являются методами какого-либо объекта и справочные статьи приведены под именами функций. Так, функция parseInt() подробно описывается в статье под заголовком «parseInt()», а не «Global.parseInt()».

decodeURI() Декодирует строку, закодированную с помощью функции еnсоdeURI().

decodeURIComponent() Декодирует строку, закодированную с помощью функции encodeURIComponenet()

епсоdeURI Кодирует URI, заменяя определенные символы управляющими последовательностями

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

escape() Кодирует строку, заменяя определенные символы управляющими последовательностями.

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

isFinite() Проверяет, является ли значение конечным числом.

isNaN Проверяет, является ли значение нечисловым (NaN).

parseFloat() Выбирает число из строки.

parseInt() Выбирает целое из строки.

unescape() Декодирует строку, закодированную вызовом escape().

Глобальные объекты

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

Array           Конструктор Array().

Boolean         Конструктор Boolean().

Date            Конструктор Date().

Error           Конструктор Error().

EvalError       Конструктор EvalError().

Function        Конструктор Function().

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

                   в формат JSON и обратно.

Math            Ссылка на объект, определяющий математические функции.

Number          Конструктор Number().

Object          Конструктор Object().

RangeError      Конструктор RangeError().

ReferenceError  Конструктор ReferenceError().

RegExp          Конструктор RegExp().

String          Конструктор String ().

SyntaxError     Конструктор SyntaxError().

TypeError       Конструктор TypeError().

URIError        Конструктор URIError().

Описание

Глобальный объект - это предопределенный объект, который в языке JavaScript служит для размещения глобальных свойств и функций. Все остальные предопределенные объекты, функции и свойства доступны через глобальный объект. Глобальный объект не является свойством какого-либо другого объекта, поэтому у него нет имени. (Заголовок справочной статьи выбран просто для удобства и не указывает на то, что глобальный объект имеет имя «Global».) В JavaScript-коде верхнего уровня можно ссылаться на глобальный объект посредством ключевого слова this. Однако этот способ обращения к глобальному объекту требуется редко, т.к. глобальный объект выступает в качестве начала цепочки областей видимости, поэтому поиск неуточненных имен переменных и функций выполняется среди свойств этого объекта. Когда JavaScript-код ссылается, например, на функцию parseInt() , он ссылается на свойство parseInt глобального объекта. Тот факт, что глобальный объект находится в начале цепочки областей видимости, означает также, что все переменные, объявленные в JavaScript-коде верхнего уровня, становятся свойствами глобального объекта.

Глобальный объект - это просто объект, а не класс. У него нет конструктора Global() и нет способа создать новый экземпляр глобального объекта.

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

Пример

В базовом JavaScript ни одно из предопределенных свойств глобального объекта не является перечислимым, поэтому можно получить список всех явно и неявно объявленных глобальных переменных с помощью следующего цикла for/in :

var variables = for(var name in this)

  variables += name + "\n";

См. также

Window (часть IV книги); глава З

Infinity

числовое свойство, обозначающее бесконечность

Синтаксис

Infinity

Описание

Infinity - это глобальное свойство, содержащее специальное числовое значение, которое обозначает положительную бесконечность. Свойство Infinity не перечисляется циклами for/in и не может быть удалено с помощью оператора delete . Следует отметить, что Infіnitу не является константой и может быть установлено равным какому-либо другому значению, но лучше этого не делать. (В то же время Number.POSITIVE.INFINITY - это константа.)

См. также

isFinite(), NaN, Number. POSITIVE.INFINITY

isFinite()

определяет, является ли число конечным

Синтаксис

isFinite(n)

Аргументы

n Проверяемое число.

Возвращаемое значение

Если n является конечным числом (или может быть преобразовано в него), возвращает true, если n не является числом (NaN) или плюс/минус бесконечностью - false.

См. также

Infinity, isNaN(), NaN, Number.NaN, Number.NEGATIVE.INFINITY, Number.POSITIVE.INFINITY

isNaN()

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

Синтаксис

isNaN(x)

Аргументы

х Проверяемое значение.

Возвращаемое значение

Если х является специальным нечисловым значением (или может быть в него преобразовано), возвращает true, если х является любым другим значением - false.

Описание

Название «NaN» является аббреквиатурой от «Not-a-Number» (не число). Глобальная переменная NaN хранит специальное числовое значение (которое также называется NaN), представляющее недопустимое число (например, результат деления на ноль). isNaN() проверяет свой аргумент, чтобы определить, является ли он нечисловым. Эта функция возвращает false, если аргумент х является или может быть преобразован в числовое значение, отличное от NaN. Она возвращает true, если аргумент х не является или не может быть преобразован в числовое значение или если он равен NaN.

Важной особенностью NaN является то обстоятельство, что это значение не равно никакому значению, даже самому себе. Поэтому, если потребуется проверить некоторое значение на равенство NaN, нельзя будет использовать привычную проверку х === NaN : она всегда будет возвращать false. Вместо этого следует использовать выражение х !== х : оно возвращает true, только когда х равно NaN.

Обычно функция isNaN() служит для проверки результатов, возвращаемых функциями parseFloat() и parseInt(), с целью определить, представляют ли эти результаты корректные числа.

Пример

См. также

isFinite(), NaN, Number.NaN, parseFloat(), parseInt()

 

JSON

JSON (ECMAScript 5)

выполняет преобразование в формат JSON и обратно

Описание

JSON - это простой объект, который играет роль пространства имен для глобальных функций JSON.parse() и JSON.stringify() , определяемых стандартом ECMAScript 5. Свойство JSON не является конструктором. Ранее, до появления стандарта ECMAScript 5, совместимые функции преобразования в формат JSON и обратно были доступны в библиотеке .

Аббревиатура «JSON» происходит от JavaScript Object Notation (форма записи JavaScript-объектов). JSON - это формат сериализации данных, основанный на синтаксисе литералов в языке JavaScript, который может представлять значение null, логические значения true и false, вещественные числа (с использованием формы записи чиcловых литералов в языке JavaScript), строки (с использованием формы записи строковых литералов), массивы значений (с использованием формы записи литералов массивов) и отображения строк в значения (с использованием формы записи литералов объектов). Элементарное значение undefined, а также числовые значения NaN и Infinity не могут быть представлены в формате JSON. Функции, объекты Date , RegExp и Error также не поддерживаются.

Пример

// Создает полную копию любого объект или массива, который может быть

// представлен в формате JSON

function deepcopy(o) { return JSON.parse(JSON.stringify(o)); }

См. также

JSON.parse(), JSON.stringify(), раздел 6.9,

JSON.parse()  (ECMAScript 5)

выполняет анализ строки в формате JSON

Синтаксис

JSON.parse(s)

JSON.parse(s, reviver)

Аргументы

s Анализируемая строка.

reviver Необязательная функция, способная преобразовывать значения, полученные в ходе анализа.

Возвращаемое значение

Объект, массив или элементарное значение, полученное в результате анализа строки s (и, возможно, измененное функцией reviver).

Описание

JSON.parse() - глобальная функция, предназначенная для анализа строк в формате JSON. Обычно ей передается единственный строковый аргумент, и она возвращает значение, представленное строкой.

Необязательный аргумент reviver можно использовать для фильтрации или заключительной обработки значения перед тем, как оно будет возвращено вызывающей программе. Если этот аргумент указан, функция reviver будет вызвана для каждого элементарного значения (но не для объектов или массивов, содержащих эти элементарные значения), полученного в ходе анализа строки s. При вызове функции reviver будет передано два аргумента. Первый - имя свойства, т. е. имя свойства объекта или индекс массива в виде строки. Второй - элементарное значение этого свойства объекта или элемента массива. Кроме того, функция reviver будет вызываться как метод объекта или массива, содержащего элементарное значение. Особый случай, когда строка s является представлением элементарного значения, а не объекта или массива. В этом случае элементарное значение будет сохранено во вновь созданном объекте в свойстве, именем которого является пустая строка, и функция reviver будет вызвана для относительно этого вновь созданного объекта с пустой строкой в первом аргументе и элементарным значением - во втором.

Возвращаемое значение функции reviver станет новым значением заданного свойства. Если функция reviver вернет значение своего второго аргумента, то значение свойства не изменится. Если функция reviver вернет значение undefined (или вообще не вернет никакого значения), то данное свойство будет удалено из объекта или массива перед тем, как JSON.parse() вернет его вызывающей программе.

Пример

Во многих случаях использование JSON.parse() выглядит достаточно просто:

var data = JSON.parse(text);

Функция JSON.stringify() преобразует объекты Date в строки, а вы с помощью собственной функции reviver можете выполнять обратное преобразование. Пример ниже также фильтрует свойства по их именам и возвращает undefined, чтобы удалить определенные свойства из полученного объекта:

var data JSON.parse(text, function(name, value) {

  // Удалить свойства, имена которых начинаются с символа подчеркивания

  if (name[0] == '_') return undefined;

  // Если значение является строкой в формате представления дат ISO 8601,

  // преобразовать его в объект Date,

  if (typeof value === "string" &&

         /Ad\d\d\d-\d\d-\d\dT\d\d :\d\d: \d\d. \d\d\dZ$/.test(value))

    return new Date(value);

  // Иначе вернуть неизмененное значение

  return value

});

См. также

JSON.stringify(), раздел 6.9

JSON.stringify() (ECMAScript 5)

сериализует объект, массив или элементарное значение

Синтаксис

JSON.stringify(o)

JSON.stringify(o, filter)

JSON.stringify(o, filter, indent)

Arguments

о Объект, массив или элементарное значение, которое требуется преобразовать в строку в формате JSON.

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

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

Возвращаемое значение

Cстрока в формате JSON представляющая значение о после применения фильтра filter и отформатированная с применением indent.

Описание

Функция JSON.stringify() преобразует элементарное значение, объект или массив в строку в формате JSON, которая позднее сможет быть преобразована обратно в значение с помощью функции JSON.parse() . Обычно эта функция вызывается с единственным аргументом и возвращает соответствующую строку.

Когда функция JSON.stringifу() вызывается с единственным аргументом и когда в нем передается объект, массив, строка, число, логическое значение или значение null, сериализация выполняется очень просто. Однако, когда значение для сериализации содержит объекты, являющиеся экземплярами класса, процесс сериализаци усложняется. Если функция JSON.stringify() встретит объект (или массив) с методом toJSON(), она вызовет этот метод и выполнит сериализацию полученного в результате значения, а не самого объекта. Она вызывает метод toJS0N() с единственным строковым аргументом, в котором передается имя свойства объекта или индекс массива. Класс Date определяет метод toJSON(), преобразующий объекты Date в строки с помощью метода Date.toISOString() . Никакие другие классы, встроенные в язык JavaScript, не определяют метод toJSON(), но вы можете определить его в своих классах. Помните, что несмотря на свое имя, метод toJSON() не выполняет сериализацию объекта: он просто возвращает значение, которое будет подвергнуто сериализации вместо оригинального объекта. Второй аргумент функции JSON.stringify() позволяет добавить в процесс сериализаци второй слой фильтрации. Этот необязательный аргумент может быть функцией или массивом и предоставляет возможность реализации двух разных способов фильтрации. Если передать во втором аргументе функцию, она будет использоваться как инструмент замены, подобно методу toJSON(), описанному выше. Эта функция будет вызываться для каждого значения, подлежащего сериализации. Ключевое слово this внутри этой функции замены будет ссылаться на объект или массив, в котором определено текущее значение. Первым аргументом функции замены будет передаваться имя свойства объекта или индекс в массиве для текущего значения, а во втором - само значение. Это значение будет замещено возвращаемым значением функции. Если функция вернет undefined или вообще ничего не вернет, то это значение (и соответствующее ему свойство объекта или элемент массива) будет исключено из сериализации.

Если во втором аргументе передать массив строк (или чисел - они будут преобразованы в строки), эти строки будут использоваться как имена свойств объекта. Любое свойство, имя которого отсутствует в массиве, будет исключено из сериализации. Кроме того, возвращаемая строка будет содержать свойства в том же порядке, в каком они перечислены в массиве.

Функция JSON.stringify() обычно возвращает строку без дополнительных пробелов и символов перевода строки. Если желательно сделать результат более удобочитаемым, можно передать третий агумент. Если указать в нем число от 1 до 10, функция JSON.stringify() вставит символы перевода строки и будет использовать указанное число пробелов для оформления отступов на каждом «уровне» вложенности. Если в этом аргументе передать непустую строку, функция JSON.stringify() вставит символы перевода строки и будет использовать указанную строку (но не более 10 первых символов из нее) для оформления отступов.

Примеры

// Простая сериализация

var text = JSON.stringify(data);

// Указать точно, какие поля подлежат сериализации

var text = JSON.stringify(address, ["city”,"state","country"]);

// Указать функцию замены, чтобы можно было сериализовать объекты RegExp

var text = JSON.stringify(patterns, function(key, value) {

  if (value.constructor === RegExp) return value.toString();

  return value;

});

// Того же эффекта можно добиться иначе:

RegExp.prototype.toJSON = function() { return this.toString(); }

См. также

JSON.parse(), раздел 6.9

 

Math

Math

математические функции и константы

Синтаксис

Math.константа

Math.функция()

Константы

Math.Е        Константа е, основание натуральных логарифмов.

Math.LN10     Натуральный логарифм числа 10.

Math.LN2      Натуральный логарифм числа 2.

Math.L0G10E   Десятичный логарифм числа е.

Math.L0G2E    Логарифм числа е по основанию 2.

Math.PI       Константа п.

Math.SQRT1_2  Единица, деленная на корень квадратный из 2.

Math.SQRT2    Квадратный корень из 2.

Статические функции

Math.abs()    Вычисляет абсолютное значение.

Math.acos()   Вычисляет арккосинус.

Math.asin()   Вычисляет арксинус.

Math.atan()   Вычисляет арктангенс.

Math.atan2()  Вычисляет угол между осью X и точкой.

Math.ceil()   Округляет число вверх.

Math.cos()    Вычисляет косинус.

Math.exp()    Вычисляет степень числа е.

Math.floor()  Округляет число вниз.

Math.log()    Вычисляет натуральный логарифм.

Math.max()    Возвращает большее из двух чисел.

Math.min()    Возвращает меньшее из двух чисел.

Math.pow()    Вычисляет х в степени у.

Math.random() Возвращает случайное число.

Math.round()  Округляет до ближайшего целого.

Math.sin()    Вычисляет синус.

Math.sqrt()   Вычисляет квадратный корень.

Math.tan()    Вычисляет тангенс.

Описание

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

у = Math.sin(x);

area = radius * radius * Math.PI;

Math - это не класс объектов, как Date и String . Объект Math не имеет конструктора Math(), поэтому такие функции, как Math.sin(), - это просто функции, а не методы объекта.

См. также

Number

Math.abs()

вычисляет абсолютное значение

Синтаксис

Math.abs(x)

Аргументы

х Любое число.

Возвращаемое значение

Абсолютное значение х.

Math.acos()

вычисляет арккосинус

Синтаксис

Math.acos(x)

Аргументы

х Число от -1,0 до 1,0.

Возвращаемое значение

Арккосинус указанного числа х. Возвращаемое значение может находиться в интервале от 0 до пи радиан.

Math.asin()

вычисляет арксинус

Синтаксис

Math.asin(x)

Аргументы

Число от -1,0 до 1,0.

Возвращаемое значение

Арксинус указанного значения х. Это возвращаемое значение может находиться в интервале от -пи/2 до +пи/2 радиан.

Math.atan()

вычисляет арктангенс

Синтаксис

Math.atan(x)

Аргументы

х Любое число.

Возвращаемое значение

Арктангенс указанного значения х. Возвращаемое значение может находиться в интервале от -пи/2 до +пи/2 радиан.

Math.atan2()

вычисляет угол между осью X и точкой

Синтаксис

Math.atan2(y, х)

Аргументы

у Координата Y точки,

х Координата X точки.

Возвращаемое значение

Значение, лежащее между -пи и пи радиан и указывающее на угол по направлению, обратному часовой стрелке, между положительной осью X и точкой (х,у).

Описание

Функция Math.atan2() вычисляет арктангенс отношения у/х. Аргумент у может рассматриваться как координата Y (или «рост») точки, а аргумент х - как координата X (или «пробег») точки. Обратите внимание на необычный порядок следования аргументов этой функции: координата Y передается до координаты X.

Math.ceil()

округляет число вверх

Синтаксис

Math.ceil(x)

Аргументы

х Числовое значение или выражение.

Возвращаемое значение

Ближайшее целое, большее или равное х.

Описание

Функция Math.ceil() вычисляет наименьшее целое, т.е. возвращает ближайшее целое, большее или равное аргументу функции. Функция Math.ceil() отличается от Math.round() тем, что округляет всегда вверх, а не к ближайшему целому. Обратите внимание также, что Math.ceil() округляет отрицательные числа не к большим по абсолютному значению отрицательным целым; функция округляет их по направлению к нулю.

Пример

а = Math.ceil(1.99); // Результат равен 2.0

b = Math.ceil(1.01); // Результат равен 2.0

с = Math.ceil(1.0); // Результат равен 1.0

d = Math.ceil(-1.99); // Результат равен -1.0

Math.cos()

вычисляет косинус

Синтаксис

Math.cos(x)

Аргументы

х Угол в радианах. Чтобы преобразовать градусы в радианы, нужно умножить значение в градусах на 0,017453293 (2*pi/360).

Возвращаемое значение

Косинус указанного значения х. Это возвращаемое значение может находиться в интервале от -1,0 до 1,0.

Math.E

математическая константа е

Синтаксис

Math.E

Описание

Math.E - это математическая константа е, база натуральных логарифмов, приблизительно равная 2,71828.

Math.exp()

вычисляет е x

Синтаксис

Math.exp(x)

Аргументы

х Число или выражение, которое должно использоваться как экспонента.

Возвращаемое значение

ех - это число е, возведенное в степень указанной экспоненты х, где е - это основание натуральных логарифмов, примерно равное 2,71828.

Math.floor()

округляет число вниз

Синтаксис

Math.floor(x)

Аргументы

х Числовое значение или выражение.

Возвращаемое значение

Ближайшее целое, меньшее или равное х.

Описание

Округление вниз, т. е. функция возвращает ближайшее целое значение, меньшее или равное аргументу функции.

Функция Math.flоог() округляет вещественное число вниз, в отличие от функции Math.round(), выполняющей округление до ближайшего целого. Обратите внимание: Math.floor() округляет отрицательные числа вниз (т. е. дальше от нуля), а не вверх (т. е. ближе к нулю).

Пример

а = Math.floor(1.99); // Результат равен 1.0

b = Math.floor(1.01); // Результат равен 1.0

с = Math.floor(1.0); // Результат равен 1.0

d = Math.floor(-1.01); // Результат равен -2.0

Math.LN10

математическая константа log e 10

Синтаксис

Math.LN10

Описание

Math.LN10 - это loge10, натуральный логарифм числа 10. Эта константа имеет значение, приблизительно равное 2,3025850929940459011.

Math.LN2

математическая константа log e 2

Синтаксис

Math.LN2

Описание

Math. LN2 - это loge2, натуральный логарифм числа 2. Эта константа имеет значение, приблизительно равное 0,69314718055994528623.

Math.log()

вычисляет натуральный логарифм

Синтаксис

Math.log(x)

Аргументы

х Любое числовое значение, большее нуля.

Возвращаемое значение

Натуральный логарифм х.

Описание

Math.log() вычисляет натуральный логарифм своего аргумента. Аргумент должен быть больше нуля.

Логарифмы числа по основанию 10 и 2 можно вычислить по следующим формулам:

lод10х = lод10е • logex

log2x = log2e • logex

Эти формулы транслируются в следующие JavaScript-функции:

function log10(x) { return Math.L0G10E * Math.log(x); }

function log2(x) { return Math.L0G2E * Math.log(x); }

Math.LOG10E

математическая константа log 10 e

Синтаксис

Math.LOG10E

Описание

Math.LOG10E - это log10e, логарифм по основанию 10 константы е. Его значение приблизительно равно 0,43429448190325181667.

Math.LOG2E

математическая константа log 2 e

Синтаксис

Math.L0G2E

Описание

Math.L0G2E - это log2e, логарифм по основанию 2 константы е. Его значение приблизительно равно 1,442695040888963387.

Math.max()

возвращает наибольший аргумент

Синтаксис

Math.max (аргументы...)

Аргументы

аргументы... Ноль или более значений.

Возвращаемое значение

Наибольший из аргументов. Возвращает - Infinity, если аргументов нет. Возвращает NaN, если какой-либо из аргументов равен NaN или является нечисловым значением, которое не может быть преобразовано в число.

Math.min()

возвращает наименьший аргумент

Синтаксис

Math.min (аргументы...)

Аргументы

аргументы... Любое количество аргументов.

Возвращаемое значение

Наименьший из указанных аргументов. Возвращает Infinity, если аргументов нет. Возвращает NaN, если какой-либо из аргументов представляет собой значение NaN или нечисловое значение, которое не может быть преобразовано в число.

Math.PI

математическая константа pi

Синтаксис

Math.PI

Описание

Math. PI - это константа pi, т. е. отношение длины окружности к ее диаметру. Имеет значение, примерно равное 3,14159265358979.

Math.pow()

вычисляет X у

Синтаксис

Math.pow(x, у)

Аргументы

х Число, которое должно быть возведено в степень,

у Степень, в которую должно быть возведено ЧИСЛО X.

Возвращаемое значение

х в степени у (Xу).

Описание

Math.pow() вычисляет х в степени у. Значения х и у могут быть любыми. Однако если результат является мнимым или комплексным числом, Math.pow() возвращает NaN. На практике это означает, что если значение х отрицательно, то значение у должно быть положительным или отрицательным целым. Также имейте в виду, что большие экспоненты легко приводят к вещественному переполнению и возвращают значение Infinity.

Math.random()

возвращает псевдослучайное число

Синтаксис

Math.random()

Возвращаемое значение

Псевдослучайное число от 0,0 до 1,0.

Math.round()

округляет число до ближайшего целого

Синтаксис

Math.round(x)

Аргументы

х Любое число.

Возвращаемое значение

Целое, ближайшее к х.

Описание

Math.round() округляет аргумент вверх или вниз до ближайшего целого. Число 0,5 округляется вверх. Например, число 2,5 округляется до 3, а число -2,5 округляется до -2.

Math.sin()

вычисляет синус

Синтаксис

Math.sin(x)

Аргументы

х Угол в радианах. Для преобразования градусов в радианы умножьте число на 0,017453293 (2*pi/360).

Возвращаемое значение

Синус х - число в диапазоне от -1,0 до 1,0.

Math.sqrt()

вычисляет квадратный корень

Синтаксис

Math.sqrt(x)

Аргументы

Числовое значение, большее или равное 0.

Возвращаемое значение

Квадратный корень из х. Возвращает NaN, если х меньше нуля.

Описание

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

Math.cuberoot = function(x){ return Math.pow(x,1/3); }

Math.cuberoot(8); // Вернет 2

Math.SQRT1_2

математическая константа 1/sqrt(2)

Синтаксис

Math.SQRT1_2

Описание

Math.SQRT1_2 - это 1/sqrt(2), величина, обратная корню квадратному из 2. Эта константа примерно равна 0,7071067811865476.

Math.SQRT2

математическая константа sqrt(2)

Синтаксис

Math.SQRT2

Описание

Math.SQRT2 - это sqrt(2), корень квадратный из 2. Эта константа имеет значение, примерно равное 1,414213562373095.

Math.tan()

вычисляет тангенс

Синтаксис

Math.tan(x)

Аргументы

х Угол, измеряемый в радианах. Чтобы преобразовать градусы в радианы, нужно умножить значение в градусах на 0,017453293 (2*pi/360).

Возвращаемое значение

Тангенс указанного угла х.

NaN

свойство «нечисло»

Синтаксис

NaN

Описание

NaN - это глобальное свойство, ссылающееся на специальное числовое значение «не-число». Свойство NaN не перечисляется циклами for/in и не может быть удалено оператором delete . Обратите внимание: NaN - это не константа, и оно может быть установлено в любое значение, но лучше этого не делать.

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

См. также

Infinity, isNaN(), Number.NaN

 

Number

Number

поддержка чисел (Object->Number)

Конструктор

new Number(значение)

Number(значение)

Аргументы

значение Числовое значение создаваемого объекта Number или значение, которое может быть преобразовано в число.

Возвращаемое значение

Когда функция Number() используется в качестве конструктора (с оператором new ), она возвращает вновь созданный объект Number . Когда функция Number() вызывается как функция (без оператора new ), она преобразует свой аргумент в элементарное числовое значение и возвращает это значение (или NaN, если преобразование не удалось).

Константы

Number.MAX.VALUE

Наибольшее представимое число.

Number. MIN_VALUE

Наименьшее представимое число.

Number.NaN

Нечисло.

Number.NEGATIVE_INFINITY

Отрицательная бесконечность, возвращается при переполнении.

Number.POSITIVE_INFINITY

Положительная бесконечность; возвращается при переполнении.

Методы

toString()

Преобразует число в строку в указанной системе счисления.

toLocaleString()

Преобразует число в строку, руководствуясь локальными соглашениями о форматировании чисел.

toFixed()

Преобразует число в строку, содержащую указанное число цифр после десятичной точки. ’

toExponential()

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

toPrecision()

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

valueOf()

Возвращает элементарное числовое значение объекта Number .

Описание

Числа - это базовый элементарный тип данных в JavaScript. В JavaScript поддерживается также объект Number , представляющий собой обертку вокруг элементарного числового значения. Интерпретатор JavaScript при необходимости автоматически выполняет преобразование между элементарной и объектной формами. Существует возможность явно создать объект Number посредством конструктора Number(), хотя в этом редко возникает необходимость.

Конструктор Number() может также вызываться как функция преобразования (без оператора new ). В этом случае функция пытается преобразовать свой аргумент в число и возвращает элементарное числовое значение (или NaN), полученное при преобразовании.

Конструктор Number() используется также для размещения пяти полезных числовых констант: максимального и минимального представимых чисел, положительной и отрицательной бесконечности, а также специального значения «нечисло». Обратите внимание: эти значения представляют собой свойства самой функции-конструктора Number(), а не отдельных числовых объектов. Например, свойство MAX_VALUE можно использовать следующим образом:

var biggest = Number.MAX_VALUE

А такая запись неверна:

var n = new Number(2);

var biggest = n.MAX_VALUE

В то же время toString() и другие методы объекта Number являются методами каждого объекта Number , а не функции-конструктора Number(). Как уже говорилось, JavaScript при необходимости автоматически выполняет преобразования между элементарными числовыми значениями и объектами Number. То есть методы класса Number могут работать с элементарными числовыми значениями так же, как с объектами Number :

var value = 1234;

var binary_value = n.toString(2);

См. также

Infinity, Math, NaN

Number.MAX.VALUE

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

Синтаксис

Number. MAX_VALUE

Описание

Number. MAX_VALUE - это наибольшее число, представимое в JavaScript. Его значение примерно равно 1,79Е+308.

Number.MIN_VALUE

минимальное числовое значение

Синтаксис

Number.MIN_VALUE

Описание

Number.MIN_VALUE - это наименьшее число (ближайшее к нулю, а не самое отрицательное), представимое в JavaScript. Его значение примерно равно 5Е-324.

Number.NaN

специальное нечисловое значение

Синтаксис

Number.NaN

Описание

Number.NaN - это специальное значение, указывающее, что результат некоторой математической операции (например, извлечения квадратного корня из отрицательного числа) не является числом. Функции parseInt() и parseFloat() возвращают это значение, когда не могут преобразовать указанную строку в число; программист может использовать Number.NaN аналогичным образом, чтобы указать на ошибочное условие для какой-либо функции, обычно возвращающей допустимое число.

JavaScript выводит значение Number.NaN как NaN. Обратите внимание: при сравнении значение NaN всегда не равно любому другому числу, включая само значение NaN. Следовательно, невозможно проверить значение на «нечисло», сравнив его с Number.NaN . Для этого предназначена функция isNaN(). В стандарте ECMAScript v1 и более поздних версиях вместо Number.NaN допускается использование предопределенного глобального свойства NaN .

См. также

isNaN(), NaN

Number.NEGATIVE_INFINITY

отрицательная бесконечность

Синтаксис

Number. NEGATIVE_INFINITY

Описание

Number.NEGATIVE_INFINITY - специальное числовое значение, возвращаемое, если арифметическая операция или математическая функция генерирует отрицательное число, большее чем максимальное представимое в JavaScript число (т. е. отрицательное число, меньшее чем - Number. MAX_VALUE ).

JavaScript выводит значение NEGATIVE_INFINITY как - Infinity. Это значение математически ведет себя как бесконечность. Например, все что угодно, умноженное на бесконечность, является бесконечностью, а все, деленное на бесконечность, - нулем. В ЕСМА-Script v1 и более поздних версиях можно также использовать предопределенную глобальную константу - Infinity вместо Number.NEGATIVE_INFINITY .

См. также

Infinity, isFinite()

Number.POSITIVE_INFINITY

бесконечность

Синтаксис

Number.POSITIVE_INFINITY

Описание

Number.POSITIVE_INFINITY - это специальное числовое значение, возвращаемое, когда арифметическая операция или математическая функция приводит к переполнению или генерирует значение, превосходящее максимальное представимое в JavaScript число (т.е. Number.MAX_VALUE ). Обратите внимание: если происходит потеря значимости или число становится меньше, чем Number.MIN_VALUE , JavaScript преобразует его в ноль. JavaScript выводит значение POSITIVE_INFINITY как Infinity. Это значение ведет себя математически так же, как бесконечность. Например, что-либо, умноженное на бесконечность, - это бесконечность, а что-либо, деленное на бесконечность, - ноль. В ЕСМА-Script vl и более поздних версиях вместо Number.POSITIVE_INFINITY можно также использовать предопределенную глобальную константу Infinity .

См. также

Infinity, isFinite()

Number.toExponential()

форматирует число в экспоненциальную форму представления

Синтаксис

число.toExponential( разрядность)

Аргументы

разрядность Количество цифр после десятичной точки. Может быть значением от О до 20 включительно, конкретные реализации могут поддерживать больший диапазон значений. Если аргумент отсутствует, то цифр будет столько, сколько необходимо.

Возвращаемое значение

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

Исключения

RangeError Генерируется, если аргумент разрядность слишком велик или слишком мал. Значения между 0 и 20 включительно не приводят к ошибке RangeError . Реализациям также разрешено поддерживать большее или меньшее количество цифр.

ТуреЕrror Генерируется, если метод вызывается для объекта, не являющегося объектом Number .

Пример

var n = 12345.6789;

n.toExponential(l); // Вернет 1.2е+4

n.toExponential(5);  // Вернет 1.23457е+4

n.toExponential(10); // Вернет 1.2345678900Є+4

n.toExponential();  // Вернет 1.23456789Є+4

См. также

Number.toFixed(), Number.toLocaleString(), Number.toPrecision(), Number.toString()

Number.toFixed()

форматирует число в форму представления с фиксированной точкой

Синтаксис

число.tоFіхеd (разрядность)

Аргументы

разрядность Количество цифр после десятичной точки; оно может быть значением от 0 до 20 включительно; конкретные реализации могут поддерживать больший диапазон значений. Если этот аргумент отсутствует, он считается равным 0.

Возвращаемое значение

Строковое представление числа, которое не использует экспоненциальную нотацию и в котором количество цифр после десятичной точки равно аргументу разрядность. При необходимости число округляется, а дробная часть дополняется нулями до указанной длины. Если число больше, чем 1е+21, этот метод вызывает функцию Number.toString() и возвращает строку в экспоненциальной нотации.

Исключения

RangeError Генерируется, если аргумент разрядность слишком велик или слишком мал. Значения от 0 до 20 включительно не приводят к исключению RangeError . Конкретные реализации могут поддерживать большие или меньшие значения.

ТуреЕrror Генерируется, если метод вызывается для объекта, не являющегося объектом Number.

Пример

var n = 12345.6789;

n.toFixed();// Вернет 12346: обратите внимание на округление

// и отсутствие дробной части

n.toFixed(1);// Вернет 12345.7: обратите внимание на округление

n.toFixed(6); // Вернет 12345.678900: обратите внимание на добавление нулей

(1.23e+20).toFixed(2); // Вернет 123000000000000000000.00

(1.23e-10).toFixed(2) // Вернет 0.00

См. также

Number.toExponential(), Number.toLocaleString(), Number.toPrecision(), Number. toString()

Number.toLocaleString()

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

Синтаксис

число.toLocaleString()

Возвращаемое значение

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

Исключения

ТуреЕrror Генерируется, если метод вызван для объекта, не являющегося объектом Number .

См. также

Number.toExponential(), Number.toFixed(), Number.toPrecision(), Number.toString()

Number.toPrecision()

форматирует значащие цифры числа

Синтаксис

число.tоРгеcisіоn (точность)

Аргументы

точность Количество значащих цифр в возвращаемой строке. Оно может быть значением от 1 до 21 включительно. Конкретные реализации могут поддерживать большие и меньшие значения точности. Если этот аргумент отсутствует, для преобразования в десятичное число используется метод toString().

Возвращаемое значение

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

Исключения

RangeError Генерируется, если аргумент точность слишком мал или слишком велик. Значения от 1 до 21 включительно не приводят к исключению RangeError. Конкретные реализации могут поддерживать большие и меньшие значения.

ТуреЕrror Генерируется, если метод вызван для объекта, не являющегося объектом Number .

Пример

var n = 12345.6789;

n.toPrecision(1); // Вернет 1е+4

n.toPrecision(3); // Вернет  1.23е+4

n.toPrecision(5); // Вернет 12346: обратите внимание на округление

n.toPrecision(10); // Вернет 12345.67890: обратите внимание на добавление нуля

См. также

Number.toExponential(), Number.toFixed(), Number.toLocaleString(), Number.toString()

Number.toString()

преобразует число в строку (переопределяет Object.toString())

Синтаксис

число.toSt ring (основание)

Аргументы

основание Необязательный аргумент, определяющий основание системы счисления (между 2 и 36), в которой должно быть представлено число. Если аргумент отсутствует, то основание равно 10. Следует заметить, что спецификация ECMAScript разрешает реализациям возвращать любое значение, если этот аргумент равен любому значению, отличному от 10.

Возвращаемое значение

Строковое представление числа.

Исключения

ТуреЕrror Генерируется, если метод вызван для объекта, не являющегося объектом Number .

Описание

Метод toString() объекта Number преобразует число в строку. Если аргумент основание опущен или указано значение 10, число преобразуется в строку по основанию 10. Хотя спецификация ECMAScript не требует от реализаций корректно реагировать на любые другие значения аргумента основание, тем не менее все распространенные реализации принимают значения основания в диапазоне от 2 до 36.

См. также

Number.toExponential(), Number.toFixed(), Number.toLocaleString(), Number.toPrecision()

Number.valueOf()

преобразует число в строку (переопределяет Object.valueOf())

Синтаксис

число.valueOf()

Возвращаемое значение

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

Исключения

ТуреЕrror Генерируется, если метод вызван для объекта, не являющегося объектом Number .

См. также

Object. valueOf()

 

Object

Object

надкласc, реализующий общие возможности всех JavaScript-объектов

Конструктор

new Object()

new Object(значение)

Аргументы

значение Этот необязательный аргумент определяет элементарное значение-число, логическое значение или строку, которое должно быть преобразовано в объект Number, Boolean или String.

Возвращаемое значение

Если аргумент значение указан, конструктор возвращает вновь созданный экземпляр Object . Если указан аргумент значение элементарного типа, конструктор создаст объект-обертку Number , Boolean или String для указанного элементарного значения. Если конструктор Object() вызывается как функция (без оператора new ), он действует точно так же, как при вызове с оператором new .

Свойства

constructor Ссылка на функцию, которая была конструктором объекта.

Методы

hasOwnProperty()

Проверяет, имеет ли объект собственное (не унаследованное) свойство с указанным именем.

isPrototypeOf()

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

propertyIsEnumerable()

Проверяет, существует ли свойство с указанным именем и будет ли оно перечислено циклом for/in.

toLocaleString()

Возвращает локализованное строковое представление объекта. Реализация по умолчанию этого метода просто вызывает метод toString(), но подклассы могут переопределять его для выполнения локализации.

toString()

Возвращает строковое представление объекта. Реализация этого метода в классе Object является очень общей и возвращает немного полезной информации. Подклассы Object обычно переопределяют этот метод собственным методом toString(), возвращающим более полезный результат.

valueOf()

Возвращает элементарное значение объекта, если оно существует. Для объектов типа Object этот метод просто возвращает сам объект. Подклассы Object , такие как Number и Boolean , переопределяют этот метод, чтобы можно было получить элементарное значение, связанное с объектом.

Статические методы

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

Object.create()

Создает новый объект с указанным прототипом и свойствами.

Object.defineProperties()

Создает или настраивает одно или более свойств в указанном объекте.

Object.defineProperty()

Создает или настраивает свойство в указанном объекте.

Object.freeze()

Делает указанный объект неизменяемым.

Object.getOwnPropertyDescriptor()

Возвращает атрибуты указанного свойства в указанном объекте.

Object.getOwnPropertyNames()

Возвращает массив имен всех неунаследованных свойств в указанном объекте, включая свойства, не перечисляемые циклом for/in .

Object.getPrototypeOf()

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

Object.isExtensible()

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

Object.isFrozen()

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

Object.isSealed()

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

Object.keys()

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

Object.preventExtensions()

Предотвращает возможность добавления новых свойств в указанный объект.

Object.seal()

Предотвращает возможность добавления новых и удаления существующих свойств в указанном объекте.

Описание

Класс Object - это встроенный тип данных языка JavaScript. Он играет роль надкласса для всех остальных JavaScript-объектов; следовательно, методы и поведение класса Object наследуются всеми остальными объектами. Об основных особенностях JavaScript-объектов рассказывается в главе 6.

В дополнение к показанному ранее конструктору Object() объекты могут создаваться и инициализироваться с помощью синтаксиса объектных литералов, описанного в разделе 6.1.

См. также

Array, Boolean, Function, Function.prototype, Number, String; глава 6

Object.constructor

функция-конструктор объекта

Синтаксис

объект.constructor

Описание

Свойство constructor любого объекта - это ссылка на функцию, являющуюся конструктором этого объекта. Например, если создать массив а с помощью конструктора Array(), то значением свойства a.constructor будет Array :

а = new Array(1,2,3); // Создать объект

a.constructor == Array // Равно true

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

function isArray(x) {

  return ((typeof x == "object") && (x.constructor == Array));

}

Однако следует отметить, что, хотя этот прием эффективен для объектов, встроенных в базовый JavaScript, его работа с объектами среды выполнения клиентского JavaScript, такими как объект Window , не гарантируется. Реализация по умолчанию метода Object.toString() представляет другой способ определения типа неизвестного объекта.

См. также

Object. toString()

Object.create() (ECMAScript 5)

создает объект с указанным прототипом и свойствами

Синтаксис

Object.create(прототип)

Object.create (прототип, дескрипторы)

Аргументы

прототип Прототип создаваемого объекта или null.

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

Возвращаемое значение

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

Исключения

ТуреЕrror Генерируется, если прототип не является объектом или значением null или если указанные дескрипторы заставляют метод Object.definePгорегties() сгенерировать исключение ТуреЕrror .

Описание

Функция Object.create() создает и возвращает новый объект с прототипом, определяемым аргументом прототип. Это означает, что новый объект наследует свойства от прототипа.

Если указан необязательный аргумент дескрипторы, функция Object.create() добавит в новый объект свойства, как если бы был вызван метод Object.defineProperties(). То есть вызов функции Object.create(p,d) с двумя аргументами эквивалентен вызовам:

Object.defіneProperties(Object.create(p), d);

Дополнительную информацию об аргументе дескрипторы можно найти в справочной статье Object.defineProperties(), а описание дескрипторов свойств в справочной статье Object.getOwnPropertyDescriptor().

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

Пример

// Создать объект, который имеет собственные свойства х и у и наследует свойство z

var р = Object.create({z:0}, {

  x: { value: 1, writable: false, enumerable:true, configurable: true},

  y: { value: 2, writable: false, enumerable:true, configurable: true},

});

См. также

Object.defineProperty(), Object.defineProperties(), Object.getOwnPropertyDescriptor(), разделы 6.1, 6.7

Object.defineProperties() (ECMAScript5)

создает или настраивает свойства объекта

Синтаксис

Object.defineProperties(o, дескрипторы)

Arguments

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

дескрипторы Объект, отображающий имена свойств в их дескрипторы.

Возвращаемое значение

Объект о.

Исключения

ТуреЕrror Генерируется, если аргумент о не является объектом или если какое-либо из указанных свойств не может быть создано или настроено. Эта функция не является атомарной: она может создать или настроить часть свойств и затем возбудить исключение, не создав или не настроив другие свойства. Перечень ошибок, которые могут вызвать исключение ТуреЕrror , приводится в разделе 6.7.

Описание

Функция Object.defineProperties() создает или настраивает свойства объекта о, указанные и описанные в аргументе дескрипторы. Имена свойств объекта дескрипторы являются именами свойств, которые будут созданы или настроены в объекте о, а значениями этих свойств являются объекты дескрипторов свойств, которые определяют атрибуты создаваемых или настраиваемых свойств.

Функция Object.defineProperties() действует подобно функции Object.defineProperty(); дополнительные подробности смотрите в описании этой функции. Дополнительные сведения об объектах дескрипторов свойств приводятся в справочной статье Object. getOwnPropertyDescriptor().

Пример

// Добавить в новый объект свойства х и у, доступные только для чтения

var р = Object.defineProperties({}, {

  х: { value: 0, writable: false, enumerable:true, configurable: true},

  y: { value: 1, writable: false, enumerable:true, configurable: true},

});

См. также

Object.create(), Object.defineProperty(), Object.getOwnPropertyDescriptor(), раздел 6.7

Object.defineProperty() (ECMAScript 5)

создает или настраивает одно свойство в объекте

Синтаксис

Object.defineProperty(o, имя, дескриптор)

Аргументы

о

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

имя Имя создаваемого или настраиваемого свойства.

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

Возвращаемое значение

Объект о.

Исключения

ТуреЕrror Генерируется, если аргумент о не является объектом или если свойство не может быть создано (из-за того, что объект о является нерасширяемым) или настроено (например, из-за того, что уже существующее свойство является ненастраиваемым). Перечень ошибок, которые могут вызвать исключение ТуреЕrror , приводится в разделе 6.7.

Описание

Функция Object.defineProperty() создает или настраивает свойство с именем имя в объекте о, используя описание свойства в аргументе дескриптор. Дополнительные сведения об объектах дескрипторов свойств приводятся в справочной статье Object.getOwnPropertyDescriptor().

Если объект о еще не имеет свойства с именем имя, эта функция просто создаст новое свойство с атрибутами и значением, указанными в дескрипторе. Если в дескрипторе не указаны какие-либо атрибуты, соответствующие им атрибуты получат значение false или undefined.

Если значение аргумента имя совпадает с именем существующего свойства объекта о, то функция Object.defineProperty() настроит это свойство, изменив его значение или атрибуты. В этом случае в дескрипторе достаточно указать только атрибуты, которые должны быть изменены: атрибуты, отсутствующие в дескрипторе, сохранят свои прежние значения.

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

Пример

function constant(o, n, v) { // Определить константу о.n со значением v

  Object.defineProperty(o, n, { value: v, writable: false

    enumerable: true, configurable:false});

}

См. также

Object.create(), Object.defineProperties(), Object.getOwnPropertyDescriptor(), раздел 6.7

Object.freeze() (ECMAScript 5)

делает объект неизменяемым

Синтаксис

Object.freeze(o)

Аргументы

о Объект, который должен быть зафиксирован.

Возвращаемое значение

Зафиксированный объект о.

Описание

Функция Object.freeze() делает объект о нерасширяемым (Object.preventExtensions() ), а все его собственные свойства - ненастраиваемыми, подобно функции Object.seal(). Однако в дополнение к этому она делает все неунаследованные свойства доступными только для чтения. Это означает, что в объект о нельзя будет добавлять новые свойства, а существующие свойства-данные нельзя будет изменить или удалить. Действие функции Object.freeze() является необратимым, т.е. зафиксированный объект нельзя снова сделать доступным для изменения.

Имейте в виду, что функция Object.freeze() устанавливает атрибут writable, имеющийся только в свойствах-данных. Она не действует на свойства, имеющие методы записи. Отметьте также, что функция Object.freeze() не действует на унаследованные свойства. Обратите внимание, что эта функция вызывается не как метод объекта: это глобальная функция, которая принимает объект в виде аргумента.

См. также

Object.defineProperty(), Object.isFrozen(), Object.preventExtensions(), Object.seal(), раздел 6.8.3

Object.getOwnPropertyDescriptor() (ECMAScript 5)

возвращает атрибуты свойства

Синтаксис

Object.getOwnPropertyDescriptor(o, имя)

Аргументы

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

имя Имя свойства (или индекс элемента массива), атрибуты которого требуется получить.

Возвращаемое значение

Объект дескриптора для указанного свойства заданного объекта или undefined, если такое свойство не существует.

Описание

Функция Object.getOwnPropertyDescriptor() возвращает дескриптор для указанного свойства заданного объекта. Дескриптор свойства - это объект, описывающий атрибуты и значение свойства. Более полная информация приводится в следующем подразделе. Обратите внимание, что эта функция вызывается не как метод объекта: это глобальная функция, которая принимает объект в виде аргумента.

Дескрипторы свойств

Дескриптор свойства - это обычный JavaScript-объект, описывающий атрибуты (и иногда значение) свойства. В языке JavaScript существует два типа свойств. Свойства-данные, имеющие значение и три атрибута: enumerable, writable и configurable . Свойства с методами доступа, имеющие метод чтения и/или метод записи, а также атрибуты enumerable и configurable .

Дескриптор свойства с данными имеет следующий вид:

{

value: /* любое значение, допустимое в языке JavaScript */,

writable: /* true или false */,

enumerable: /* true или false */,

configurable: /* true или false */

}

Дескриптор свойства с методами доступа имеет следующий вид:

{

get: /* функция или undefined: взамен свойства value */,

set: /* функция или undefined: взамен атрибута writable */,

enumerable: /* true или false */,

configurable: /* true или false */

}

См. также

Object.defineProperty(), раздел 6.7

Object.getOwnPropertyNames() (ECMAScript 5)

возвращает имена неунаследованных свойств

Синтаксис

Object. getOwnPropertyNames(o)

Аргументы

о Объект.

Возвращаемое значение

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

Описание

Функция Object.getOwnPropertyNames() возвращает массив с именами всех неунаследованных объекта о, включая неперечислимые свойства. Для получения массива имен только перечислимых свойств можно использовать функцию Object.keys().

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

Пример

Object.getOwnPropertyNames([]) // => ["length"]: "length" - неперечислимое

См. также

Object.keys(), раздел 6.5

Object.getPrototypeOf() (ECMAScript 5)

возвращает прототип объекта

Синтаксис

Object.getPrototypeOf(о)

Аргументы

о Объект.

Возвращаемое значение

Прототип объекта о.

Описание

Функция Object.getPrototypeOf() возвращает прототип своего аргумента. Обратите внимание, что эта функция вызывается не как метод объекта: это глобальная функция, которая принимает объект в виде аргумента.

Пример

var р = {}; // Обычный объект

Object.getPrototypeOf(р) // => Object.prototype

var о = Object.create(p) // Объект, наследующий объект р

Object.getPrototypeOf(о) // => р

См. также

Object.create(); глава 6

Object.hasOwnProperty()

проверяет, является ли свойство унаследованным

Синтаксис

объект.hasOwnPropertу(имя_свойства)

Аргументы

имя_свойства

Строка, содержащая имя свойства объекта.

Возвращаемое значение

Возвращает true, если объект имеет неунаследованное свойство с именем, заданным в имени_свойства. Возвращает false, если объект не имеет свойства с указанным именем или если он наследует это свойство от своего объекта-прототипа.

Описание

В главе 9 говорится, что JavaScript-объекты могут иметь собственные свойства, а также наследовать свойства от своих объектов-прототипов. Метод hasOwnProperty() предоставляет способ, позволяющий установить различия между унаследованными свойствами и неунаследованными локальными свойствами.

Пример

var о = new Object(); // Создать объект

о.х = 3.14; // Определить неунаследованное свойство

о.hasOwnProperty("x"); // Вернет true: х - это локальное свойство о

о.hasOwnProperty("y");  // Вернет false: о не имеет свойства у ");

о.hasOwnProperty("toString")  // Вернет false: свойство toString унаследовано

См. также

Function.prototype, Object.propertyIsEnumerable(); глава 9

Object.isExtensible() (ECMAScript 5)

возможно ли добавить в объект новое свойство?

Синтаксис

Object.isExtensible(o)

Аргументы

о Объект, проверяемый на возможность расширения

Возвращаемое значение

true, если в объект можно расширить новыми свойствами, и false - если нет.

Описание

Если в объект можно добавлять новые свойства, он является расширяемым. Все объекты сразу после создания являются расширяемыми и остаются таковыми, пока не будут переданы функции Object.preventExtensions(), Object.seal() или Object.freeze().

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

Пример

var о = {}; // Создать новый объект

Object.isExtensible(o) // => true: он является расширяемым

Object.preventExtensions(o); // Сделать нерасширяемым

Object.isExtensible(o) // => false: теперь он нерасширяемый

См. также

Object.isFrozen(), Object.isSealed(), Object.preventExtensions(), раздел 6.8.3

Object.isFrOZen() (ECMAScript 5)

объект является неизменяемым?

Синтаксис

Object.isFrozen(o)

Аргументы

о Проверяемый объект.

Возвращаемое значение

true, если объект о является зафиксированным и неизменяемым, и false - если нет.

Описание

Объект считается зафиксированным, если все его неунаследованные свойства (кроме свойств с методами записи) доступны только для чтения и он является нерасширяемым. Объект считается нерасширяемым, если в него нельзя добавить новые (неунаследованные) свойства и из него нельзя удалить имеющиеся (неунаследованные) свойства. Функция Object.isFrozen() проверяет, является ли ее аргумент зафиксированным объектом или нет. Зафиксированный объект нельзя расфиксировать.

Обычно фиксация объектов выполняется с помощью функции Object.freeze(). Однако зафиксировать объект можно также с помощью функции Object.preventExtensions() с последующим вызовом Object.defineProperty(), чтобы сделать все свойства объекта неудаляемыми и доступными только для чтения.

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

См. также

Object.defineProperty(), Object.freeze(), Object.isExtensible(), Object.isSealed(), Object. preventExtensions(), Object.seal(), раздел 6.8.3

Object.isPrototypeOf()

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

Синтаксис

объект.isPrototypeOf(о)

Аргументы

о Любой объект.

Возвращаемое значение

Возвращает true, если объект является прототипом объекта о. Возвращает false, если о не является объектом или если данный объект не является прототипом объекта о.

Описание

Как объяснялось в главе 9, объекты в языке JavaScript наследуют свойства от своих объектов-прототипов. К прототипу объекта можно обращаться с помощью свойства prototype функции-конструктора, которая использовалась для создания и инициализации объекта. Метод isPrototypeOf() позволяет определить, является ли один объект прототипом другого. Этот прием может применяться для определения класса объекта.

Пример

var о = new Object(): // Создать объект

Object.prototype.isPrototypeOf(о) //true: о - объект

Function.prototype.isPrototypeOf(o.toString); // true: toString - функция

Array.prototype.isPrototypeOf([1,2,3]): // true: [1,2,3] - массив

// Ту же проверку можно выполнить другим способом

(о.constructor == Object): // true: о создан с помощью конструктора

Object() (о.toString.constructor == Function): // true: о.toString - функция

// Объекты-прототипы сами имеют прототипы. Следующий вызов вернет true, показывая, что

// объекты-функции наследуют свойства от Function.prototype, а также от Object.prototype.

Object.prototype.isPrototypeOf(Function.prototype):

См. также

Function.prototype, Object.constructor; глава 9

Object.isSealed() (ECMAScript 5)

возможно ли добавлять в объект новые и удалять существующие свойства?

Синтаксис

Object.isSealed(o)

Аргументы

о Проверяемый объект.

Возвращаемое значение

true, если объект о является нерасширяемым, с недоступными для настройки свойствами, и false - если нет.

Описание

Объект считается нерасширяемым, с недоступными для настройки свойствами, если в него нельзя добавить новые (неунаследованные) свойства и нельзя удалить существующие (неунаследованные) свойства. Функция Object.isSealed() проверяет, является ли ее аргумент нерасширяемым объектом, с недоступными для настройки свойствами, или нет. Недоступные для настройки свойства нельзя вновь сделать настраиваемыми. Обычно такие объекты получают с помощью функции Object.seal() или Object.freeze(). Однако того же эффекта можно добиться с помощью функции Object.preventExtensions(), с последующим вызовом Object.defineProperty(), чтобы сделать все свойства объекта неудаляемыми.

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

См. также

Object.defineProperty(), Object.freeze(), Object.isExtensible(), Object.isFrozen(), Object. preventExtensions(), Object.seal(), раздел 6.8.3

Object.keys() (ECMAScript 5)

возвращает имена собственных перечислимых свойств

Синтаксис

Object.keys(o)

Аргументы

о Объект.

Возвращаемое значение

Массив, содержащий имена всех перечислимых (неунаследованных) свойств объекта о.

Описание

Функция Object.keys() возвращает массив с именами свойств объекта о. Массив включает только имена свойств, которые являются перечислимыми и определены непосредственно в объекте о: унаследованные свойства не включаются. (Для получения имен неперечислимых свойств можно использовать функцию Object.getOwnPropertyNames(). ) Свойства в массиве следуют в том же порядке, в каком они перечисляются циклом for/in .

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

Пример

Object.keys({х:1, у:2}) // => [”х", "у"]

См. также

Object.getOwnPropertyNames(), разделы 5.5.4, 6.5

Object.preventExtensions() (ECMAScript 5)

предотвращает добавление в объект новых свойств

Синтаксис

Object.preventExtensions(o)

Аргументы

о Объект, который должен иметь расширяемый набор атрибутов.

Возвращаемое значение

Объект о с аргументами.

Описание

Функция Object.preventExtensions() присваивает значение false атрибуту extensible объекта о, вследствие чего в него нельзя будет добавлять новые свойства. Действие этой функции необратимо: нерасширяемый объект нельзя вновь сделать расширяемым.

Следует отметить, что Object.preventExtensions() не воздействует на цепочку прототипов, и нерасширяемый объект все еще можно расширить новыми наследуемыми свойствами.

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

См. также

Object.freeze(), Object.isExtensible(), Object.seal(), раздел 6.8.3

Object.propertyIsEnumerable()

проверяет, будет ли свойство видимо для цикла for/in

Синтаксис

объект.propertyIsEnumerable(имя_свойства)

Аргументы

имя_свойства Строка, содержащая имя свойства объекта.

Возвращаемое значение

Возвращает true, если у объекта есть неунаследованное свойство с именем, указанным в аргументе имя_свойства, и если это свойство «перечислимое», т.е. оно может быть перечислено циклом for/in для объекта.

Описание

Инструкция for/in выполняет цикл по «перечислимым» свойствам объекта. Однако не все свойства объекта являются перечислимыми: свойства, добавленные в объект программным способом, перечислимы, а предопределенные свойства (например, методы) встроенных объектов обычно неперечислимы. Метод propertyIsEnumerable() позволяет установить различия между перечислимыми и неперечислимыми свойствами. Однако следует заметить: спецификация ECMAScript утверждает, что propertyIsEnumerable() не проверяет цепочку прототипов, т.е. этот метод годится только для локальных свойств объекта и не предоставляет способа для проверки перечисляемости унаследованных свойств.

Пример

var о = new Object(); // Создать объект

о.х = 3.14; // Определить свойство

о.propertyIsEnumerable(”х"); // true: х - локальное и перечислимое

о.propertyIsEnumerable("у"); // false о не имеет свойства у

о.propertyIsEnumerable("toString"); //false  toString унаследованное свойство

Object.prototype.propertyIsEnumerable("toString“); // false: неперечислимое

См. также

Function.prototype, Object.hasOwnProperty(); глава 6

Object.seal() (ECMAScript 5)

предотвращает добавление и удаление свойств

Синтаксис

Object.seal(o)

Аргументы

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

Возвращаемое значение

Объект в аргументе о.

Описание

Функция Object.seal() делает объект о нерасширяемым (Object.preventExtensions() ), а все его собственные свойства - ненастраиваемыми. Это предотвращает добваление новых свойств и удаление существующих. Действие этой функции необратимо: нерасширяемый объект с ненастраиваемыми свойствами нельзя вновь сделать расширяемым объектом.

Имейте в виду, что Object.seal() не делает свойства объекта доступными только для чтения; используйте для этого функцию Object.freeze(). Отметьте также, что Object.seal() не воздействует на унаследованные свойства. Если в цепочке прототипов объекта, обработанного функцией Object.seal(), имеется расширяемый и настраиваемый объект, тогда имеется возможность добавлять и удалять наследуемые им свойства.

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

См. также

Object.defineProperty(), Object.freeze(), Object.isSealed(), Object.preventExtensions(), раздел 6.8.3

Object.toLocaleString()

возвращает локализованное строковое представление объекта

Синтаксис

объект.toLocaleString()

Возвращаемое значение

Строковое представление объекта.

Описание

Этот метод предназначен для получения строкового представления объекта, локализованного в соответствии с текущими региональными настройками. Метод toLocaleString(), предоставляемый по умолчанию классом Object , просто вызывает метод toString() и возвращает полученную от него нелокализованную строку. Однако обратите внимание, что другие классы, в том числе Array , Date и Number , определяют собственные версии этого метода для локализованного преобразования в строку. Вы также можете переопределить этот метод собственными классами.

См. также

Array.toLocaleString(), Date.toLocaleString(), Number.toLocaleString(), Object.toString()

Object.toString()

возвращает строковое представление объекта

Синтаксис

объект.toString()

Возвращаемое значение

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

Описание

Метод toString() относится к тем, которые обычно не вызываются явно в JavaScript-программах. Программист определяет этот метод в своих объектах, а система вызывает метод, когда требуется преобразовать объект в строку.

JavaScript вызывает метод toString() для преобразования объекта в строку всякий раз, когда объект используется в строковом контексте. Например, если объект преобразуется в строку при передаче в функцию, требующую строкового аргумента:

alert(my_object);

Подобным же образом объекты преобразуются в строки, когда они конкатенируются со строками с помощью оператора +:

var msg = 'Мой объект: ' + my_object;

Метод toString() вызывается без аргументов и должен возвращать строку. Чтобы от возвращаемой строки была какая-то польза, эта строка должна каким-либо образом базироваться на значении объекта, для которого был вызван метод.

Определяя в JavaScript специальный класс, целесообразно определить для него метод toString(). Если этого не сделать, объект наследует метод toString(), определенный по умолчанию в классе Object . Этот стандартный метод возвращает строку в формате:

[objectкласс]

где класс - это класс объекта: значение, такое как «Object», «String», «Number», «Function», «Window», «Document» и т.д. Такое поведение стандартного метода toString() иногда бывает полезно для определения типа или класса неизвестного объекта. Однако большинство объектов имеют собственную версию toString(), поэтому для произвольного объекта о необходимо явно вызывать метод Object.toString(), как показано ниже:

Object.prototype.toString.apply(o);

Обратите внимание, что этот способ идентификации неизвестных объектов годится только для встроенных объектов. Если вы определяете собственный класс объектов, то класс для него будет соответствовать значению «Object». В этом случае дополнительную информацию об объекте позволит получить свойство Object.constructor . Метод toString() может быть очень полезен при отладке JavaScript-программ - он позволяет выводить объекты и видеть их значения. По одной только этой причине есть смысл определять метод toString() для каждого создаваемого вами класса.

Несмотря на то что метод toString() обычно вызывается системой автоматически, бывают случаи, когда его требуется вызвать явно. Например, чтобы выполнить явное преобразование объекта в строку, если JavaScript не делает это автоматически:

у = Math.sqrt(x); // Вычислить число

ystr = у.toString(); // Преобразовать его в строку

Относительно этого примера следует помнить, что числа имеют встроенный метод toString(), обеспечивающий принудительное преобразование.

В других случаях вызов toString() может оказаться полезным - даже в таком контексте, когда JavaScript выполняет преобразование автоматически. Явное использование метода toString() может сделать программный код более понятным:

alert(my_obj. toString());

См. также

Object.constructor), Object.toLocaleString(), Object.valueOf()

Object.valueOf()

элементарное значение указанного объекта

Синтаксис

объект.valueOf()

Возвращаемое значение

Элементарное значение, связанное с объектом, если оно есть. Если с объектом не связано значение, метод возвращает сам объект.

Описание

Метод valueOf() объекта возвращает элементарное значение, связанное с этим объектом, если оно есть. Для объектов типа Object элементарное значение отсутствует, и метод такого объекта возвращает сам объект.

Однако для объектов типа Number метод valueOf() возвращает элементарное числовое значение, представляемое объектом. Аналогично он возвращает элементарное логическое значение, связанное с объектом Boolean , или строку, связанную с объектом String .

Программисту редко приходится явно вызывать метод valueOf(). Интерпретатор JavaScript делает это автоматически всякий раз, когда встречает объект там, где ожидается элементарное значение. Из-за автоматического вызова метода valueOf() фактически трудно даже провести различие между элементарными значениями и соответствующими им объектами. Оператор typeof , например, показывает различие между строками и объектами String , но с практической точки зрения они работают в JavaScript-коде эквивалентным образом.

Метод valueOf() объектов Number, Boolean и String преобразует эти объекты-обертки в представляемые ими элементарные значения. Конструктор Object() выполняет противоположную операцию при вызове с числовым, логическим или строковым аргументом: он «заворачивает» элементарное значение в соответствующий объект-обертку. В большинстве случаев JavaScript берет это преобразование «элементарное значение - объект» на себя, поэтому необходимость в таком вызове конструктора Object() возникает редко.

Иногда программисту требуется определить специальный метод valueOf() для собственных объектов. Например, определить объектный JavaScript-тип для представления комплексных чисел (вещественное число плюс мнимое число). Как часть этого объектного типа, можно определить методы для выполнения комплексного сложения, умножения и т.д. Еще может потребоваться возможность рассматривать комплексные числа как обычные вещественные путем отбрасывания мнимой части. Для этого можно сделать примерно следующее:

Complex.prototype.valueOf = new Function("return this.real");

Определив метод valueOf() для собственного объектного типа Complex, можно, например, передавать объекты комплексных чисел в функцию Math.sqrt(), которая вычислит квадратный корень из вещественной части комплексного числа.

См. также

Object. toString()

parseFloat()

преобразует строку в число

Синтаксис

parseFloat(s)

Аргументы

s Строка для синтаксического разбора, которая должна быть преобразована в число.

Возвращаемое значение

Возвращает выделенное из строки число или NaN, если s не начинается с допустимого числа. В JavaScript 1.0, если строка s не может быть преобразована в число, parseFloat() возвращает 0 вместо NaN.

Описание

Функция parseFloat() выполняет синтаксический разбор строки и возвращает первое число, найденное в s. Разбор прекращается и значение возвращается, когда parseFloat() встречает в s символ, который не является допустимой частью числа. Если s не начинается с числа, которое parseFloat() может разобрать, функция возвращает значение NaN. Проверка на это возвращаемое значение выполняется функцией isNaN(). Чтобы выделить только целую часть числа, используется функция parseInt(), а не parseFloat().

См. также

isNaN(), parseInt()

parseInt()

преобразует строку в целое число

Синтаксис

parseInt(s)

parseInt(s, основание)

Аргументы

s

Строка для синтаксического разбора.

основание

Необязательный целочисленный аргумент, представляющий основание системы счисления анализируемого числа. Если этот аргумент отсутствует или равен 0, извлекается десятичное или шестнадцатеричное (если число начинается с префикса «0х» или «0Х») число. Если этот аргумент меньше 2 или больше 36, parseInt() возвращает NaN.

Возвращаемое значение

Возвращается извлекаемое число (NaN, если s не начинается с корректного целого). В JavaScript 1.0, если невозможно выполнить синтаксический разбор строки s, parseInt() возвращает 0 вместо NaN.

Описание

Функция parseInt() выполняет синтаксический разбор строки s и возвращает первое число (с необязательным начальным знаком «минус»), найденное в s. Разбор останавливается и значение возвращается, когда parseInt() встречает в s символ, не являющийся допустимой цифрой для указанного основания. Если s не начинается с числа, которое может быть проанализировано функцией parseInt(), функция возвращает значение NaN. Проверка на это возвращаемое значение выполняется функцией isNaN(). Аргумент основание задает основание извлекаемого числа. При основании, равном 10, parseInt() извлекает десятичное число. Если этот аргумент равен 8, то извлекается восьмеричное число (состоящее из цифр от 0 до 7), а если 16 - шестнадцатеричное (цифры от 0 до 9 и буквы от А до F). Аргумент основание может быть любым числом от 2 до 36.

Если основание равно 0 или не указано, parseInt() пытается определить систему счисления по строке s. Если s начинается (после необязательного знака «минус») с префикса «Ох», parseInt() разбирает оставшуюся часть s как шестнадцатеричное число. Во всех остальных случаях parseInt() разбирает строку как десятичное число.

Пример

parseInt("19", 10); // Вернет 19 (10 + 9)

parseInt("11", 2);  // Вернет 3 (2 + 1)

parseInt("17", 8); // Вернет 15 (8 + 7)

parseInt("1f", 16); // Вернет 31 (16 + 15)

parseInt("10");  // Вернет 10

parseInt("0x10");  // Вернет 16

См. также

isNaN(), parseFloat()

 

RangeError

RangeError

генерируется, когда число выходит из допустимого диапазона (Object->Error->RangeError)

Конструктор

new RangeError()

new RangeError(сообщение)

Аргументы

сообщение Необязательное сообщение об ошибке, предоставляющее дополнительную информацию об исключении. Если этот аргумент указан, он используется в качестве значения свойства message объекта RangeError .

Возвращаемое значение

Вновь созданный объект RangeError . Если указан аргумент сообщение, то для объекта RangeError он будет выступать в качестве значения свойства message ; в противном случае RangeError возьмет в качестве значения этого свойства строку по умолчанию, определенную в реализации. Конструктор RangeError(), вызываемый как функция (без оператора new ), ведет себя так же, как и при вызове с оператором new .

Свойства

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

name Строка, определяющая тип исключения. Все объекты RangeError наследуют для этого свойства строку «RangeError».

Описание

Экземпляр класса RangeError создается, когда числовое значение оказывается вне допустимого диапазона. Например, установка длины массива равной отрицательному числу приводит к генерации исключения RangeError . Дополнительные сведения о генерации и перехвате исключений см. в справочной статье Error.

См. также

Error, Error.message, Error.name

 

ReferenceError

ReferenceError

генерируется при попытке чтения несуществующей переменной (Object—>Error—>ReferenceError)

Конструктор

new ReferenceError()

new ReferenceError(сообщение)

Аргументы

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

Возвращаемое значение

Вновь созданный объект ReferenceError . Если указан аргумент сообщение, объект ReferenceError берет его в качестве значения своего свойства message ; в противном случае он берет строку по умолчанию, определенную в реализации. Конструктор Reference-Error(), вызываемый как функция (без оператора new ), ведет себя так же, как при вызове с оператором new .

Свойства

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

name Строка, определяющая тип исключения. Все объекты ReferenceError наследуют для этого свойства строку «ReferenceError».

Описание

Экземпляр класса ReferenceError создается при попытке прочитать значение несуществующей переменной. Дополнительные сведения о генерации и перехвате исключений см. в справочной статье Error.

См. также

Error, Error.message, Error.name

 

RegExp

RegExp

регулярные выражения для поиска по шаблону (Object-» RegExp)

Синтаксис литерала

/маска/атрибуты

Конструктор

new RegExp(шаблон, атрибуты)

Аргументы

шаблон Строка, задающая шаблон регулярного выражения или другое регулярное выражение.

атрибуты Необязательная строка, содержащая любые из атрибутов «g», «і» и «т», задающих глобальный, нечувствительный к регистру и многострочный поиск, соответственно. До выхода стандарта ECMAScript атрибут «m» не был доступен. Если аргумент шаблон - это регулярное выражение, а не строка, аргумент атрибуты может отсутствовать.

Возвращаемое значение

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

Исключения

SyntaxError Генерируется, если шаблон не является допустимым регулярным выражением или если аргумент атрибуты содержит символы, отличные от «g», «і» и «т».

ТуреЕrror Генерируется, если шаблон - это объект RegExp и аргумент атрибуты не

опущен.

Свойства экземпляра

global      Признак присутствия в RegExp атрибута «g».

ignoreCase  Признак присутствия в RegExp атрибута «і».

lastlndex   Позиция символа при последнем обнаружении соответствия;

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

multiline   Признак присутствия в RegExp атрибута «m».

source      Исходный текст регулярного выражения.

Методы

ехес()  Выполняет мощный универсальный поиск по шаблону,

test () Проверяет, содержит ли строка данный шаблон.

Описание

Объект RegExp представляет регулярное выражение - мощное средство для поиска в строках по шаблону. Синтаксис и применение регулярных выражений полностью описаны в главе 10.

См. также

Глава 10

RegExp.exec()

универсальный поиск по шаблону

Синтаксис

regexp.exec (строка)

Аргументы

строка Строка, в которой выполняется поиск.

Возвращаемое значение

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

Исключения

ТуреЕrror Генерируется, если метод вызывается для объекта, не являющегося объектом RegExp .

Описание

Метод ехес() - наиболее мощный из всех методов объектов RegExp и String для поиска по шаблону. Это универсальный метод, использовать который несколько сложнее, чем методы RegExp.test(), String.search(), String.replace() и String.match().

Метод exec() ищет в строке текст, соответствующий выражению regexp . И если находит, то возвращает массив результатов; в противном случае возвращается значение null. Элемент 0 полученного массива представляет собою искомый текст. Элемент 1 - это текст, соответствующий первому подвыражению в скобках внутри regexp , если оно есть. Элемент 2 соответствует второму подвыражению и т. д. Свойство length массива, как обычно, определяет количество элементов в массиве. В дополнение к элементам массива и свойству length значение, возвращаемое ехес(), имеет еще два свойства. Свойство index указывает позицию первого символа искомого текста. Свойство input ссылается на строку. Этот возвращаемый массив совпадает с массивом, возвращаемым методом String.match(), когда он вызывается для неглобального объекта RegExp .

Когда метод ехес() вызывается для неглобального шаблона, он выполняет поиск и возвращает описанный выше результат. Однако если regexp - глобальное регулярное выражение, ехес() ведет себя несколько сложнее. Он начинает поиск в строке с символьной позиции, заданной свойством regexp.lastlndex . Найдя соответствие, метод устанавливает свойство lastIndex равным позиции первого символа после найденного соответствия. Это значит, что ехес() можно вызвать несколько раз, чтобы выполнить цикл по всем соответствиям в строке. Если метод ехес() больше не находит соответствий, он возвращает значение null и сбрасывает свойство lastlndex в ноль. Начиная поиск непосредственно после успешного нахождения соответствия в другой строке, необходимо соблюдать внимательность и вручную установить свойство lastlndex равным нулю. Обратите внимание: ехес() всегда включает полную информацию для найденного соответствия в возвращаемый им массив независимо от того, является regexp глобальным шаблоном или нет. Этим ехес() отличается от метода String.match() , который возвращает намного меньше информации при работе с глобальными шаблонами. Вызов ехес() в цикле - единственный способ получить полную информацию о результатах поиска для глобального шаблона.

Пример

Для нахождения всех соответствий в строке метод ехес() можно вызывать в цикле:

var pattern = /\bJava\w*\b/g;

var text = "JavaScript is more fun than Java or JavaBeans!";

var result;

while((result = pattern.exec(text)) != null) {

  alert("Matched ‘" + result[0] +

    at position " + result.index +

    next search begins at position " + pattern.lastlndex);

}

См. также

RegExp.lastlndex, RegExp.test(), String.match(), String.replace(), String.search(); глава 10

RegExp.global

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

Синтаксис

regexp.global

Описание

global - это логическое свойство объектов RegExp доступное только для чтения. Оно указывает, выполняет ли данное регулярное выражение глобальный поиск, т.е. было-ли оно создано с атрибутом «g».

RegExp.ignoreCase

чувствительно ли регулярное выражение к регистру

Синтаксис

regexp.ignoreCase

Описание

ignoreCase - это логическое свойство объектов RegExp , доступное только для чтения. Оно указывает, выполняет ли данное регулярное выражение поиск без учета регистра, т. е. было ли оно создано с атрибутом «і».

RegExp.lastlndex

начальная позиция следующего поиска

Синтаксис

regexp.lastlndex

Описание

lastlndex - это доступное для чтения и записи свойство объектов RegExp . Для регулярных выражений с установленным атрибутом «g» оно содержит целое, указывающее позицию в строке символа, который следует непосредственно за последним соответствием, найденным с помощью методов RegExp.ехес() и RegExp.test(). Эти методы используют данное свойство в качестве начальной точки при следующем поиске. Благодаря этому данные методы можно вызывать повторно для выполнения цикла по всем соответствиям в строке. Обратите внимание: lastlndex не используется объектами RegExp , не имеющими атрибута «g» и не представляющими собой глобальные шаблоны.

Это свойство доступно для чтения и для записи, поэтому можно установить его в любой момент, чтобы указать, где в целевой строке должен быть начат следующий поиск. Методы ехес() и test() автоматически сбрасывают свойство lastlndex в 0, когда не могут найти какого-либо (или следующего) соответствия. Начиная поиск в новой строке после успешного поиска в предыдущей, необходимо явно установить это свойство равным 0.

См. также

RegExp.ехес(), RegExp.test()

RegExp.source

текст регулярного выражения

Синтаксис

regexp.source

Описание

source - доступное только для чтения строковое свойство объектов RegExp , содержащее текст шаблона RegExp . Текст не включает ограничивающие символы слэша, используемые в литералах регулярных выражений, а также не включает атрибуты «g», «і» и «m».

RegExp.test()

проверяет, соответствует ли строка шаблону

Синтаксис

regexp.test(строка)

Аргументы

строка Проверяемая строка.

Возвращаемое значение

Возвращает true, если строка содержит текст, соответствующий regexp , и false - в противном случае.

Исключения

ТуреЕrror Генерируется, если метод вызывается для объекта, не являющегося

объектом RegExp .

Описание

Метод test() проверяет строку, чтобы увидеть, содержит ли она текст, который соответствует regexp . Если да, он возвращает true, в противном случае - false. Вызов метода test() для регулярного выражения и передача ему строки s эквивалентны следующему выражению:

(r.exec(s) != null)

Пример

var pattern = /java/і;

pattern.test("JavaScript"); // Вернет true

pattern.test("ECMAScript"); // Вернет false

См. также

RegExp.exec(), RegExp.lastlndex, String.match(), String.replace(), String.substring(); глава 10

RegExp.toString()

преобразует регулярное выражение в строку (переопределяет Object.toString())

Синтаксис

regexp.toString()

Возвращаемое значение

Строковое представление regexp.

Исключения

ТуреЕrror Генерируется, если метод вызывается для объекта, который не явля

ется объектом RegExp .

Описание

Метод RegExp.toString() возвращает строковое представление регулярного выражения в форме литерала регулярного выражения.

Обратите внимание: от реализаций не требуется обязательного добавления управляющих последовательностей, гарантирующих, что возвращаемая строка будет корректным литералом регулярных выражений. Рассмотрим регулярное выражение, созданное с помощью конструкции new RegExp("/". "g") . Реализация RegExp.toString() может вернуть для регулярного выражения ///g либо добавить управляющую последовательность и вернуть /\//g .

 

String

String

поддержка строк (Object->String)

Конструктор

new String(s) // Функция-конструктор

String(s)     // Функция преобразования

Аргументы

s Значение, подлежащее сохранению в объекте String или преобразованию в элементарное строковое значение.

Возвращаемое значение

Когда функция String() вызывается в качестве конструктора (с оператором new ), она возвращает объект String , содержащий строку s или строковое представление s. Конструктор String(), вызванный без оператора new, преобразует s в элементарное строковое значение и возвращает преобразованное значение.

Свойства

length     Количество символов в строке.

Методы

charAt()        Извлекает из строки символ, находящийся в указанной позиции.

charCodeAt()    Возвращает код символа, находящегося в указанной позиции.

concat()        Выполняет конкатенацию одного или нескольких значений со строкой.

indexOf()       Выполняет поиск символа или подстроки в строке.

lastlndexOf()   Выполняет поиск символа или подстроки в строке с конца.

localeCompare() Сравнивает строки с учетом порядка следования символов национальных алфавитов.

match()         Выполняет поиск по шаблону с помощью регулярного выражения.

replace()       Выполняет операцию поиска и замены с помощью регулярного выражения.

search()        Ищет в строке подстроку, соответствующую регулярному выражению.

slice()         Возвращает фрагмент строки или подстроку в строке.

split()        Разбивает строку на массив строк по указанной строке-разделителю или регулярному выражению.

substr()        Извлекает подстроку из строки. Аналог метода substring().

substring()     Извлекает подстроку из строки.

toLowerCase()   Возвращает копию строки, в которой все символы переведены в нижний регистр.

toString()      Возвращает элементарное строковое значение.

toUpperCase()   Возвращает копию строки, в которой все символы переведены в верхний регистр.

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

valueOf()       Возвращает элементарное строковое значение.

Статические методы

String.fromCharCode() Создает новую строку, помещая в нее принятые в качестве аргументов коды символов.

HTML-методы

С первых дней создания JavaScript в классе String определено несколько методов, которые возвращают строку, измененную путем добавления к ней HTML-тегов. Эти методы никогда не были стандартизованы в ECMAScript, но они позволяют динамически генерировать разметку HTML и в клиентских, и в серверных сценариях на языке JavaScript. Если вы готовы к использованию нестандартных методов, можете следующим образом создать разметку HTML для гиперссылки, выделенной полужирным шрифтом красного цвета:

var s = "щелкни здесь!";

var html = s.bold().link("JavaScript:alert('hello')").fontcolor("red");

Поскольку эти методы не стандартизованы, для них отсутствуют отдельные справочные статьи:

anchor(имя)        Возвращает копию строки в окружении тега <а name=>.

big()              Возвращает копию строки в окружении тега .

blink()            Возвращает копию строки в окружении тега .

bold()             Возвращает копию строки в окружении тега <Ь>.

fixed()            Возвращает копию строки в окружении тега .

fontcolor(цвет)    Возвращает копию строки в окружении тега .

fontsize(paзмер)   Возвращает копию строки в окружении тега .

italics()          Возвращает копию строки в окружении тега .

link (url)         Возвращает копию строки в окружении тега <а href=>.

small()            Возвращает копию строки в окружении тега .

strike()           Возвращает копию строки в окружении тега .

sub()              Возвращает копию строки в окружении тега .

sup()              Возвращает копию строки в окружении тега .

Описание

Строки - это элементарный тип данных в JavaScript. Класс String предоставляет методы для работы с элементарными строковыми значениями. Свойство length объекта String указывает количество символов в строке. Класс String определяет немало методов для работы со строками. Например, имеются методы для извлечения символа или подстроки из строки или для поиска символа или подстроки. Обратите внимание: строки JavaScript не изменяются - ни один из методов, определенных в классе String , не позволяет изменять содержимое строки. Зато методы, подобные String.toUpperCase(), возвращают абсолютно новую строку, не изменяя исходную.

В ECMAScript 5 и во многих реализациях JavaScript, вышедших до ES5, строки ведут себя как массивы символов, доступные только для чтения. Например, чтобы извлечь третий символ из строки s, можно написать s[2] вместо s.charAt(2) . Кроме того, инструкция for/in , примененная к строке, позволяет перечислить индексы массива для каждого символа в строке.

См. также

Глава 3

String.charAt()

возвращает n-й символ строки

Синтаксис

строкаюсharAt(n)

Аргументы

n Индекс символа, который должен быть извлечен из строки.

Возвращаемое значение

n-й символ строки.

Описание

Метод String.charAt() возвращает n-й символ строки. Номер первого символа в строке равен нулю. Если n не находится между 0 и строка, length-1, этот метод возвращает пустую строку. Обратите внимание: в JavaScript нет символьного типа данных, отличного от строкового, поэтому извлеченный символ представляет собой строку длиной 1.

См. также

String.charCodeAt(), String.indexOf(), String.lastlndexOf()

String.charCodeAt()

возвращает код n-го символа строки

Синтаксис

строка.сhаrCodeAt(n)

Аргументы

n Индекс символа, код которого должен быть получен.

Возвращаемое значение

Код Юникода n-го символа в строке - 16-разрядное целое между 0 и 65 535.

Описание

Метод charCodeAt() аналогичен методу charAt(), за исключением того, что возвращает код символа, находящегося в определенной позиции, а не подстроку, содержащую сам символ. Если значение n отрицательно либо меньше или равно длине строки, charCodeAt() возвращает NaN.

Создание строки по коду Юникода символа описано в справочной статье String.fromCharCode() .

См. также

String.charAt(), String.fromCharCode()

String.concat()

объединяет строки

Синтаксис

строка.concat(значение, ...)

Аргументы

значение, Одно или более значений, объединяемых со строкой.

Возвращаемое значение

Новая строка, полученная при объединении всех аргументов со строкой.

Описание

concat() преобразует все свои аргументы в строки (если это нужно) и добавляет их по порядку в конец строки. Возвращает полученную объединенную строку. Обратите внимание: сама строка при этом не изменяется.

Метод String.concat() представляет собой аналог метода Array.concat(). Следует отметить, что конкатенацию строк часто проще выполнить с помощью оператора + .

См. также

Array. concat()

String.fromCharCode()

создает строку из кодов символов

Синтаксис

String.fromCharCodе(с1, с2, ...)

Аргументы

с1, с2, ... Ноль или более целых значений, определяющих коды Юникода для символов создаваемой строки.

Возвращаемое значение

Новая строка, содержащая символы с указанными кодами.

Описание

Этот статический метод обеспечивает создание строки из отдельных числовых кодов Юникода ее символов, заданных в качестве аргументов. Следует заметить, что статический метод fromCharCode() является свойством конструктора String() и фактически не является строковым методом или методом объектов String .

Парным для описываемого метода является метод экземпляра String.charCodeAt(), который служит для получения кодов отдельных символов строки.

Пример

// Создать строку "hello"

var s = String.fromCharCode(104, 101, 108, 108, 111);

См. также

String.charCodeAt()

String.indexOf()

поиск подстроки в строке

Синтаксис

строка.indexOf (подстрока)

строка.indexOf (подстрока, начало)

Аргументы

подстрока Подстрока, которая должна быть найдена в строке.

начало Необязательный целый аргумент, задающий позицию в строке, с которой следует начать поиск. Допустимые значения от 0 (позиция первого символа в строке) до строка.length-1 (позиция последнего символа в строке). Если этот аргумент отсутствует, поиск начинается с первого символа строки.

Возвращаемое значение

Позиция первого вхождения подстроки в строку, начиная с позиции начало, если подстрока найдена, или -1, если не найдена.

Описание

String.indexOf() выполняет поиск в строке от начала к концу, чтобы увидеть, содержит ли она искомую подстроку. Поиск начинается с позиции начало в строке или с начала строки, если аргумент начало не указан. Если подстрока найдена, String.indexOf() возвращает позицию первого символа первого вхождения подстроки в строку. Позиции символов в строке нумеруются с нуля.

Если подстрока в строке не найдена, String.indexOf() возвращает -1.

См. также

String.charAt(), String.lastlndexOf(), String.substring()

String.lastlndexOf()

поиск подстроки в строке, начиная с конца

Синтаксис

строка.lastlndexOf(подстрока)

строка.lastlndexOf(подстрока, начало)

Аргументы

подстрока Подстрока, которая должна быть найдена в строке.

начало Необязательный целый аргумент, задающий позицию в строке, с которой следует начать поиск. Допустимые значения: от 0 (позиция первого символа в строке) до строка.length-1 (позиция последнего символа в строке). Если этот аргумент отсутствует, поиск начинается с последнего символа строки.

Возвращаемое значение

Позиция последнего вхождения подстроки в строку, начиная с позиции начало, если подстрока найдена, или -1, если такое вхождение не найдено.

Описание

String.lastlndexOf() просматривает строку от конца к началу, чтобы увидеть, содержит ли она подстроку. Поиск выполняется с позиции начало внутри строки или с конца строки, если аргумент начало не указан. Если подстрока найдена, String.lastlndexOf() возвращает позицию первого символа этого вхождения. Метод выполняет поиск от конца к началу, поэтому первое найденное вхождение является последним в строке, расположенным до позиции начало.

Если подстрока не найдена, String.lastlndexOf() возвращает -1.

Обратите внимание: хотя метод String.lastlndexOf() ищет строку от конца к началу, он все равно нумерует позиции символов в строке с начала. Первый символ строки занимает позицию с номером 0, а последний - строка.length-1 .

См. также

String.charAt(), String.indexOf(), String.substring()

String.length

длина строки

Синтаксис

строка.length

Описание

Свойство String.length - это доступное только для чтения целое, указывающее количество символов в строке. Для любой строки s индекс последнего символа равен s.length-1 . Свойство length строки не перечисляется циклом for/in и не может быть удалено с помощью оператора delete .

String.localeCompare()

сравнивает строки с учетом порядка следования символов национальных алфавитов

Синтаксис

строка.lоса1еСоmраге(целевая_строка)

Аргументы

целевая_строка

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

Возвращаемое значение

Число, обозначающее результат сравнения. Если строка «меньше» целевой_строки, localeCompare() возвращает отрицательное число. Если строка «больше» целевой_строки,метод возвращает положительное число. Если строки идентичны или неразличимы в соответствии с региональными соглашениями о сортировке, метод возвращает 0.

Описание

Когда к строкам применяются операторы < и > , сравнение выполняется только по кодам Юникода этих символов; порядок сортировки, принятый в текущем регионе, не учитывается. Сортировка, выполняемая подобным образом, не всегда оказывается верной. Возьмем, например, испанский язык, в котором буквы «ch» традиционно сортируются как одна буква, расположенная между буквами «с» и «d».

Метод localeCompare() служит для сравнения строк с учетом порядка сортировки, по умолчанию определяемого региональными настройками. Стандарт ECMAScript не определяет, как должно выполняться сравнение с учетом региона; в нем просто указано, что эта функция руководствуется порядком сортировки, определенным операционной системой.

Пример

Отсортировать массив строк в порядке, учитывающем региональные параметры, можно следующим образом:

var strings; // Сортируемый массив строк; инициализируется в другом месте

strings.sort(function(a,b) { return a.localeCompare(b) });

String.match()

находит одно или более соответствий регулярному выражению

Синтаксис

строка.match(regexp)

Аргументы

regexp Объект RegExp , задающий шаблон для поиска. Если этот аргумент не является объектом RegExp , он сначала преобразуется с помощью конструктора RegExp() .

Возвращаемое значение

Массив, содержащий результаты поиска. Содержимое массива зависит от того, установлен ли в regexp глобальный атрибут «g». Далее это возвращаемое значение описано подробно.

Описание

Метод match() ищет в строке соответствия шаблону, определяемому выражением regexp. Поведение этого метода существенно зависит от того, установлен атрибут «g» в regexp или нет (регулярные выражения подробно рассмотрены в главе 10).

Если в regexp нет атрибута «g», match() ищет одно соответствие в строке. Если соответствие не найдено, match() возвращает null. В противном случае метод возвращает массив, содержащий информацию о найденном соответствии. Элемент массива с индексом 0 содержит найденный текст. Оставшиеся элементы содержат текст, соответствующий всем подвыражениям внутри регулярного выражения. В дополнение к этим обычным элементам массива возвращаемый массив имеет еще два объектных свойства. Свойство index массива указывает позицию начала найденного текста внутри строки. Кроме того, свойство input возвращаемого массива содержит ссылку на саму строку. Если в regexp установлен флаг «g», match() выполняет глобальный поиск, находя в строке все соответствующие подстроки. Метод возвращает null, если соответствие не найдено, или массив, если найдено одно и более соответствий. Однако содержимое полученного массива при глобальном поиске существенно отличается. В этом случае элементы массива содержат все подстроки, найденные в строке, а сам массив не имеет свойств index и input . Обратите внимание: для глобального поиска match() не предоставляет информации о подвыражениях в скобках и не указывает, в каком месте строки было найдено каждое из соответствий. Эту информацию для глобального поиска можно получить методом RegExp.ехес().

Пример

Следующий фрагмент реализует глобальный поиск и находит все числа в строке:

"1 plus 2 equals 3".match(/\d+/g) // Вернет ["1", "2", "3”]

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

var url = /(\w+):\/\/([\w.]+)\/(\S*)/;

var text = "Visit my home page at http://www.isp.com/~david ";

var result = text.match(url);

if (result != null) {

  var fullurl = result[0];  // Содержит " http://www.isp.com/~david”

  var protocol = result[1]; // Содержит "http"

  var host = result[2];      // Содержит " www.isp.com "

  var path = result[3];     // Содержит "~david"

}

См. также

RegExp, RegExp.ехес(), RegExp.test(), String.replace(), String.search(); глава 10

String.replace()

заменяет подстроку (подстроки), соответствующую регулярному выражению

Синтаксис

строка.replace(regexp, замена)

Аргументы

regexp Объект RegExp , определяющий шаблон заменяемой подстроки. Если этот аргумент представляет собой строку, то она выступает в качестве текстового шаблона для поиска и не преобразуется в объект RegExp .

замена Строка, определяющая текст замены, или функция, вызываемая для генерации текста замены. Подробности см. в подразделе «Описание».

Возвращаемое значение

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

Описание

Метод replace() выполняет операцию поиска и замены для строки. Он ищет в строке одну или несколько подстрок, соответствующих регулярному выражению regexp, и заменяет их значением аргумента замена. Если в regexp указан глобальный атрибут «g», replace() заменяет все найденные подстроки. В противном случае метод заменяет только первую найденную подстроку.

Параметр замена может быть либо строкой, либо функцией. Если это строка, то каждое найденное соответствие заменяется указанной строкой. Имейте в виду, что символ $ имеет особый смысл в строке замена. Как показано в следующей таблице, он показывает, что для замены используется строка, производная от найденного соответствия.

В стандарте ECMAScript v3 определено, что аргумент замена метода replace() может быть функцией, а не строкой. В этом случае функция будет вызываться для каждого найденного соответствия, а возвращаемая ею строка будет использоваться в качестве текста для замены. Первый аргумент, передаваемый функции, представляет собой строку, соответствующую шаблону. Следующие за ним аргументы - это строки, соответствующие любым подвыражениям внутри шаблона. Таких аргументов может быть ноль или более. Следующий аргумент - это целое, указывающее позицию внутри строки, в которой было найдено соответствие, а последний аргумент функции замена - это сама строка.

Пример

Обеспечение правильного регистра букв в слове «JavaScript»:

text.replace(/JavaScript/i, "JavaScript");

Преобразование имени из формата «Doe, John» в формат «John Doe»:

name.replace(/(\w+)\s*,\s*(\w+)/, ”$2 $1");

Замена всех двойных кавычек двумя одинарными закрывающими и двумя одинарными открывающими кавычками:

text. гер1асе(/"([^"]*)"/g, "''$1''");

Перевод первых букв всех слов в строке в верхний регистр:

text.replace(/\b\w+\b/g, function(word) {

              return word.substring(0, 1).toUpperCase() +

              word.substring(l);

}):

См. также

RegExp, RegExp.exec(), RegExp.test(), String.match(), String.search(); глава 10

String.search()

поиск соответствия регулярному выражению

Синтаксис

строка.search(regexp)

Аргументы

regexp Объект RegExp , определяющий шаблон, который будет использоваться для поиска в строке. Если этот аргумент не является объектом RegExp , он сначала преобразуется путем передачи его конструктору RegExp().

Возвращаемое значение

Позиция начала первой подстроки в строке, соответствующей выражению regexp или -1, если соответствие не найдено.

Описание

Метод search() ищет подстроку в строке, соответствующую регулярному выражению regexp, и возвращает позицию первого символа найденной подстроки или -1, если соответствие не найдено.

Метод не выполняет глобального поиска, игнорируя флаг «g». Он также игнорирует свойство regexp.lastlndex и всегда выполняет поиск с начала строки, следовательно, всегда возвращает позицию первого соответствия, найденного в строке.

Пример

var s = "JavaScript is fun";

s.search(/script/i) // Вернет 4

s.search(/a(.)a/) // Вернет 1

См. также

RegExp, RegExp.exec(), RegExp.test(), String.match(), String. replace(); глава 10

String.slice()

извлечение подстроки

Синтаксис

строка.siice(начало, конец)

Аргументы

начало Индекс в строке, с которого должен начинаться фрагмент. Если этот аргумент отрицателен, он обозначает позицию, измеряемую от конца строки. То есть -1 соответствует последнему символу, -2 - второму с конца и т. д.

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

Возвращаемое значение

Новая строка, которая содержит все символы строки, начиная с символа в позиции начало (и включая его) и заканчивая символом в позиции конец (но не включая его).

Описание

Метод slice() возвращает строку, содержащую фрагмент, или подстроку строки, но не изменяет строку.

Методы slice(), substring() и признанный устаревшим метод substr() объекта String возвращают части строки. Метод siice() более гибок, чем substring(), поскольку допускает отрицательные значения аргументов. Метод slice() отличается от substr() тем, что задает подстроку с помощью двух символьных позиций, a substr() использует одно значение позиции и длину. Кроме того, String.slice() является аналогом Array.slice().

Пример

var s = "abcdefg";

s.slice(0,4) // Вернет "abed"

s.slice(2,4) // Вернет "cd"

s.slice(4) // Вернет "efg"

s.slice(3,-1) //Вернет "def"

s.slice(3,-2) //Вернет "de"

s.slice(-3,-1) // Должен вернуть "ef"; в IE 4 возвращает "abedef"

Ошибки

Отрицательные значения в аргументе начало не работают в Internet Explorer 4 (в более поздних версиях Internet Explorer эта ошибка исправлена). Они обозначают не символьную позицию, отсчитываемую от конца строки, а позицию 0.

См. также

Array. slice(), String, substring ()

String.split()

разбивает строку на массив строк

Синтаксис

строка.split(разделитель, лимит)

Аргументы

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

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

Возвращаемое значение

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

Описание

Метод split() создает и возвращает массив подстрок указанной строки, причем размер возвращаемого массива не превышает указанный лимит. Эти подстроки создаются путем поиска текста, соответствующего разделителю, в строке от начала до конца и разбиения строки до и после найденного текста. Ограничивающий текст не включается ни в одну из возвращаемых строк, кроме случая, описываемого далее. Следует отметить, что, если разделитель соответствует началу строки, первый элемент возвращаемого массива будет пустой строкой - текстом, присутствующим перед разделителем. Аналогично, если разделитель соответствует концу строки, последний элемент массива (если это не противоречит значению аргумента лимит) будет пустой строкой.

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

Ранее отмечалось, что подстроки в массиве, возвращаемом описываемым методом, не содержат текст разделителя, использованного для разбиения строки. Однако если разделитель - это регулярное выражение, содержащее подвыражения в скобках, то подстроки, соответствующие этим подвыражениям (но не текст, соответствующий регулярному выражению в целом), включаются в возвращаемый массив.

Метод String.split() является обратным методу Array.join().

Пример

Метод split() наиболее полезен при работе с сильно структурированными строками:

"1:2:3:4:5".split(":");// Вернет ["1","2","3","4”,"5"]

'|а|b|с|”.split("|");  // Вернет ["","а", "b", "с", ""]

Еще одно распространенное применение метода split() состоит в разбиении команд и других подобных строк на слова, разделенные пробелами:

var words = sentence.split(' ');

Проще разбить строку на слова, используя в качестве разделителя регулярное выражение:

var words = sentence.split(/\s+/);

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

"hello".split("");    // Возвращает ["h"."е”,”l”,"l”,"о"]

"hello".split("", 3); // Возвращает ["h","е","1"]

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

var text = "hello world”;

text.split(/(<[''>]*>)/): // Вернет ["hello ", "", "world", "",""]

См. также

Array.join(), RegExp; глава 10

String.substr() (устарел)

извлекает подстроку

Синтаксис

строка.substr(начало, длина)

Аргументы

начало Начальная позиция подстроки. Если аргумент отрицателен, он обозначает позицию, измеряемую от конца строки: -1 обозначает последний символ, -2 -второй символ с конца и т. д.

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

Возвращаемое значение

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

Описание

Метод substr() извлекает и возвращает подстроку строки, но не изменяет строку. Обратите внимание: метод substг() задает нужную подстроку с помощью позиции символа и длины. Благодаря этому появляется удобная альтернатива методам String.substring() и String.splice(), в которых подстрока задается двумя символьными позициями. При этом следует отметить, что метод не стандартизован в ECMAScript и, следовательно, считается устаревшим.

Пример

var s = "abcdefg";

s.substг(2,2); // Вернет "cd"

s.subst г(3); // Вернет "defg"

s.substr(-3,2); // Должен вернуть "ef"; в IE 4 возвращает "ab"

Ошибки

Отрицательные значения аргумента начало не работают в IE 4 (в более поздних версиях IE эта ошибка исправлена). Они задают не позицию символа, отсчитываемую от конца строки, а позицию 0.

См. также

String.slice(), String.substring()

String.substring()

возвращает подстроку строки

Синтаксис

строка.substring(oт, до)

Аргументы

от Целое, задающее позицию первого символа требуемой подстроки внутри строки.

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

Возвращаемое значение

Новая строка длиной до - от, содержащая подстроку строки. Новая строка содержит символы, скопированные из строки, начиная с позиции от и заканчивая позицией до-1.

Описание

Метод String.substring() возвращает подстроку строки, содержащую символы между позициями от и до. Символ в позиции от включается в подстроку, а символ в позиции до не включается.

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

Обратите внимание: для извлечения подстрок из строки также могут использоваться метод String.slice() и нестандартный метод String.substr(). В отличие от этих методов, String.substring() не может принимать отрицательные значения аргументов.

См. также

String.charAt(), String.indexOf(), String.lastlndexOf(), String.slice(), String.substr()

String.toLocaleLowerCase()

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

Синтаксис

строка.toLocaleLowerCase()

Возвращаемое значение

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

См. также

String.toLocalellpperCase(), String.toLowerCase(), String.toUpperCase()

String.toLocaleUpperCase()

преобразует символы строки в верхний регистр

Синтаксис

строка.toLocaleUpperCase()

Возвращаемое значение

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

См. также

String.toLocaleLowerCase(), String.toLowerCase(), String.toUpperCase()

String.toLowerCase()

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

Синтаксис

строка.toLowerCase()

Возвращаемое значение

Копия строки, в которой все символы верхнего регистра преобразованы в эквивалентные им символы нижнего регистра, если такие имеются.

String.toString()

возвращает строку (переопределяет Object.toString())

Синтаксис

строка.toString()

Возвращаемое значение

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

Исключения

ТуреЕrror Генерируется, если метод вызывается для объекта, не являющегося объектом String .

См. также

String.valueOf()

String.toUpperCase()

преобразует символы строки в верхний регистр

Синтаксис

строка.toUpperCase()

Возвращаемое значение

Копия строки, в которой все символы нижнего регистра преобразованы в эквивалентные им символы верхнего регистра, если такие имеются.

String.trim() (ECMAScript 5)

удаляет начальные и конечные пробельные символы

Синтаксис

строка.trim()

Возвращаемое значение

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

См. также

String.replace()

String.valueOf()

возвращает строку (переопределяет Object.valueOf())

Синтаксис

строка.valueOf()

Возвращаемое значение

Элементарное строковое значение строки.

Исключения

ТуреЕrror Генерируется, если метод вызывается для объекта, не являющегося объектом String .

См. также

String.toString()

 

SyntaxError

SyntaxError

свидетельствует о синтаксической ошибке (Object->Error->SyntaxError)

Конструктор

new SyntaxError()

new SyntaxError(сообщение)

Аргументы

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

Возвращаемое значение

Вновь созданный объект SyntaxError . Если указан аргумент сообщение, объект SyntaxError берет его в качестве значения своего свойства message ; в противном случае в качестве значения этого свойства он берет строку по умолчанию, определенную в реализации. Конструктор SyntaxError(), вызванный как функция (без оператора new ), ведет себя так же, как если бы он был вызван с оператором new .

Свойства

message Сообщение об ошибке, предоставляющее дополнительную информацию об исключении. Это свойство содержит строку, переданную конструктору, или строку по умолчанию, определенную в реализации. Подробности см. в справочной статье Error.message .

name Строка, определяющая тип исключения. Все объекты SyntaxError наследуют для этого свойства строку «SyntaxError».

Описание

Экземпляр класса SyntaxError сигнализирует о синтаксической ошибке в программном коде. Метод eval(), а также конструкторы Function() и RegExp() могут генерировать исключения этого типа. Подробности о генерации и перехвате исключений см. в справочной статье Error .

См. также

Error, Error.message, Error.name

 

TypeError

TypeError

генерируется, когда значение имеет неверный тип (Object—> Error—>Ту ре Error)

Конструктор

new TypeError()

new TypeError(сообщение)

Аргументы

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

Возвращаемое значение

Вновь созданный объект TypeError . Если указан аргумент сообщение, объект TypeError берет его в качестве значения своего свойства message ; в противном случае в качестве значения этого свойства он берет строку по умолчанию, определенную в реализации. Конструктор TypeError(), вызванный как функция (без оператора new ), ведет себя так же, как если бы он был вызван с оператором new .

Свойства

messagе Сообщение об ошибке, содержащее дополнительную информацию об исключении. Это свойство содержит строку, переданную конструктору, или строку по умолчанию, определенную в реализации. Подробности см. в справочной статье Error.message .

name Строка, определяющая тип исключения. Все объекты TypeError наследуют для этого свойства строку «TypeError».

Описание

Экземпляр класса TypeError создается, когда значение имеет не тот тип, который ожидается. Такое чаще всего происходит при попытке обратиться к свойству null или к неопределенному значению объекта. Это исключение может также возникнуть, если вызван метод, определенный одним классом, для объекта, являющегося экземпляром какого-либо другого класса, или если оператору new передается значение, не являющееся функцией-конструктором. Реализациям JavaScript также разрешено создавать объекты TypeError , когда встроенная функция или метод вызывается с большим числом аргументов, чем ожидается. Генерация и перехват исключений подробно рассмотрены в справочной статье Error .

См. также

Error, Error.message, Error.name

undefined

неопределенное значение

Синтаксис

undefined

Описание

undefined - это глобальное свойство, хранящее значение undefined. Это то же самое значение, которое возвращается при попытке прочитать значение несуществующего свойства объекта. Свойство undefined не перечисляется циклами for/in и не может быть удалено оператором delete . Однако undefined не является константой и может быть установлено равным любому другому значению, но лучше этого не делать. Чтобы проверить, является ли значение неопределенным (undefined), следует использовать оператор ===, поскольку оператор == считает значение undefined равным значению null.

unescape() (устарело)

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

Синтаксис

unescape(s)

Аргументы

s Декодируемая строка.

Возвращаемое значение

Декодированная копия s.

Описание

unescape() - это глобальная функция, декодирующая строку, закодированную с помощью функции escape(). Декодирование строки s происходит путем поиска и замены последовательности символов в формате %хх и %uхххх (где х - шестнадцатеричная цифра) символами Юникода \u00xx и \uxxxx.

Несмотря на то что функция unescape() была стандартизована в первой версии ЕСМА-Script, она признана устаревшей и исключена из стандарта в спецификации ЕСМА-Script v3. Реализации ECMAScript могут поддерживать эту функцию, но это необязательное требование. Вместо нее следует использовать decodellRI() и decodellRIComponent(). Подробности и пример см. в справочной статье escape().

См. также

decodellRI(), decodellRIComponent(), escape(), String

 

URIError

URIError

генерируется методами кодирования и декодирования URI (Object—>Error—> URIError)

Конструктор

new URIError()

new URIError(сообщение)

Аргументы

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

Возвращаемое значение

Вновь созданный объект URIError . Если указан аргумент сообщение, объект URIError берет его в качестве значения своего свойства message ; в противном случае в качестве значения этого свойства он берет строку по умолчанию, определенную в реализации. Конструктор URIError(), вызванный как функция (без оператора new ), ведет себя так же, как если бы он был вызван с оператором new .

Свойства

message Сообщение об ошибке, предоставляющее дополнительную информацию об исключении. Это свойство содержит строку, переданную конструктору, или строку по умолчанию, определенную в реализации. Подробности см. в справочной статье Error.message .

name Строка, определяющая тип исключения. Все объекты URIError наследуют для этого свойства строку «URIError».

Описание

Экземпляр класса URIError создается функциями decodeURI() и decodeURIComponent(), если указанная строка содержит недопустимые шестнадцатеричные управляющие последовательности. Это исключение может генерироваться методами encodeURI() и encodeURIComponent(), если указанная строка содержит недопустимые суррогатные пары символов Юникода. Генерация и перехват исключений подробно рассмотрены в справочной статье Error.

См. также

Error, Error.message, Error.name