Назад Вперёд |
Ядро JavaScript 1.5. Справочник. |
В этой главе рассматриваются все свойства и функции JavaScript, не
ассоциированные с какими-либо объектами.
В спецификации ECMA эти свойства и
функции называются "свойства и методы объекта global".
В следующей таблице даны свойства верхнего уровня:
Свойство | Описание |
---|---|
Infinity |
|
NaN |
|
undefined |
В следующей таблице даны функции верхнего уровня:
Функция |
Описание |
---|---|
decodeURI |
Декодирует URI, который был закодирован с помощью |
|
Декодирует URI, который был закодирован с помощью encodeURIComponent. |
encodeURI |
Высчитывает новую версию URI, замещая каждый экземпляр некоторых определённых символов escape-последовательностями - UTF-8-кодировками этих символов. |
|
Высчитывает новую версию компонентов URI, замещая каждый экземпляр некоторых определённых символов escape-последовательностями - UTF-8-кодировками этих символов. |
eval |
Обрабатывает строку кода JavaScript без ссылки на определённый объект. |
isFinite |
Вычисляет аргумент для определения, является ли он конечным числом. |
isNaN |
Вычисляет аргумент для определения, является ли он не-числом. |
Number |
|
parseFloat |
Разбирает строковой аргумент и возвращает число с плавающей точкой. |
parseInt |
|
String |
Декодирует Uniform Resource Identifier (URI),
созданный до этого функцией encodeURI
или аналогичным
способом.
decodeURI(encodedURI)
encodedUri |
Заменяет каждую escape-последовательность кодированного URI символом, который эта последовательность представляет.
Не декодирует escape-последовательности, которые не
могут быть созданы функцией encodeURI
.
decodeURIComponent
,
encodeURI
, encodeURIComponent.
Декодирует компонент Uniform Resource Identifier'а (URI),
созданный ранее функцией encodeURIComponent
или
аналогичным способом.
decodeURIComponent(encodedURI)
encodedUri |
Заменяет каждую escape-последовательность кодированного компонента URI символом, который эта последовательность представляет.
decodeURI
, encodeURI
,
encodeURIComponent.
Кодирует Uniform Resource Identifier (URI), замещая каждый экземпляр определённого символа одной, двумя или тремя escape-последовательностями, представляющими кодировку данного символа в UTF-8.
encodeURI(uri)
uri |
Предполагает, что URI является полным URI, поэтому не кодирует зарезервированные символы, имеющие специальное значение в URI.
encodeURI
замещает все символы соответствующими escape-последовательностями UTF-8,
за исключением следующих символов:
decodeURI
, eval
,
encodeURIComponent.
Кодирует компонент Uniform Resource Identifier'а (URI), замещая каждый экземпляр определённого символа одной, двумя или тремя escape-последовательностями, представляющими кодировку данного символа в UTF-8.
encodeURIComponent(uri)
uri |
Принимает, что URI это компонент URI, а не полный URI, поэтому не
рассматривает зарезервированные символы как имеющие специальное значение и
кодирует их. См. в encodeURI
список зарезервированных символов.
encodeURIComponent
замещает все символы
соответствующими escape-последовательностями UTF-8, за исключением следующих символов:
Вычисляет строку кода JavaScript без ссылки на определённый объект.
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")
Вы можете использовать eval косвенно, хотя это не рекомендуется.
eval
является также методом всех объектов.
Этот метод описан для класса Object
.
Следующие примеры отображают вывод с помощью метода document.write
. В
серверном JavaScript Вы можете отобразить то же вывод через вызов функции write вместо document.write
.
В этом коде оба оператора, содержащих eval
, возвращают 42. Первый вычисляет
строку "x + y + 1"; второй - строку "42".
var x = 2
var y = 39
var z = "42"
eval("x + y + 1") // возвращает 42
eval(z) //
возвращает 42
В этом примере функция getFieldName(n)
возвращает имя специфицированного
элемента формы как строку. Первый оператор присваивает строковое значение
третьего элемента/поля формы переменной field. Второй оператор использует eval
для отображения значения элемента формы.
var field = getFieldName(3)
document.write("The field named ", field, " has value of ",
eval(field + ".value"))
В этом примере 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))
В этом примере функция setValue
использует eval
для присвоения значения
переменной newValue
текстовому полю textObject
:
function setValue (textObject, newValue) {
eval ("document.forms[0]." + textObject + ".value") = newValue
}
метод Object.eval.
Числовое значение, представляющее бесконечность.
JavaScript 1.3 (В предыдущих версиях Infinity было определено только как свойство объекта Number). | |
Infinity
Infinity
это свойство верхнего уровня, не ассоциированное с каким-либо объектом.
Начальным значением Infinity
является Number.POSITIVE_INFINITY
.
Значение Infinity
(положительная бесконечность) больше, чем любые другие числа,
в том числе и она сама. Это значение математически ведёт себя как Бесконечность;
например, что-либо, умноженное на Бесконечность, является Бесконечностью, и
что-либо, делённое на бесконечность, является 0.
Number.NEGATIVE_INFINITY
,
Number.POSITIVE_INFINITY.
Вычисляет аргумент для определения, является ли он конечным числом.
isFinite(number)
number |
isFinite
это функция верхнего уровня, не ассоциированная с каким-либо объектом.
Вы можете использовать этот метод для определения
конечности числа. Метод isFinite
проверяет число как аргумент. Если аргумент
является NaN
, положительной или отрицательной Бесконечностью, метод возвращает false, в ином случае - true.
Вы можете проверить клиентский ввод для определения, введено ли конечное число.
if(isFinite(ClientInput) == true)
{
/* здесь некоторые операторы */
}
Number.NEGATIVE_INFINITY
,
Number.POSITIVE_INFINITY.
Вычисляет аргумент для определения, является ли он не-числом.
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.
Значение, представляющее Not-A-Number/Не-Число.
JavaScript 1.3 (В предыдущих версиях | |
NaN
NaN
это свойство верхнего уровня, не ассоциированное с каким-либо объектом.
Начальным значением NaN
является NaN
.
NaN
всегда не равно любому другому числу, включая само NaN
;
Вы не можете проверить на наличие значения not-a-number, сравнивая Number.NaN
.
Вместо этого используйте функцию isNaN
.
Некоторые методы JavaScript (такие как конструктор Number
, parseFloat
и parseInt
) возвращают NaN
, если значением специфицированного параметра не является число.
Вы можете использовать свойство NaN
для указания на
ошибочное условие для функции, которая должна возвращать верное число.
Конвертирует специфицированный объект в число.
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."
Разбирает строковой аргумент и возвращает число с плавающей точкой.
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
:
Разбирает строковой аргумент и возвращает целое число - специфицированную базу/radix.
parseInt(string[, radix])
string |
|
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(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."
Значение "undefined" (неопределённое).
undefined
undefined
это функция верхнего уровня, не ассоциированная с каким-либо объектом.
Переменная , которой не присвоено никакого значения,
имеет тип undefined
. Метод или оператор также возвращают undefined
, если
вычисляемая переменная не имеет присвоенного значения.
Вы можете использовать undefined
, чтобы определить,
присвоено ли значение переменной.
В этом коде переменная x
не определена, и оператор if
вычисляется в true.
var x
if(x == undefined) {
// эти операторы выполняются
}
undefined
является также примитивным значением.
Copyright © 2000
Дата последнего обновления: 28 сентября 2000 г.