Wiki-учебник по веб-технологиям: JavaScript/ПредопределенныеОбъекты ...

Главная | Каталог |

Date-объект


Java Script? позволяет Вам использовать некоторые предопределенные объекты. Например такие как Date-object, the Array-object или the Math-object. Есть несколько других объектов – пожалуйста обратитесь к документации, предоставленной Netscape для полной справки.
Мы собираемся сначала взглянуть на Date-object. Как подразумевает имя, этот объект позволяет Вам работать со временем и датой. Например Вы можете легко вычислить, сколько дней осталось до следующего рождества. Или Вы можете добавлять текущее время в ваш HTML-документ.
Так что давайте начнём с примера, который отображает текущее время. Сначала мы должны создать новый Data-объект. Для этой цели мы используем оператор new. Посмотрите на эту строку кода:

today= new Date()

Так создается новый Date-объект, названный today. Если Вы не определяете некоторую дату и время при создании нового Date-объекта, используется текущая дата и время. Это означает после выполнения today= new Date() the new Date-object today новый Date-объект today отображает дату и время этого определенного момента.
Date-объект предлагает некоторые методы, которые теперь могут использоваться с нашим объектом today. Например это getHours(), setHours(), getMinutes(), setMinutes(), getMonth(), setMonth() и так далее. Вы можете найти полную справку по Date-объекту и его методов в Netscapes документации Java Script?.
Пожалуйста обратите внимание, что Date-объект только представляет некоторую дату и время. Это не часы, которые автоматически изменяют время каждую секунду или миллисекунду.
Чтобы получить другую дату и время, мы можем использовать другой конструктор (это – метод Date(), который вызван через оператора new при построении нового объекта даты):

today= new Date(1997, 0, 1, 17, 35, 23)

Так создается Date-объект который отобряжает первое января 1997 17:35 и 23 секунды. Так что Вы определяете дату и время подобно этому :

Date(year, month, day, hours, minutes, seconds)

Пожалуйста обратите внимание, что Вы должны использовать 0 в качестве января – а не 1, как Вы могли бы подумать. 1 в качестве февраля и так далее.

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

Сценарий выглядит так:



Здесь мы используем методы типа getHours() чтобы отобразить время и дату, определенного снаружи Date-объекте now. Вы видите, что мы добавляем 1900 к году. Метод getYear() возвращает число лет начиная с 1900. Это означает, что если год 1997, то он возвратит 97, если год – 2010, то он возвратит 110 – а не 10! Если мы добавляем 1900, мы не будем иметь проблему 2000 года. Не забудьте, что мы должны увеличить на единицу число, которое мы получили через getMonth().
Этот сценарий не проверяет, является ли число минут меньше чем 10. Это означает, что Вы можете получить время, которое выглядит следующим образом: 14:3 которое фактически означает 14:03. Мы видим в следующем сценарии, как решить эту проблему.

Теперь мы взглянем на сценарий, который отображает работающие часы:

Вот исходный текст:



Мы используем метод setTimeout() для установки времени и датируемся каждую секунду. Так что мы создаем каждую секунду новый объект даты с текущим временем.
Вы можете видеть, что функция Clock() вызваны с обработчиком события onLoad в теге <body>. В теле нашей HTML-страницы мы имеем два текстовых поля ввода. Функция Clock() пишет время и дату в эти два элемента формы в правильном формате. Вы видите, что мы используем две строки timeStr и dateStr для этой цели. Мы упомянули ранее, что имеется проблема с числом минут меньше чем 10 – этот сценарий решает эту проблему посредством этой линии кода:

timeStr+= ((minutes < 10) ? “:0” : “:") + minutes;

Здесь число минут прибавляется к строке timeStr. Если минут меньше чем 10, мы должны добавить 0. Следующая линия кода может выглядеть немного странной для Вас. Вы могли бы записать её в более привычном для вас виде, так как представлено ниже:

if (minutes < 10) timeStr+= “:0” + minutes
else timeStr+= “:" + minutes;

Array-объект


Массивы очень важны. Только думайте о примере, где Вы хотите сохранить 100 различных имен. Как Вы могли бы делать это с Java Script?? Хорошо, Вы могли бы определить 100 переменных и присвоить им различные имена. Это слишком сложно.
Массивы могут быть рассмотрены, как множество переменных, связанных вместе. Вы можете обращаться к ним через одно имя и номер. Предположим, массив назван names. Значит мы можем обращаться к первому имени через names[0]. Второе имя называется name[1] и так далее.
Начиная с Java Script? 1.1 (Netscape Navigator 3.0) можете использовать Array-объект. Вы можете создавать новый массив через myArray= new Array(). Теперь Вы можете присвоить значения этому массиву:

myArray[0]= 17;
myArray[1]= “Stefan”;
myArray[2]= “Koch”;

Массивы Java Script? очень гибки. Вы не должны беспокоиться относительно размера массива – размер устанавливается динамически. Если Вы пишете myArray[99]= “xyz” размер массива устанавливается как 100 элементов (Java Script? массив может только расти – он не имеет способности сжиматься. Так что держите ваши массивы маленькими, насколько это возможно).
Не имеет значение, сохраняете ли Вы числа, строки или другие объекты в массиве. Я не упомянул все детали массивов здесь, но я надеюсь, что Вы увидите, что массивы – очень важное понятие.
Конечно много вещей становят более ясными после рассмотрения примера. Результат работы следующего примера:



Сначала мы создаем новый массив, называющийся myArray. Затем мы присваиваем три различных значения этому массиву. После этого, мы запускаем цикл. Этот цикл выполняет команду document.write(myArray[i] + “<br>"); три раза. Переменная i изменяется от 0 до 2 этим for-циклом. Вы видите, что мы используем myArray[i] внутри цикла for. Поскольку i изменяется от 0 до 2, мы получаем три вызова document.write (). Мы могли бы записать цикл по-другому:

document.write(myArray[0] + “<br>");
document.write(myArray[1] + “<br>");
document.write(myArray[2] + “<br>");

Массивы в Java Script? 1.0

Поскольку Array-объект не существует в Java Script? 1.0 (Netscape Navigator 2.x и Microsoft Internet Explorer 3.x) мы должны подумать об альтернативе. Эта часть кода могла бы быть найдена в докуметации Netscape:



Теперь вы можете создать массив с помощью:

myArray= new initArray(17, 3, 5);

Числа внутри скобок – значения, с которымы массив инициализируется (также это может быть выполнено с помощью Array-объекта из Java Script? 1.1). Пожалуйста обратите внимание, что этот вид массива не содержит всех элементов, котрые имеет Array-объект из Java Script? 1.1 (имеется например метод sort(), который позволяет Вам сортировать все элементы в указаном порядке).

Math-объект


Если Вы должны производить математические вычисления, Вы найдете некоторые методы в Math-объекте, который далее мог бы Вам помочь. Имеется например метода синуса sin(). Вы найдете полную справку в документации Netscape
Я хочу прокомментировать метод random(). Если Вы читали первую версию этого учебника, Вы знаете, что имелись некоторые проблемы с методом random(). Мы записали функцию, которая позволяет нам получать произвольные числа. Мы не нуждаемся в этом больше, так как метод random() теперь работает на всех платформах.
Если Вы вызовете Math.random?() Вы получите произвольное число между 0 и 1.