Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Оцените дизайн сайта

Супер
Симпатично
Пойдет
Ничего хорошего
Просто клиника


Результаты
Другие опросы

Всего голосов: 890
Комментарии: 2


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Книги-online



Свойства и Функции Верхнего Уровня Оглавление | Назад | Вперёд | Индекс

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

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

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

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

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

NaN

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

undefined

Значение undefined.

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

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

Возвращает 16-ричное значение - кодировку аргумента из набора символов ISO Latin-1; используется для создания строк для добавления в URL.

eval

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

isFinite

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

isNaN

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

Number

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

parseFloat

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

parseInt

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

String

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

taint

Добавляет разрушение данных к элементу данных или скрипту.

unescape

Возвращает ASCII-строку для специфицированного 16-ричного кодового значения.

untaint

Убирает разрушение данных с элемента данных или скрипта.

escape

Возвращает 16-ричное значение - кодировку аргумента из набора символов ISO Latin-1.

Функция ядра

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

JavaScript 1.0, NES 2.0

Версия ECMA

ECMA-262-совместимая, исключая символы Unicode.

Синтаксис

escape("string")

Параметр

string

Строка из набора символов ISO-Latin-1.

Описание

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

Используйте функции escape и unescape для кодирования и декодирования (добавления вручную значений свойств) Uniform Resource Locator (URL), Uniform Resource Identifier (URI) или строки URI-типа.

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

* @ - _ + . /

Unicode. Функции escape и unescape не используют Unicode, как указано в спецификации ECMA. Вместо этого они используют указания Internet Engineering Task Force (IETF) для заменяющих/escaping символов. В URI символы используют US-ASCII-символы (набор символов ISO-Latin-1). URI это последовательность символов из базового латинского алфавита, цифры и несколько специальных символов (например, / и @). Еscape-последовательности не поддерживают как Unicode-значения \uXXXX или %uXXXX, как специфицировано ECMA, но поддерживают %XX, где XX это 16-ричное число из двух цифр (например, %7E). В URI представлены восьмеричными числами, как 8-битные байты.

Чтобы escape и unescape могли работать с поддерживаемыми Web-сервером URL и URI, JavaScript не использует Unicode для этих функций.

  • escape возвращает 16-ричную кодировку специфицированной строки из набора символов ISO-Latin-1.
  • unescape возвращает ASCII-строку, последовательность символов из набора ISO-Latin-1.

Unicode-специфичные escape-последовательности %uXXXX не поддерживаются.

Примеры

Пример 1. Этот пример возвращает "%26":

escape("&") // возвращает "%26"

Пример 2. Следующий оператор возвращает строку кодированных символов для пробелов, запятых и апострофов.

// возвращает "The_rain.%20In%20Spain%2C%20Ma%92am"
escape("The_rain. In Spain, Ma'am")

См. также

unescape

eval

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

Функция ядра

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

JavaScript 1.0

Версия ECMA

ECMA-262

Синтаксис

eval(string)

Параметр

string

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

Описание

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

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

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

Если аргументом eval не является строка, eval возвращает the аргумент без изменений. В следующем примере специфицируется 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.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 равен пяти, и присваивают переменной z 0 в ином случае. Если второй оператор выполняется, 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
}

Пример 5. В этом примере создаётся breed как свойство объекта myDog, а также как переменная. Первый оператор write использует eval('breed') без специфицирования объекта; строка "breed" вычисляется безотносительно какого-либо объекта, а метод write выводит "Shepherd", что является значением переменной breed. Второй оператор write использует myDog.eval('breed'), что специфицирует объект myDog; строка "breed" вычисляется с учётом объекта myDog, а метод write выводит "Lab", что является значением свойства breed объекта myDog.

function Dog(name,breed,color) {
   this.name=name
   this.breed=breed
   this.color=color
}
myDog = new Dog("Gabby")
myDog.breed="Lab"
var breed='Shepherd'
document.write("<P>" + eval('breed'))
document.write("<BR>" + myDog.eval('breed'))

См. также

Метод Object.eval

Infinity

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

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

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

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

Версия ECMA

ECMA-262

Синтаксис

Infinity

Описание

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

Начальным значением Infinity является Number.POSITIVE_INFINITY. Значение Infinity (положительная бесконечность) больше любого другого числа, включая себя самого. Это значение математически ведёт себя как бесконечность; например, что-либо, умноженное на Infinity, даёт 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 это функция верхнего уровня, не ассоциированная с каким-либо объектом.

На платформах, поддерживающих NaN, функции 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 возвращает значение в миллисекундах, отмеренное от даты 1 января 1970 года UTC (GMT), положительное - после этой даты, негативное - до.

Если obj это строка, которая не содержит правильно оформленного числового литерала, 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

Строка, представляющая значение, которое Вы хотите разобрать/parse.

Описание

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 return-значения.

Описание

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

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

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

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

  • Если string ввода начинается с "0x", radix равен 16 (16-ричное основание).
  • Если string ввода начинается с "0", radix восьмеричный.
  • Если string ввода начинается с любого другого значения, radix равен 10 (10-рчное основание).

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

Для арифметических целей значение NaN является не-числом при любом radix. Вы можете вызвать затем функцию isNaN, чтобы определить, является ли NaN результатом работы parseInt. Если 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, поскольку string ввода начинается с "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

taint

Добавляет разрушение данных к элементу данных или скрипту.

Клиентская функция

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

JavaScript 1.1

JavaScript 1.2: удалена.

Синтаксис

taint([dataElementName])

Параметр

dataElementName

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

Описание

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

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

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

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

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

Пример

Следующий оператор добавляет taint/разрушение данных к свойству, поэтому скрипт не может отправить это свойство серверу, не имея разрешения для конечного пользователя/end user's permission:

taintedStatus=taint(window.defaultStatus)

// taintedStatus теперь не может быть отправлена в URL или form post без
// end user's permission

См. также

navigator.taintEnabled, untaint

undefined

Значение undefined.

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

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

JavaScript 1.3

Версия ECMA

ECMA-262

Синтаксис

undefined

Описание

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

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

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

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

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

unescape

Возвращает ASCII-строку для специфицированного 16-ричного кодового значения.

Функция ядра

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

JavaScript 1.0, NES 1.0

Версия ECMA

ECMA-262-совместимая, за исключением символов Unicode.

Синтаксис

unescape(string)

Параметр

string

Строка, содержащая символы в формате "%xx", где xx это 16-ричное число.

Описание

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

Строка, возвращаемая функцией unescape, является серией символов из набора ISO-Latin-1.

Методы escape и unescape не используют Unicode, как специфицировано ECMA. Дополнительно см. описание "Unicode".

Примеры

Следующий пример возвращает "&":

unescape("%26")

Следующий пример возвращает "!#":

unescape("%21%23")

См. также

escape

untaint

Убирает разрушение данных с элемента данных или скрипта.

Клиентская функция

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

JavaScript 1.1

JavaScript 1.2: удалена.

Синтаксис

untaint([dataElementName])

Параметр

dataElementName

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

Описание

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

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

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

Скрипт может untaint только те данные, которые были созданы в этом скрипте (то есть, только те данные, которые имеют taint-код скрипта или имеют тождественный (null) taint-код). Если Вы используете untaint с элементом данных скрипта другого сервера (или с данными, которые Вы не можете untaint), untaint возвращает данные без изменений или ошибку.

В некоторых случаях поток управления, а не поток данных, работает с разрушенными данными. Тогда taint добавляется к окну, содержащему скрипт. Вы можете удалить taint из окна скрипта, вызвав untaint без аргументов, если окно содержит taint, но только для текущего окна.

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

Пример

Следующий оператор удаляет разрушение данных/taint из свойства, поэтому скрипт может быть выслан другому серверу:

untaintedStatus=untaint(window.defaultStatus)
// untaintedStatus может теперь быть выслана в URL или form post другими скриптами

См. также

navigator.taintEnabled, taint Оглавление | Назад | Вперёд | Индекс

Дата последнего обновления: 28 мая 1999 года.
Copyright (c) 1999 Netscape Communications Corporation



Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


.



книги по программированию исходники компоненты шаблоны сайтов C++ PHP Delphi скачать