• Авторизация


конвертеры разных файлов Мониста 17-05-2009 19:19


[494x341]
Конвертер
Скачала и залила. может кому пригодится
комментарии: 0 понравилось! вверх^ к полной версии
Черные дыры в интернете Мониста 17-05-2009 18:09


Причины, по которым пользователь Всемирной паутины не может получить доступ к тому или иному веб-сайту или хостингу обычно достаточно просты. Это могут быть и проблемы на серверах, и проведение профилактических мероприятий, в результате, тот или иной ресурс становится временно заблокированным. Но существуют и другие, более загадочные факторы – черные дыры. Группа исследователей из Вашингтонского Университета обнаружила, что существуют в интернете такие точки, в которых пакеты с данными просто исчезают.
"Не стоит думать, что работая в интернете, Вы имеете доступ ко всем его ресурсам", говорит Итен Кац-Бассетт (Ethan Katz-Bassett), профессор кафедры компьютерных технологий и инженерии Вашингонского Университета. "И мы нашли подтверждение этому".
Кац-Бассетт работает над проектом "Hubble", системой, которая предназначена для обнаружения и исследования черных дыр в интернете. По определению Кац-Бассета, черной дырой называется ситуция, в которой маршрут между двумя компьютерами в сети существует, но сообщения – пакеты-запросы на посещение сайта или, например, электронная почта, дойти не могут. Кац-Бассетт опубликовал карту, на которой отмечены географические положения черных дыр, а также их IP-адреса. Согласно этой карте черные дыры скапливаются в Севреной Америке и Западной Европе
[показать]
Для обнаружения черных дыр Hubble рассылает тестовые сообщения, проходящие по всему миру, и обнаруживает, какие компьютеры могут их получить, а какие нет. Если нет, то такая ситуация определяется, как "частичная доступность". Если сообщение не может быть доставлено после двух попыток, происходящих с 15-минутым интервалом, то делается вывод об обнаружении черной дыры. Группа исследователей определила, что около 7% компьютеров, подключенных к интернету, оказывалось в такой ситуации за время трехнедельного эксперимента. Но стоит отметить, что черные дыры в сети – это достаточно скоротечное явление, время их жизни составляет в среднем 16 часов.
По словам исследователей, когда они только запускали систему, они и представить не могли, что обнаружится столько сетевых проблем. Проект "Hubble", получил свое название в честь орбитального телескопа Hubble, принадлежащего NASA, и занимающегося поиском черных дыр в космосе.
комментарии: 2 понравилось! вверх^ к полной версии

баннеры Мониста 30-03-2009 20:45



[340x260]
комментарии: 0 понравилось! вверх^ к полной версии
ПРИКОЛИСЬ - новая серия фотографий в фотоальбоме Asja_MiLaFka_original 30-03-2009 20:12


Фотографии CommandButton : ПРИКОЛИСЬ


Asja_MiLaFka_original


комментарии: 0 понравилось! вверх^ к полной версии
ПРИКОЛИСЬ - новая серия фотографий в фотоальбоме Asja_MiLaFka_original 30-03-2009 20:10


Фотографии CommandButton : ПРИКОЛИСЬ


Asja_MiLaFka_original


комментарии: 0 понравилось! вверх^ к полной версии
ПРИКОЛИСЬ - новая серия фотографий в фотоальбоме Asja_MiLaFka_original 30-03-2009 19:55


Фотографии CommandButton : ПРИКОЛИСЬ


Asja_MiLaFka_original


комментарии: 0 понравилось! вверх^ к полной версии
ПРИКОЛИСЬ - новая серия фотографий в фотоальбоме Asja_MiLaFka_original 30-03-2009 19:52


Фотографии CommandButton : ПРИКОЛИСЬ


Asja_MiLaFka_original


комментарии: 0 понравилось! вверх^ к полной версии
ПРИКОЛИСЬ - новая серия фотографий в фотоальбоме Asja_MiLaFka_original 30-03-2009 19:51


Фотографии CommandButton : ПРИКОЛИСЬ

=))о как
Asja_MiLaFka_original


комментарии: 0 понравилось! вверх^ к полной версии
студенты Asja_MiLaFka_original 30-03-2009 19:15


Эдуард Асадов

Антология русской поэзии

СТУДЕНТЫ

Проехав все моря и континенты,
Пускай этнограф в книгу занесет,
Что есть такая нация - студенты,
Веселый и особенный народ!

Понять и изучить их очень сложно.
Ну что, к примеру, скажете, когда
Все то, что прочим людям невозможно,
Студенту - наплевать и ерунда!

Вот сколько в силах человек не спать?
Ну день, ну два... и кончено! Ломается!
Студент же может сессию сдавать,
Не спать неделю, шахмат не бросать
Да плюс еще влюбиться ухитряется.

А сколько спать способен человек?
Ну, пусть проспит он сутки на боку,
Потом, взглянув из-под опухших век,
Вздохнет и скажет:- Больше не могу!

А вот студента, если нет зачета,
В субботу положите на кровать,
И он проспит до следующей субботы,
А встав, еще и упрекнет кого-то:
- Ну что за черти! Не дали поспать!

А сколько может человек не есть?
Ну день, ну два... и тело ослабело...
И вот уже ни встать ему, ни сесть,
И он не вспомнит, сколько шестью шесть,
А вот студент - совсем другое дело.

Коли случилось \"на мели\" остаться,
Студент не поникает головой.
Он будет храбро воздухом питаться
И плюс водопроводною водой!

Что был хвостатым в прошлом человек -
Научный факт, а вовсе не поверье.
Но, хвост давно оставя на деревьях,
Живет он на земле за веком век.

И, гордо брея кожу на щеках,
Он пращура ни в чем не повторяет.
А вот студент, он и с хвостом бывает,
И даже есть при двух и трех хвостах!

Что значит дружба твердая, мужская?
На это мы ответим без труда:
Есть у студентов дружба и такая,
А есть еще иная иногда.

Все у ребят отлично разделяется,
И друга друг вовек не подведет.
Пока один с любимою встречается,
Другой идет сдавать его зачет...

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

Да, он живет задиристо и сложно,
Почти не унывая никогда.
И то, что прочим людям невозможно,
Студенту - наплевать и ерунда!

И, споря о стихах, о красоте,
Живет судьбой особенной своею.
Вот в горе лишь страдает, как и все,
А может, даже чуточку острее...

Так пусть же, обойдя все континенты,
Сухарь этнограф в труд свой занесет.
Что есть такая нация - студенты,
Живой и замечательный народ!
комментарии: 0 понравилось! вверх^ к полной версии
Java Script Asja_MiLaFka_original 30-03-2009 19:05


Справочное руководство по java Script:
Ввод и вывод данных
Типы данных
Преобразование типов данных
Служебные символы в строках
Переменные и оператор присваивания
Операторы
Функции
Встроенные объекты
Объект Array (Массив)
Методы Array
Объект Number (Число)
Объект Math (Математика)
Объект Date (Дата)
Объект Boolean (Логический)
Объект Object
Пользовательские объекты
Специальные операторы
Приоритеты операторов
комментарии: 0 понравилось! вверх^ к полной версии
JavaScript Приоритеты операторов Мониста 17-03-2009 21:30


Выше мы уже говорили, что в выражениях операторы выполняются в порядке, определяемом с помощью круглых скобок, согласно приоритетам; операторы с одинаковыми приоритетами выполняются слева направо. В этом разделе мы уточним приоритеты всех операторов. Круглые скобки, с помощью которых можно установить любой порядок выполнения операторов в выражении, можно считать операторами. Они обладают наивысшим приоритетом. Эти скобки могут образовывать структуру вложенности. Выражения, заключенные во внутренние круглые скобки, выполняются раньше тех, которые заключены во внешние круглые скобки. Интерпретатор JavaScript начинает анализ выражения именно с выяснения структуры вложенности пар круглых скобок. На втором месте по приоритету находится вычисление индексов массивов и определения самих элементов массивов. Индексы массивов, как известно, заключены в квадратные скобки. На последнем месте находится запятая, как разделитель параметров.

Распределение операторов по приоритетам

Приоритет Оператор Комментарий
1 ( ) от внутренних к внешним

function() вызов функции
2 ! логическое не
~ побитовое не
- отрицание
++ инкремент (приращение)
-- декремент
new
typeof
void
delete удаление объектного элемента
3 * умножение
/ деление
% деление по модулю (остаток от деления)
4 + сложение (конкатенация)
- вычитание
5 << побитовые сдвиги
>>
>>>
6 < меньше
<= не больше (меньше или равно)
> больше
>= не меньше (больше или равно)
7 == равенство
!= неравенство
8 & побитовое и
9 ^ побитовое исключающее или
10 | побитовое или (дизъюнкция)
11 && логическое и (конъюнкция)
12 || логическое или
13 ? условное выражение (оператор условия)
14 = операторы присваивания
+=
-=
*=
/=
%=
<<=
>=
>>=
&=
^=
|=
15 , запятая (разделитель параметров)

Кроме приоритетов следует также учитывать, что сложные логические выражения, состоящие из нескольких более простых, соединенных операторами И и ИЛИ, выполняются по так называемому принципу короткой обработки. Это означает, что значение всего выражения бывает можно определить, вычислив лишь одно или несколько более простых выражений, не вычисляя остальные. Например, выражение x&&y вычисляется слева направо; если значение x оказалось равным false, то значение y не вычисляется, поскольку и так известно, что значение всего выражения равно false. Аналогично, если в выражении x || y значение x равно true, то значение y не вычисляется, поскольку уже ясно, что все выражение равно true.
комментарии: 0 понравилось! вверх^ к полной версии
JavaSCript Специальные операторы Мониста 17-03-2009 21:29


В этом разделе описываются операторы, которые при программировании на JavaScript используются относительно редко..
10.1. Побитовые операторы
Побитовые (поразрядные) операторы применяются к целочисленным значениям и возвращают целочисленные значения. При их выполнении операнды предварительно приводятся к двоичной форме представления, в которой число является последовательностью из нулей и единиц длиной 32. Эти нули и единицы называются двоичными разрядами или битами. Далее производится некоторое действие над битами, в результате которого получается новая последовательность битов. В конце концов эта последовательность битов преобразуется к обычному целому числу — результату побитового оператора. В следующей таблице приведен список побитовых операторов.

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

Оператор Название Левый операнд Правый операнд
& побитовое и целое число целое число
| побитовое или целое число целое число
^ побитовое исключающее или целое число целое число
~ побитовое не — целое число
<< смещение влево целое число количество битов,
на которое производится смещение
>> смещение вправо целое число количество битов,
на которое производится смещение
>>> заполнение нулями при смещении целое число количество битов,
вправо на которое производится смещение


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

Работа операторов &, |, ^

X Y X&Y X | Y X^Y
1 1 1 1 0
1 0 0 1 1
0 1 0 1 1
0 0 0 0 0

Например, 2&3 равно 2, а 2|3 равно 3. Действительно, в двоичном представлении 2 есть 10, а 3 — 11. Применение побитовых операторов даст в случае оператора & двоичное число 10, то есть десятичное число 2, а в случае оператора | — двоичное число 11, то есть десятичное 3.
У операторов смещения один операнд и один параметр, указывающий, на какое количество бит следует произвести смещение. Например, 3<<2 равно 12, потому что смещение влево на два бита двоичного числа 11 (десятичное 3) дает 1100, что в десятичной форме есть 12. Результатом вычисления выражения 6>>2 — 1. Действительно, число 6 в двоичной форме это 110; смещение его вправо на два бита дает 1 как в двоичной, так и в десятичной форме.
10.2. Объектные операторы
Оператор удаления свойств объекта (delete)

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

ВНИМАНИЕ
При удалении элемента массива удаляется и его индекс, но оставшиеся элементы сохраняют свои прежние индексы, а длина массива не изменяется. Использование оператора delete не приводит к немедленному освобождению памяти. Решение об освобождении памяти принимается так называемым ядром JavaScript, а пользовательская программа лишь создает к этому предпосылки, но не может контролировать этот процесс абсолютно.

Оператор проверки наличия свойств (in)

Этот оператор позволяет проверить, имеется ли некоторое свойство или метод у того или иного объекта. Левый операнд представляет собой ссылку в виде строки на интересующее нас свойство или метод, а правый операнд — объект. Ссылка на метод содержит лишь его название без круглых скобок. Если свойство или метод содержится в объекте, то возвращается true, иначе — false. Отсюда следует, что оператор in можно применять в условных выражениях (в операторах if, switch, for, while, do-while).

Примеры:
Например, объект document, представляющий загруженный в браузер HTML-документ, имеет метод write(). Чтобы убедиться в этом, следует написать выражение: "write" in document // значение равно true

Создадим объект и проверим наличие в нем некоторых свойств.

function Сотрудник(Имя, Отдел, Телефон, Зарплата) {
this.Имя = Имя
this.Отдел = Отдел
this.Телефон = Телефон
this.Зарплата = Зарплата
}
agent007 = new Сотрудник("Джеймс Бонд", 5, "223-332")
"Телефон" in agent007 // true
"Ученая степень" in agent007 // false

Оператор in поддерживается браузерами IE5.5+, NN6+.

Оператор проверки принадлежности объекта модели (instanceof)
Этот оператор позволяет проверить, принадлежит ли некоторый объект объектной модели JavaScript. Левый операнд представляет проверяемое значение, а правый ссылку на корневой объект, такой как Array, String, Date и т. п. Выражение с оператором instanceof возвращает true или false и, таким образом может использоваться в условных выражениях (в операторах if, switch, for, while, do while).

Пример:
Созданный массив является экземпляром объекта Array, а последний сам является экземпляром корневого объекта Object.

myarray = new Array()
myarray instanceof Array // true
Array instance Object // true
Myarray instanceof String // false

Оператор in поддерживается браузерами IE5.5+, NN6+.
10.3. Комплексные операторы
Оператор условия (?:)

Этот
Читать далее...
комментарии: 0 понравилось! вверх^ к полной версии
JavaScript Пользовательские объекты Мониста 17-03-2009 21:28


В предыдущем разделе мы рассмотрели встроенные объекты, то есть заранее предопределенные в JavaScript и часто используемые в программах. С помощью выражений с ключевым словом new вы можете создавать экземпляры этих объектов, то есть их конкретные воплощения. Более того, благодаря свойству prototype имеется возможность добавлять к объектам новые свойства и методы, придуманные пользователем и отсутствовавшие в исходных встроенных объектах. В большинстве случаев, в частности при создании сценариев для Web-страниц, всего этого более чем достаточно. Однако нельзя обойти вниманием возможность создания собственных объектов. Зачем нужны собственные объекты? Они не являются необходимыми для решения практических задач. С точки зрения программиста, объект представляет собой просто удобное средство организации данных и функций их обработки. Чтобы как-то организовать данные и функции в программе, далеко не всегда необходимо прибегать к такой конструкции, как объект. Ведь даже при внушительном количестве данных программист не всегда организует их в виде массива (объекта Array): бывает достаточным ограничиться простыми переменными.
9.1. Создание объекта
Объекты в JavaScript можно создать несколькими способами. Мы рассмотрим три таких способа.

Первый способ основан на функции, в теле которой описываются все свойства и методы создаваемого объекта. Поскольку эта функция играет определяющую роль в создании объекта, ее называют функцией-конструктором или просто конструктором объекта. Что, собственно, должен делать конструктор? Очевидно, он должен ввести имя создаваемого объекта, а также его свойства и методы. Кроме того, он должен допускать возможность присваивания начальных значений свойствам. Имя функции-конструктора объекта является одновременно и именем создаваемого объекта. Свойства и методы создаваемого объекта задаются в теле функции-конструктора с помощью операторов присваивания. При этом имена переменных-свойств записываются с ключевым словом this (этот): this.переменная. Рассмотрим в качестве примера функцию-конструктор, определяющую объект car (автомобиль) со свойствами name (название), model (модель) и color (цвет):

function car(name, model, color) {
this.name = name
this.model = model
this.color = color
}

Эта функция определяет объект car. Чтобы создать конкретный экземпляр объекта car, следует выполнить выражение с вызовом этой функции, которой можно передать значения параметров. Мы уже знаем, что экземпляр объекта создается с помощью оператора присваивания с ключевым словом new:
mycar = new car("Лада", "ВАЗ21099","green")

Итак, мы создали объект mycar, являющийся экземпляром объекта car. Таких экземпляров с различными именами можно создать несколько. Значения свойств объекта mycar можно изменять в программе:

mycar.model // значение равно "ВАЗ21099"
mycar.name // значение равно "Лада"
mycar.model = "ВАЗ2110" // значение равно "ВАЗ2110"

Как видите, объект это просто особый способ группировки данных и их использования (составное имя переменной: объект.свойство).

Объекты можно создавать и с помощью конструктора new Object():

mycar = new Object()
mycar.name = "Лада"
mycar.model = "ВАЗ21099"
mycar.color = "green"

В этом способе отчетливо видно, создаваемый объект является экземпляром объекта Object подобно тому как, например, создаваемый массив является экземпляром объекта Array.
Допускается также и следующая компактная запись определения объекта:
mycar = {name:"Лада", model:"ВАЗ21099", color:"green"}
Здесь все определение свойств заключается в фигурные скобки. Пары свойство-значение разделяются запятыми, а имя свойства отделяется от значения двоеточием.

При создании объекта мы можем задать значения свойств по умолчанию, то есть значения, которые будут иметь свойства, если при создании экземпляра этого объекта значения его свойств не указаны явным образом (то есть имеют значения null, 0 или ""). Это делается с помощью логического оператора ИЛИ (обозначаемого ||) в конструкторе объекта в виде функции:

function car(name, model, color) { // конструктор объекта car
this.name = name || "неизвестно"
this.model = model || "неизвестно"
this.color = color || "black"
}
mycar = new car("Жигули","") // создание экземпляра mycar объекта car
mycar.name // "Жигули"
mycar.model // "неизвестно"
mycar.color // "black"

9.2. Добавление свойств
Если возникает необходимость добавить новое свойство к существующему объекту, а также ко всем его экземплярам, то это можно сделать с помощью свойства prototype. В приведенном ниже примере мы создаем объект car (автомобиль), затем его экземпляр mycar, а затем добавляем к свойству prototype свойство owner (владелец) с конкретным значением:

function car(name, model, color) { // конструктор объекта car
this.name = name || "неизвестно"
this.model = model || "неизвестно"
this.color = color || "black"
}

mycar = new car("Жигули","") /* создание экземпляра mycar объекта car */
mycar.name // "Жигули"
mycar.model //
Читать далее...
комментарии: 0 понравилось! вверх^ к полной версии
Java Script Объект Object Мониста 17-03-2009 21:27


Object является корневым объектом, на котором базируются все остальные объекты JavaScript, такие как String, Array, Date и т. д. В программах можно создавать свои собственные объекты. Это можно сделать различными способами:

function имя_конструктора([пар1,…[, парN]){
код
}
имяОбъекта = new имя_конструктора(["пар1",…[, "парN"])
имяОбъекта = new Object()
имяОбъекта.свойство = значение
имяОбъекта = {свойство1: значение1 [, свойство2: значение2 [,…,N]}

Для обращения к свойствам и методам объекта используется следующий синтаксис:
ссылка_на_объект.свойство
ссылка_на_объект.метод([параметры])

Допустим, например, что нам требуется создать объект Сотрудник, который содержал бы сведения о сотрудниках некоторой фирмы, такие как Имя, Отдел, Телефон, Зарплата и т. п. В фирме может быть много сотрудников, но сведения о них представляются в некоторой единой структуре. Эту структуру можно создать с помощью конструктора объекта:

function Сотрудник(Имя, Отдел, Телефон, Зарплата) {
this.Имя = Имя
this.Отдел = Отдел
this.Телефон = Телефон
this.Зарплата = Зарплата
}

Как видите, конструктор объекта может быть представлен в виде определения функции. Ключевое свойство this представляет ссылку на текущий, то есть определяемый конструктором объект. Все операторы присваивания с this, расположенные в теле функции-конструктора, определяют свойства объекта. В круглых скобках у имени объекта могут перечисляться параметры, чтобы иметь возможность создать конкретный объект, являющийся экземпляром обезличенного объекта Сотрудник, и присвоить его свойствам конкретные значения. Например, создадим конкретного сотрудника — agent007:
agent007 = new Сотрудник("Джеймс Бонд", 5, "223-332", 3600.50)

Доступ к свойствам этого объекта производится обычным способом:
agent007.Имя // "Джеймс Бонд"
agent007.Зарплата // 3600.5

Информация о новом сотруднике добавляется аналогичным образом:
Shtirlitz = new Сотрудник("Максимов", 4, "123-4567",4500.50)
комментарии: 0 понравилось! вверх^ к полной версии
JavaScript Объект Boolean (Логический) Мониста 17-03-2009 21:25


Объект Boolean создается с помощью выражения вида:
переменная = new Boolean(логическое_значение)
Он имеет свойство prototype и методы toString() и значue Of(), которые имеют также объекты String и Number. Смысл свойства prototype мы уже рассматривали применительно к объектам String и Array. Объект Boolean может понадобиться в том случае, кода всем логическим объектам, создаваемым с помощью выражения с ключевыми словами new Boolean нужно добавить новые свойства или методы с помощью прототипа (свойства prototype).
8.7. Объект Function (Функция)
Создание объекта Function Выше мы уже рассматривали стандартный способ определения функции:

function имя_функции(параметры) {
код
}

Существует и другой способ, основанный на выражении с ключевыми словами new Function. Согласно этому способу функция создается как экземпляр объекта Function:
имя_функции = new Function(["пар1", [,"парN"], "оператор1; [; операторN]")

Названия всех параметров являются строковыми значениями. Они разделяются запятыми. Заключительная строка содержит операторы кода тела функции, разделенные точкой с запятой. Вызов функции, определенной как экземпляр объекта Function, можно выполнить обычным способом: имя_функции(параметры).

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

Свойства Function

arguments — массив значений параметров, переданных функции.
Индексация элементов массива производится с 0. Поскольку это массив, он имеет свойства и методы объекта Array (в частности, свойство length —длина массива).
Свойство arguments применяется в теле определения функции, когда требуется проанализировать параметры, переданные ей при вызове. Например, можно узнать, сколько в действительности было передано параметров, не являются ли их значения пустыми ("", 0, null) и т. п. Это свойство особенно полезно при разработке универсальных библиотечных функций.
Синтаксис выражения следующий: имя_функции.arguments.

length — количество параметров, указанных в определении функции.
Синтаксис: имя_функции.length
В отличие от свойства arguments, количество параметров функции можно определить в программе за пределами тела этой функции.
Пример:

function myfunc(a, b, c, d){
return myfunc.arguments.length
}
myfunc(a,b) // 2
myfunc.length // 4

caller — содержит ссылку на функцию, из которой была вызвана данная функция; если функция не вызывалась из другой функции, то значение этого свойства равно null.
Совместимость: IE4+, NN4
Синтаксис: имя_функции.caller
В свойстве имя_функции.caller содержится все определение функции, из которой была вызвана функция имя_функции.

Методы Function

toString() — возвращает определение функции в виде строки.
Синтаксис: имя_функции.toString()

apply( [текущий_объект [, массив_параметров]])

call( [текущий_объект [,пар1[,пар2[,…, парN]]]])

Оба метода используются для вызова функции и дают одинаковые результаты. Отличаются они лишь формой представления параметров. Как известно, функцию можно вызвать просто по имени, за которым следует список параметров в круглых скобках. Особенностью этих методов является то, что с их помощью можно вызвать функцию по ссылке на нее.
Первый параметр обоих методов — ссылка на объект, являющийся текущим для данной функции. Ссылка на объект используется, когда вызываемая функция определена как метод пользовательского объекта.
С помощью метода call() можно передавать параметры, отделенные друг от друга запятыми. Если параметры определены как элементы массива, то вместо call() используется метод apply().
комментарии: 0 понравилось! вверх^ к полной версии
JavaScript Объект дата Мониста 17-03-2009 21:25


8.5. Объект Date (Дата)
Во многих приложениях приходится отображать дату и время, подсчитывать количество дней, оставшихся до заданной даты и т. п. Некоторые программы даже управляются посредством значений дат и времени. В основе всех операций, связанных с датами и временем, лежат текущие системные дата и время, установленные на вашем компьютере. Со временем дела обстоят не так просто, как кажется на первый взгляд. Вспомните, что существуют временные зоны (часовые пояса), а также сезонные поправки времени. Так например, текущее время в Санкт-Петербурге отличается от времени в Иркутске на 5 часов. Если в Иркутске уже полночь, то в Петербурге еще только 19 часов. Чтобы иметь возможность координировать деятельность во времени организаций и физических лиц в различных точках нашей планеты, была введена система отсчета времени. Она связана с меридианом, проходящим через астрономическую обсерваторию в городе Гринвич в Великобритании. Эту временную зону называют cредним временем по Гринвичу (Greenwich Mean Time — GMT). Недавно кроме аббревиатуры GMT стали использовать еще одну — UTC (Coordinated Universal Time — Всеобщее Скоординированное Время).

Если системные часы вашего компьютера установлены правильно, то отсчет времени производится в системе GMT. Однако на Панели управления обычно устанавливается локальное время, соответствующее вашему часовому поясу. При создании и изменении файлов на вашем компьютере фиксируется именно локальное время. Вместе с тем операционная система знает разницу между локальным временем и GMT. При перемещении компьютера из одного часового пояса в другой, необходимо изменить установки именно часового пояса, а не текущего системного времени (показания системных часов). Даты и время, генерируемые в сценариях, сохраняются в памяти в системе GMT, но пользователю выводятся, как правило, в локальном виде. В программе на JavaScript нельзя просто написать 30.10.2002, чтобы получить значение даты, с которым в дальнейшем можно производить некие операции. Значения даты и времени создаются как экземпляры специального объекта Date. При этом объект сам будет «знать», что не бывает 31 июня и 30 февраля, а в високосных годах 366 дней.

Создание объекта даты

Объект даты создается с помощью выражения вида:
имяОбъектаДаты = new Date([параметры])
Параметры не обязательны, на что указывают квадратные скобки. Обратите внимание, что имяОбъектаДаты является объектом даты, а не значением какого-нибудь другого типа (например, строкой или числом). Для манипуляций с объектом даты применяется множество методов объекта Date. При этом используется такой синтаксис:
переменная = имяОбъектаДаты.метод()
Если, например, объекту даты требуется присвоить новое значение, то для этого используется соответствующий метод:
переменная = имяОбъектаДаты.метод(новое_значение)

Рассмотрим в качестве примера изменение значения года текущей системной даты:

xdate = new Date() /* создание объекта, содержащего текущую дату и время */
Year = xdate.getYear() /* в переменной Year содержится значение текущего года */
Year = Year + 3 /* в переменной Year содержится значение,
большее, чем текущий год на 3 */
xdate.setYear(Year) /* в объекте устанавливается новое
значение года */

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

new Date("Месяц дд, гггг чч:мм:сс")
new Date("Месяц дд, гггг")
new Date(гг, мм, дд, чч, мм, сс)
new Date(гг, мм, дд)
new Date(милисекунды)

В первых двух способах параметры задаются в виде строки, в которой указаны компоненты даты и времени. Буквенные обозначения определяют шаблон параметров. Обратите внимание на разделители — запятые и двоеточия. Время указывать не обязательно. Если компоненты времени опущены, то устанавливается значение 0 (полночь). Компоненты даты обязательно должны быть указаны. Месяц указывается как полное его английское название (аббревиатуры не допускаются). Остальные компоненты указываются в виде чисел. Если число меньше 10, то можно писать одну цифру, не записывая ведущий 0 (например, 3:05:32). В третьем и четвертом способах компоненты даты и времени представляются целыми числами, разделенными запятыми. В последнем способе дата и время задаются целым числом, которое представляет количество миллисекунд, прошедших с начала 1 января 1970 года (то есть с момента 00:00:00). Количество миллисекунд, отсчитанное от указанной стартовой даты, позволяет вычислить все компоненты и даты, и времени.

Методы объекта Date

Для чтения и изменения информации о дате и времени, хранящейся в объекте даты, служат методы объекта Date (см. таблицу). Напомним, что объект даты создается с помощью выражения:
имяОбъектаДаты = new Date([параметры])
Затем, чтобы применить метод метод() к объекту даты имяОбъектаДаты, следует написать: имяОбъектаДаты.метод([параметры]). Довольно большое множество всех методов можно разделить на две категории:
Читать далее...
комментарии: 0 понравилось! вверх^ к полной версии
Объект Math (Математика) Мониста 17-03-2009 21:24


Объект Math (Математика)
Объект Math предназначен для хранения некоторых математических констант (например, число π) и выполнения преобразований чисел с помощью типичных математических функций. Доступ к свойствам и методам объекта Math обеспечивается следующими выражениями:
Math.свойство
Math.метод(параметры)

Свойства Math

Свойства объекта Math имеют в качестве своих значений математические константы.

Е постоянная эйлера
LN10 значение натурального логарифма числа 10
LN2 значение натурального логарифма числа 2
LOG10E значение десятичного логарифма экспоненты (числа e)
LOG2E значение двоичного логарифма экспоненты
PI значение постоянной p
SQRT1_2 значение квадратного корня из 1/2
SORT значение квадратного корня из 2

Методы Math

abs(число) — возвращает модуль (абсолютное значение) числа acos(число) — возвращает арккосинус числа asin(число) — возвращает арксинус числа atan(число) — возвращает арктангенс числа atan2(x, у) — возвращает угол в полярных координатах точки сеil(число) — округляет число вверх до ближайшего целого соs(число) — возвращает косинус числа еxp(число) — возвращает число е в степени число floor(число) — округляет число вниз до ближайшего целого log(число) — возвращает натуральный логарифм числа max(число1,число2) — возвращает большее из чисел число1, число2 min(число1,число2) — возвращает меньшее из чисел число1, число2 pow(число1,число2) — возвращает число1 в степени число2 random() — возвращает случайное число между 0 и 1 round(число) — округляет число до ближайшего целого sin(число) — возвращает синус числа sqrt(число) — возвращает квадратный корень из числа tan(число) — возвращает тангенс числа
комментарии: 0 понравилось! вверх^ к полной версии
Объект Number (Число) Мониста 17-03-2009 21:23


8.3. Объект Number (Число)
При разработке Web-страниц математические операции используются не столь часто, в отличии от строковых. Обычно они связаны с изменением координат элементов страницы (свойства top, left, width, height каскадной таблицы стилей). Однако встречаются и более сложные случаи. Например, может потребоваться вычислить статистические характеристики данных, содержащихся в некоторой таблице. Так или иначе, в этих задачах необходимо иметь дело с числами. О числах мы уже говорили в разделе, посвященном типам данных. Теперь рассмотрим их более подробно.

Числа в JavaScript

В JavaScript числа могут быть только двух типов: целые и с плавающей точкой. Целые числа не имеют дробной части и не содержат разделительной точки. Числа с плавающей точкой имеют целую и дробную части, разделенные точкой. Операции с целыми числами процессор компьютера выполняет значительно быстрее, чем операции с числами, имеющими точку. Это обстоятельство имеет смысл учитывать, когда расчетов много. Например, индексы, длины строк являются целочисленными. Многие числа, полученные с помощью оператора деления, денежные суммы и т. п. являются числами с плавающей точкой. В JavaScript можно производить операции с числами различных типов. Это очень удобно. Однако при этом следует знать, какого числового типа будет результат. Если результат операции является числом с дробной частью, то он представляется как число с плавающей точкой. Если результат оказался без дробной части, то он приводится к целочисленному типу, а не представляется числом, у которого в дробной части одни нули. Вот несколько примеров:

2 + 3 // 7 — целое число
2 + 3.6 // 5.6 — число с плавающей точкой
2.4 + 3.6 // 6 — целое число
6.00 // число с плавающей точкой

Числа можно представлять и в так называемой экспоненциальной форме, то есть в формате:
число1eчисло2 или число1Eчисло2. Такая запись числа означает число110число2 . Например:

1e5 // 100 000
2e6 // 2 000 000
1.5e3 // 1500
+1.5e3 // 1500
-1.5e3 // -1500
3e-4 // 0.0003

Числа в JavaScript можно представлять в различных системах счисления, то есть в системах с различными основаниями: 10 (десятичной), 16(шестнадцатеричной) и 8 (восьмеричной). К десятичной форме представления чисел мы привыкли, однако следует помнить, что числа в этой форме не должны начинаться с 0, потому что так записываются числа в 8-й системе. Запись числа в 16-й форме начинается с префикса 0x (или 0X), где первый символ ноль, а не буква О, затем следуют символы шестнадцатеричных цифр: 0, 1, 2,…,9,a,b,c,d,e,f (буквы могут быть в любом регистре). Например, шестнадцатеричное число 0x4af в десятичном представлении есть 1199). Запись числа в 8-й форме начинается с нуля, за которым следуют цифры от 0 до 7. Например, 027 (в десятичном представлении — 23).
В арифметических выражениях числа могут быть представлены в любой из перечисленных выше систем счисления, однако результат всегда приводится к десятичной форме.

Создание объекта Number

Числа можно создавать обычным образом с помощью переменных и оператора присваивания, не прибегая к объекту Number. Однако этот объект обладает некоторыми полезными свойствами и методами, которые иногда могут пригодиться.
Объект Number создается с помощью выражения вида:
переменная = new Number(число)
Доступ к свойствам и методам строкового объекта обеспечивается такими выражениями:
число.свойство
Number.свойство

число.метод([параметры])
Number.метод([параметры])

Свойства Number


MAX_VALUE — константа, значение которой равно наибольшему допустимому в JavaScript значению числа (1.7976931348623157e+308).
MIN_VALUE — константа, значение которой равно наименьшему допустимому в JavaScript значению числа (5e-324).
NEGATIVE_INFINITY — число, меньшее, чем Number.MIN_VALUE
POSITIVE_INFINITY — число, большее, чем Number.MAX_VALUE
NaN — константа, имеющая значение NaN, посредством которой JavaScript сообщает, что данные (параметр, возвращаемое значение) не является числом (Not a Number).
prototype — свойство (прототип), играющее такую же роль, что и в случае объекта String (см. выше).

Методы Number

Объект Number имеет несколько методов, из которых мы рассмотрим только четыре, предназначенные для представления чисел в виде строки в том или ином формате.

toExponential(количество) — представляет число в экспоненциальной форме.
Синтаксис: число. toExponential(количество)
Возвращает строку. Совместимость: IE5.5+, NN6+.
Параметр представляет собой целое число, определяющее, сколько цифр после точки следует указывать.

toFixed(количество) — представляет число в форме с фиксированным количеством цифр после точки.
Синтаксис: число. toFixed(количество)
Возвращает строку. Совместимость: IE5.5+, NN6+.
Параметр представляет собой целое число, определяющее, сколько цифр после точки следует указывать.

toPrecision(точность) — представляет число с заданным общим количеством значащих цифр.
Синтаксис: число. toPrecision (точность)
Возвращает строку.
Читать далее...
комментарии: 0 понравилось! вверх^ к полной версии
JavaScript Array (массив) Методы Array Мониста 17-03-2009 21:22


Методы Array

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

сoncat(массив) — конкатенация массивов, объединяет два массива в третий массив.
Синтаксис: имя_массива1.concat(массив2)
Возвращает массив. Данный метод не изменяет исходные массивы.

join(разделитель) — создает строку из элементов массива с указанным разделителем между ними; является строкой символов (возможно, пустой)
Синтаксис: имя_массива.join(строка)
Возвращает строку символов.

pop() — удаляет последний элемент массива и возвращает его значение.
Синтаксис: имя_массива.pop()
Возвращает значение удаленного элемента массива. Совместимость: IE5.5+
Данный метод изменяет исходный массив.

push(значение|объект) — добавляет к массиву указанное значение в качестве последнего элемента и возвращает новую длину массива.
Синтаксис: имя_массива1.push(значение|объект)
Возвращает число.
Совместимость: IE5.5+
Данный метод изменяет исходный массив.

shift() — удаляет первый элемент массива и возвращает его значение.
Синтаксис: имя_массива.shift()
Возвращает значение удаленного элемента массива. Совместимость: IE5.5+, NN4+.
Данный метод изменяет исходный массив.

unshift(значение|объект) — добавляет к массиву указанное значение в качестве первого элемента.
Синтаксис: имя_массива.unshift(значение|объект)
Возвращает: ничего.
Совместимость: IE5.5+
Данный метод изменяет исходный массив.

reverse() — изменяет порядок следования элементов массива на противоположный.
Синтаксис: имя_массива.reverse()
Возвращает массив.
Данный метод изменяет исходный массив.

slise(индекс1 [, индекс2]) — создает массив из элементов исходного массива с индексами указанного диапазона.
Синтаксис: имя_массива. slise(индекс1 [, индекс2])
Возвращает массив. Данный метод не изменяет исходный массив.
Второй параметр (конечный индекс) не является обязательным, о чем свидетельствуют квадратные скобки в описании синтаксиса. Если он не указан, то создаваемый массив содержит элементы исходного массива, начиная с индекса индекс1 и до конца. В противном случае создаваемый массив содержит элементы исходного массива, начиная с индекса индекс1 и до индекса индекс2, за исключением последнего. При этом исходный массив остается без изменений.

sort([функция_сортировки]) — сортирует (упорядочивает) элементы массива с помощью функции сравнения.
Синтаксис: имя_массива. sort([функция_сравнения])
Возвращает массив. Данный метод изменяет исходный массив.
Параметр не обязателен, о чем свидетельствуют квадратные скобки.
Если параметр не указан, то сортировка производится на основе сравнения ASCII-кодов символов значений. Это удобно для сравнения символьных строк, но не совсем подходит для сравнения чисел. Так, число 357 при сортировке считается меньшим, чем 85, поскольку сначала сравниваются первые символы и только в случае их равенства сравниваются следующие, и т. д. Таким образом, метод sort() без параметра подходит для простой сортировки массива со строковыми элементами. Можно создать свою собственную функцию для сравнения элементов массива, с помощью которой метод sort() отсортирует весь массив. Имя этой функции (без кавычек и круглых скобок) передается методу в качестве параметра. При работе метода функции передаются два элемента массива, а ее код возвращает методу значение, указывающее, кокой из элементов должен следовать за другим. Допустим, сравниваются два элемента, x и y. Тогда в зависимости от числового значения (отрицательного, 0 или положительного), возвращаемого функцией сравнения, методом sort принимается одно из трех возможных решений:


Значение, возвращаемое функцией сравнения Результат сравнения x и y
<0 y следует за x
0 Порядок следования x и y не изменяется
>0 x следует за y

Итак, по какому критерию сортировать элементы массива, определяется кодом функции сравнения. Если элемент массива имеет значение null, то в Internet Explorer он размещается в начале массива.

splice(индекс, количество [, элем1 [, элем2 [, …элемN]]]) — удаляет из массива несколько элементов и возвращает массив из удаленных элементов, или заменяет значения элементов.
Синтаксис: имя_массива splice(индекс, количество [, элем1 [, элем2 [, …элемN]]])
Возвращает массив. Совместимость: IE5.5+. Данный метод изменяет исходный массив.
Первые два параметра обязательны, а следующие — нет. Первый параметр является индексом первого удаляемого элемента, а второй — количеством удаляемых элементов.
Метод splice() позволяет также заменить значения элементов исходного массива, если указаны третий и, возможно, последующие параметры. Эти параметры представляют значения, которыми следует заменить исходные значения элементов массива. При таком использовании метода splice() важен первый параметр (индекс), а второй (количество) может быть равным нулю. В любом случае, если количество элементов замены больше значения второго параметра, то часть элементов исходного массива будет заменена, а часть элементов будет просто
Читать далее...
комментарии: 0 понравилось! вверх^ к полной версии
JavaScript Array (массив) Мониста 17-03-2009 21:21


8.2. Объект Array (Массив)
Массив представляет собой упорядоченный набор данных. Его удобно представить себе в виде одностолбцовой таблицы, содержащей некоторое количество строк. В ячейках такой таблицы могут находиться данные любого типа, в том числе и массивы. В последнем случае можно говорить о многомерных массивах (то есть о массивах массивов). Количество элементов в массиве (строк в таблице) называется длиной массива. К элементам массива можно обращаться в программе по их порядковому номеру (индексу). Нумерация элементов массива начинается с нуля, так что первый элемент имеет индекс 0, а последний — на единицу меньший, чем длина массива.
Массивы применяются во многих более или менее сложных программах обработки данных, а в некоторых случаях без них просто не обойтись. Если среди используемых данных есть группы таких, которые обрабатываются одинаковым образом, то, возможно, лучше организовать их в виде массива.

Создание массива

Существует несколько способов создания массива. В любом случае прежде всего создается новый объект массива с использованием ключевого слова new:
имя_массива = new Array([длина_массива])
Здесь длина_массива является необязательным числовым параметром, о чем говорят квадратные скобки. Если длина массива не указана, то создается пустой массив, не содержащий ни одного элемента. В противном случае создается массив с указанным количеством элементов, однако все они имеют значение null (то есть не имеют значений). Вы можете сначала создать пустой массив, а затем добавить к нему нужное количество элементов с помощью оператора присваивания. Заметим, что выражение с ключевыми словами new Array создает экземпляр (копию) объекта Array. У объекта Array имеется свойство length, значением которого является длина массива. Чтобы получить значение этого свойства, необходимо использовать выражение имя_массива.length. Создав массив, можно присвоить значения его элементам, используя для этого оператор присваивания. В левой части оператора присваивания указывается имя массива, а рядом с ним в квадратных скобках индекс элемента. Мы уже говорили, что к элементам массива обращаются по индексу: имя_массива[индекс]. Здесь квадратные скобки обязательны.

Рассмотрим создание массива earth, содержащего в качестве элементов некоторые характеристики нашей планеты. Обратите внимание, что элементы в этом массиве различных типов (строковые и числовые).

earth = new Array(4) // массив из 4-х элементов
earth[0] = "Планета"
earth[1] = "24 часа"
earth[2] = 6378
earth[3] = 365.25

earth.length // значение равно 4

Если нам потребуется значение, например, третьего элемента массива, то достаточно использовать выражение earth[2].

Другой способ создания массива заключается в непосредственном определении элементов в круглых скобках за ключевым словом Array. Например,
earth = new Array("Планета", "24 часа", 6378, 365.25)

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

Третий способ создания массива — присвоить имя каждому элементу, подобно имени свойства объекта. Например,

earth = new Array() // пустой массив
earth.xtype = "Планета"
earth.xday = "24 часа"
earth.radius = 6378
earth.period = 365.25

В этом случае обращение к элементу происходит как к свойству объекта, например, earth.radius. Возможен и такой вариант: earth["radius"]. Однако по индексу к элементам в таком массиве обращаться нельзя.

Многомерные массивы

Массивы, рассмотренные выше, являются одномерными. Их можно представить себе в виде таблицы из одного столбца. Однако элементы массива могут содержать данные различных типов, в том числе и объекты, а значит и массивы. Если в качестве элементов некоторого одномерного массива создать массивы, то получится двумерный массив. Обращение к элементам такого массива происходит в соответствии со следующим синтаксисом:
имя_массива[индекс_уровня1] [индекс_уровня2]

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

Типичным примером двумерного массива является массив опций меню. У такого меню есть горизонтальная панель с опциями, называемая главным меню. Некоторым опциям главного меню соответствуют раскрывающиеся вертикальные подменю со своими опциями. Мы создаем массив, длина которого равна количеству опций главного меню. Элементы этого массива определяем как массивы названий опций соответствующих подменю. Чтобы была ясна структура нашей конструкции, мы выбрали названия опций надлежащим образом. Например, "Меню 2.1" — название 1-й опции подменю, соответствующего 2-й опции главного меню.

menu = new Array()
menu[0] = new array("Меню 1.1", "Меню 1.2", ", "Меню 1.3")
menu[1] = new array("Меню 2.1", "Меню 2.2")
menu[2] = new array("Меню 3.1", "Меню 3.2" , "Меню 3.3", "Меню 3.4")

Чтобы обратиться ко 2-й опции 3-го
Читать далее...
комментарии: 0 понравилось! вверх^ к полной версии