Назад     Вперёд

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


 

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

 

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


В следующей таблице даны свойства верхнего уровня:

Таблица 2.1 Свойства верхнего уровня

Свойство

Описание

Infinity

Числовое значение, представляющее бесконечность.

NaN

Значение "Not-A-Number".

undefined

Значение "undefined".

 

 

В следующей таблице даны функции верхнего уровня:
 

Таблица 2.2 Функции верхнего уровня

Функция

Описание

decodeURI

Декодирует URI, который был закодирован с помощью encodeURI.

decodeURIComponent

Декодирует URI, который был закодирован с помощью encodeURIComponent.

encodeURI

Высчитывает новую версию URI, замещая каждый экземпляр некоторых определённых символов escape-последовательностями - UTF-8-кодировками этих символов.

encodeURIComponent

Высчитывает новую версию компонентов URI, замещая каждый экземпляр некоторых определённых символов escape-последовательностями - UTF-8-кодировками этих символов.

eval

Обрабатывает строку кода JavaScript без ссылки на определённый объект.

isFinite

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

isNaN

Вычисляет аргумент для определения, является ли он не-числом.

Number

Конвертирует объект в число.

parseFloat

Разбирает строковой аргумент и возвращает число с плавающей точкой.

parseInt

Разбирает строковой аргумент и возвращает целое число.

String

Конвертирует объект в строку.



 

decodeURI



Декодирует Uniform Resource Identifier (URI), созданный до этого функцией encodeURI или аналогичным способом.

Функция ядра

 

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

JavaScript 1.5, NES 6.0

Версия ECMA

ECMA-262 Edition 3.


Синтаксис
decodeURI(encodedURI)


Параметры
encodedUri

Полный кодированный Uniform Resource Identifier.


Описание

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

 

Не декодирует escape-последовательности, которые не могут быть созданы функцией encodeURI.


См. также

decodeURIComponent, encodeURI, encodeURIComponent.



 

decodeURIComponent



Декодирует компонент Uniform Resource Identifier'а (URI), созданный ранее функцией encodeURIComponent или аналогичным способом.

Функция ядра

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

JavaScript 1.5, NES 6.0

Версия ECMA

ECMA-262 Edition 3.


Синтаксис
decodeURIComponent(encodedURI)


Параметр
encodedUri

Кодированный компонент Uniform Resource Identifier'а.


Описание

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


См. также

decodeURI, encodeURI, encodeURIComponent.



 

encodeURI



Кодирует Uniform Resource Identifier (URI), замещая каждый экземпляр определённого символа одной, двумя или тремя escape-последовательностями, представляющими кодировку данного символа в UTF-8.

Функция ядра

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

JavaScript 1.5, NES 6.0

Версия ECMA

ECMA-262 Edition 3.


Синтаксис
encodeURI(uri)


Параметр
uri

Полный Uniform Resource Identifier.


Описание

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

 

encodeURI замещает все символы соответствующими escape-последовательностями UTF-8, за исключением следующих символов:

 

зарезервированные символы

, / ? : @ & = + $ ,

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

алфавитные, десятеричные цифры, - _ . ! ~ * ' ( )

знак score

#


См. также

decodeURI, eval, encodeURIComponent.

 



encodeURIComponent



Кодирует компонент Uniform Resource Identifier'а (URI), замещая каждый экземпляр определённого символа одной, двумя или тремя escape-последовательностями, представляющими кодировку данного символа в UTF-8.

Функция ядра

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

JavaScript 1.5, NES 6.0

Версия ECMA

ECMA-262 Edition 3.


Синтаксис
encodeURIComponent(uri)


Параметр
uri

Компонент Uniform Resource Identifier'а.


Описание

Принимает, что URI это компонент URI, а не полный URI, поэтому не рассматривает зарезервированные символы как имеющие специальное значение и кодирует их. См. в encodeURI список зарезервированных символов.

 

encodeURIComponent замещает все символы соответствующими escape-последовательностями UTF-8, за исключением следующих символов:

 

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

алфавитные, десятеричные цифры, - _ . ! ~ * ' ( )

знак score

#


См. также

decodeURI, eval, encodeURI.

 



eval



Вычисляет строку кода JavaScript без ссылки на определённый объект.

Функция ядра

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

JavaScript 1.0

JavaScript 1.4: eval не может вызываться неявно.

Версия ECMA

ECMA-262


Синтаксис
eval(string)


Параметр
string

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


Описание

eval это функция верхнего уровня, не ассоциированная с каким-либо объектом.

 

Аргументом функции eval является строка. Если строка является выражением, eval вычисляет это выражение. Если аргументом является один или более операторов JavaScript, eval выполняет эти операторы. Не вызывайте eval для вычисления арифметических выражений; JavaScript вычисляет арифметические выражения автоматически.

 

Если Вы конструируете арифметическое выражение как строку, Вы можете использовать eval для вычисления его позднее. Например, предположим, у Вас имеется переменная x. Вы можете отложить вычисление выражения, включающего x, присвоив строковое значение выражения, скажем,  "3 * x + 2", переменной, а затем вызвать eval из более поздней точки Вашего скрипта.

 

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

 

eval(new String("2+2")) // возвращает String-объект, содержащий "2+2"
eval("2+2")             // возвращает 4

 

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

 

var x = 2
var y = 4
var myEval = eval
myEval("x + y")


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

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

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

 

JavaScript 1.1.

eval является также методом всех объектов. Этот метод описан для класса Object.


Примеры

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

 

Пример 1.

В этом коде оба оператора, содержащих eval, возвращают 42. Первый вычисляет строку "x + y + 1"; второй - строку "42".

 

var x = 2
var y = 39
var z = "42"
eval("x + y + 1") // возвращает 42
eval(z)           // возвращает 42

 

Пример 2.

В этом примере функция getFieldName(n) возвращает имя специфицированного элемента формы как строку. Первый оператор присваивает строковое значение третьего элемента/поля формы переменной field. Второй оператор использует eval для отображения значения элемента формы.

 

var field = getFieldName(3)
document.write("The field named ", field, " has value of ",
   eval(field + ".value"))

 

Пример 3.

В этом примере eval используется для вычисления строки str. Строка состоит из операторов JavaScript, которые открывают диалоговое окно Alert и присваивают переменной z значение 42, если x равен пяти, и присваивают 0 переменной z в ином случае. Когда выполняется второй оператор, eval вызывает выполнение вышеуказанных операторов, а также будет вычислять набор операторов и возвратит значение, присвоенной переменной z.

 

var str = "if (x == 5) {alert('z is 42'); z = 42;} else z = 0; "
document.write("<P>z is ", eval(str))

 

Пример 4.

В этом примере функция setValue использует eval для присвоения значения переменной newValue текстовому полю textObject:

 

function setValue (textObject, newValue) {
   eval ("document.forms[0]." + textObject + ".value") = newValue
}


См. также

метод Object.eval.

 



Infinity



Числовое значение, представляющее бесконечность.

Свойство ядра

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

JavaScript 1.3 (В предыдущих версиях Infinity было определено только как свойство объекта Number).

Версия ECMA

ECMA-262


Синтаксис
Infinity


Описание

Infinity это свойство верхнего уровня, не ассоциированное с каким-либо объектом.

 

Начальным значением Infinity является Number.POSITIVE_INFINITY. Значение Infinity (положительная бесконечность) больше, чем любые другие числа, в том числе и она сама. Это значение математически ведёт себя как Бесконечность; например, что-либо, умноженное на Бесконечность, является Бесконечностью, и что-либо, делённое на бесконечность, является 0.


См. также

Number.NEGATIVE_INFINITY, Number.POSITIVE_INFINITY.

 



isFinite



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

Функция ядра

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

JavaScript 1.3

Версия ECMA

ECMA-262


Синтаксис
isFinite(number)


Параметр
number

Вычисляемое число.


Описание

isFinite это функция верхнего уровня, не ассоциированная с каким-либо объектом.

 

Вы можете использовать этот метод для определения конечности числа. Метод isFinite проверяет число как аргумент. Если аргумент является NaN, положительной или отрицательной Бесконечностью, метод возвращает false, в ином случае - true.


Примеры

 

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

 

if(isFinite(ClientInput) == true)
{
   /* здесь некоторые операторы */
}


См. также

Number.NEGATIVE_INFINITY, Number.POSITIVE_INFINITY.

 



isNaN



Вычисляет аргумент для определения, является ли он не-числом.

Функция ядра

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

JavaScript 1.0: только Unix.

JavaScript 1.1, NES 2.0: все платформы.

Версия ECMA

ECMA-262


Синтаксис
isNaN(testValue)


Параметр
testValue

Обсчитываемое значение.


Описание

isNaN это функция верхнего уровня, не ассоциированная с каким-либо объектом.

 

Функции parseFloat и parseInt возвращают NaN, если вычисляют значение, не являющееся числом. isNaN возвращает true, если передано NaN, и false - в ином случае.


Примеры

 

Вычисляется floatValue для определения, является ли оно числом, а затем вызывается соответствующая процедура:

 

floatValue=parseFloat(toFloat)

if (isNaN(floatValue)) {
   notFloat()
} else {
   isFloat()
}


См. также

Number.NaN, parseFloat, parseInt.

 



NaN



Значение, представляющее Not-A-Number/Не-Число.

Свойство ядра

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

JavaScript 1.3 (В предыдущих версиях NaN было определено только как свойство объекта Number).

Версия ECMA

ECMA-262


Синтаксис
NaN


Описание

NaN это свойство верхнего уровня, не ассоциированное с каким-либо объектом.

 

Начальным значением  NaN является NaN.

 

NaN всегда не равно любому другому числу, включая само NaN; Вы не можете проверить на наличие значения not-a-number, сравнивая Number.NaN. Вместо этого используйте функцию isNaN.

 

Некоторые методы JavaScript (такие как конструктор Number, parseFloat и parseInt) возвращают NaN, если значением специфицированного параметра не является число.

 

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


См. также

isNaN, Number.NaN.

 



Number



Конвертирует специфицированный объект в число.

Функция ядра

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

JavaScript 1.2, NES 3.0

Версия ECMA

ECMA-262


Синтаксис
Number(obj)


Параметр
obj

Объект.


Описание

Number это функция верхнего уровня, не ассоциированная с каким-либо объектом.

 

Если объект является  Date-объектом, Number возвращает значение в миллисекундах, отмеренное от даты 01 января 1970 UTC (GMT), положительное после этой даты, негативное - до.

 

Если объект - строка, не содержащая верного числового литерала, Number возвращает NaN.


Пример

Здесь Date-объект конвертируется в числовое значение:

 

d = new Date ("December 17, 1995 03:24:00")
alert (Number(d))

 

Это выводит диалоговое окно с числом  "819199440000."


См. также

Number.

 



parseFloat



Разбирает строковой аргумент и возвращает число с плавающей точкой.

Функция ядра 

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

JavaScript 1.0: если первый символ специфицированной строки parseFloat(string) не может быть конвертирован в число, возвращается NaN, на Solaris и Irix, и 0 - на всех других платформах.

JavaScript 1.1, NES 2.0: возвращает NaN на всех платформах если первый символ строки в parseFloat(string) не может быть конвертирован в число.

Версия ECMA

ECMA-262


Синтаксис
parseFloat(string)


Параметр
string

Строка - разбираемое значение.


Описание

parseFloat это функция верхнего уровня, не ассоциированная с каким-либо объектом.

 

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

 

Если первый символ не может быть конвертирован в число, parseFloat возвращает NaN.

 

Для арифметических целей значение NaN не является числом при любом основании исчисления/radix. Вы можете вызвать функцию isNaN для того, чтобы определить, является ли результат работы parseFloat не-числом/NaN. Если NaN передаётся в арифметические операции, результат операции также будет NaN.


Примеры

 

Все следующие примеры возвращают 3.14:

 

parseFloat("3.14")
parseFloat("314e-2")
parseFloat("0.0314E+2")
var x = "3.14"
parseFloat(x)

 

Этот пример возвращает NaN:

 

parseFloat("FF2")


См. также

isNaN, parseInt.

 



parseInt



Разбирает строковой аргумент и возвращает целое число - специфицированную базу/radix.

Функция ядра

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

JavaScript 1.0: если первый символ строки, специфицированной в parseInt(string), не может быть конвертирован в число, возвращается NaN на Solaris и Irix, и 0 на всех других платформах.

JavaScript 1.1, LiveWire 2.0: возвращает NaN на всех платформах, если первый символ строки, специфицированной в parseInt(string), не может быть конвертирован в число.

Версия ECMA

ECMA-262


Синтаксис
parseInt(string[, radix])


Параметры
string

Строка - разбираемое значение.

radix

Целое число - основание системы счисления - radix.


Описание

parseInt это функция верхнего уровня, не ассоциированная с каким-либо объектом.

 

Функция parseInt разбирает свой первый аргумент, строку, и пытается вернуть целое число - специфицированное основание счисления (base). Например, radix 10 означает конвертацию в десятеричное число, 8 - восьмеричное, 16 - шестнадцатеричное, и так далее. Для баз более 10 применяются буквы алфавита для обозначения аргументов больше 9. Например, для 16-ричных чисел (base 16) используются латинские буквы от A до F.

 

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

 

Если radix не специфицирован или специфицирован как 0, JavaScript принимает следующее:

Если первый символ не может быть конвертирован в число, parseInt возвращает NaN.

 

Для арифметических целей, значение NaN не является числом при любом radix. Вы можете вызвать функцию isNaN, чтобы определить, является ли результат parseInt NaN. Если NaN передаётся в арифметические операции, результат операции также будет NaN.


Примеры

 

Все следующие примеры возвращают 15:

 

parseInt("F", 16)
parseInt("17", 8)
parseInt("15", 10)
parseInt(15.99, 10)
parseInt("FXX123", 16)
parseInt("1111", 2)
parseInt("15*3", 10)

 

Все следующие примеры возвращают NaN:

 

parseInt("Hello", 8)
parseInt("0x7", 10)
parseInt("FFF", 10)

 

Хотя radix специфицирован разный, все следующие примеры возвращают 17, поскольку введённая строка начинается с "0x".

 

parseInt("0x11", 16)
parseInt("0x11", 0)
parseInt("0x11")


См. также

isNaN, parseFloat, Object.valueOf.

 



String



Конвертирует специфицированный объект в строку.

Функция ядра

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

JavaScript 1.2, NES 3.0

Версия ECMA

ECMA-262


Синтаксис
String(obj)


Параметр
obj

Объект.


Описание

String это функция верхнего уровня, не ассоциированная с каким-либо объектом.

 

Метод String конвертирует значение любого объекта в строку; он возвращает то же самое значение, что и метод toString отдельного объекта.

 

Если объектом является Date-объект, String возвращает более читабельное строковое представление даты.
Формат: Thu Aug 18 04:37:43 Pacific Daylight Time 1983.


Пример

Этот пример конвертирует Date-объект в строку, годную для чтения.

 

D = new Date (430054663215)
alert (String(D))

 

На выводе появится диалоговое окно, содержащее: "Thu Aug 18 04:37:43 GMT-0700 (Pacific Daylight Time) 1983."


См. также

String.

 



undefined



Значение "undefined" (неопределённое).

Свойство ядра

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

JavaScript 1.3

Версия ECMA

ECMA-262


Синтаксис
undefined


Описание

undefined это функция верхнего уровня, не ассоциированная с каким-либо объектом.

 

Переменная , которой не присвоено никакого значения, имеет тип undefined. Метод или оператор также возвращают undefined, если вычисляемая переменная не имеет присвоенного значения.

 

Вы можете использовать undefined, чтобы определить, присвоено ли значение переменной.
В этом коде переменная x не определена, и оператор if вычисляется в true.

 

var x
if(x == undefined) {
   // эти операторы выполняются
}

 

undefined является также примитивным значением.

 


Назад     Вперёд

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

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

Hosted by uCoz