Встроенные объекты Array, Date, Math
Объект Array
Массив является объектом и имеет ряд свойств и методов. Единственным свойством массива является length, которое показывает количество элементов, содержащихся в массиве.
Ниже описаны основные методы массивов:
concat([item1 : { Object | Array } [, ... [, itemN : { Object | Array }]]]]) : Array – возвращает массив, состоящий из исходного массива и любого количества новых элементов;
join(separator : String) : String – возвращает строку, содержащую все элементы массива, разделенные строкой;
pop() : Object – удаляет последний элемент массива и возвращает его;
push([item1 : Object [, ... [, itemN : Object]]]) : Number – добавляет в конец массива новые элементы; если один из аргументов – массив, он добавляется как один элемент;
shift() : Object – удаляет первый элемент массива и возвращает его;
sort(sortFunction : Function ) : Array – возвращает отсортированный массив;
unshift([item1 : Object [, ... [, itemN : Object]]]) : Array – добавляет один или больше новых элементов в начало массива.
Объект Date
Объект Date предоставляет набор методов для работы с датой и временем.
Текущее время в объекте Date берется из операционной системы. Дата и время в объекте Date хранятся в виде числа, показывающего количество миллисекунд, прошедшее с 1 января 1970 года. Также следует помнить, что нумерация месяцев и дней недели начинается также с нуля, нулю соответствует воскресенье.
У объекта Date два конструктора с разными наборами параметров:
function Date( [dateVal : { Number | String } ] ) – если тип параметра – число, оно воспринимается как количество миллисекунд с 1 января 1970 года; если строка, то она преобразуется в соответствии с шаблоном "month dd, yyyy hh:mm:ss";
function Date( year : int, month : int, date : int[, hours : int [, minutes : int [, seconds : int [, ms : int]]]] ) – в качестве параметров передается год, месяц и день, в качестве необязательных параметров может передаваться время.
Если при создании экземпляра объекта Date никаких параметров не передается, то этому экземпляру присваивается текущая дата.
Приведем некоторые методы объекта Date. Они начинаются с префикса set и устанавливают определенные значения. Существует также аналогичный набор методов с префиксом get, который возвращает атрибуты объекта Date.
setDate(numDate : Number) – устанавливает день в месяце, если устанавливаемое значение больше количества дней в месяце, то устанавливается следующий месяц и день, равный numDate минус количество дней в текущем месяце. Например, если текущая дата 10 января 2008 года и в setDate() передается число 33, то дата станет 2 февраля 2008 года. Если в setDate() передается отрицательное значение, то поведение в этом случае аналогично;
setFullYear(numYear : Number [, numMonth Number [, numDate Number]]) – устанавливает год, в качестве необязательных параметров можно указать месяц и день;
setHours(numHours : Number [, numMin : Number [, numSec : Number [, numMilli : Number ]]]) – устанавливает часы, необязательными параметрами являются минуты, секунды и миллисекунды;
setMilliseconds(numMilli : Number) – устанавливает миллисекунды;
setMinutes(numMinutes : Number [, numSeconds : Number [, numMilli : Number]]) – устанавливает минуты, необязательными параметрами являются секунды и миллисекунды;
setMonth(numMonth : Number [, dateVal : Number]) – устанаваливает месяц, необязательный параметр – день от начала месяца;
setSeconds(numSeconds : Number [, numMilli : Number]) – устанавливает секунды, необязательный параметр – миллисекунды;
setTime(milliseconds : Number) – устанавливает время в миллисекундах, прошедших с 1 января 1970 года.
Важное значение имеет метод parse, который преобразует дату в строку по заданному шаблону. Для более подробной информации по преобразованию даты в строку смотрите MSDN Library.
<!-- пример # 3: часы. Использование методов объекта Date -->
<html> <head>
<title>Clock</title>
<script type="text/JavaScript">
function clockform()
{d=new Date();
time=d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();
document.formcl.fclock.value=time;
setTimeout("clockform()",100); }
</script>
</head>
<body onLoad="clockform()">
<center>
<form name=formcl metod="get">
<input name=fclock maxlength=8 size=8>
</form> </center>
</body></html>
Объект Math
Объект Mathсодержит в себе набор констант и методов, расширяющих базовые арифметические операции.
Невозможно создать экземпляр объекта Math, так как он является статиче-
ским и создается автоматически во время выполнения скрипта.
Приведем пример возведения числа в степень:
alert(Math.pow(10,3));
//выведет 1000
<!--пример # 4: функция вычисления площади круга -->
<html>
<head>
<title>Функция вычисления площади круга </title>
</head>
<body>
<script type="text/javascript">
function sq(r) {
document.write("Задали r= ", r ,
" для функции.","<BR>")
return Math.PI*r * r;
}
var r=2;
document.write("Площадь круга равна ",sq(r),".")
</script>
</body> </html>
Объекты window и document
Объектная модель JavaScript предоставляет возможность работы с объектами, зависящими от браузера (window,navigator,location и т.д.) и объектами, относящимися к HTML-документу (document,forms,frames и т.д.);
Ниже представлена схема документа, которая позволяет манипулировать свойствами и структурой документа.
Объект windowявляется объектом верхнего уровня в иерархии JavaScript. Ссылки self и window являются синонимами для текущего окна. Вы можете закрыть текущее окно, используя window.close() или self.close().Ссылка top указывает на самое верхнее окно, а parent ссылается на окно, содержащее frameset. Когда вы открываете или закрываете окно внутри события, необходимо определить window.open() или window.close() вместо open() или close(), так как вызов close()
В следующем примере рассмотрим использование метода window.open() для открытия минимизированного окна.
<!-- пример # 5: минимизация окна и его удаление-->
<html> <head>
<title> Минимизация окна </title>
<script type="text/JavaScript">
function makeicon()
{
window.open("pr1.htm","icon", //открытие окна
"resizable=yes,scrollbars=yes,width=50,height=70");
window.close(); //закрытие старого окна
}
</script>
</head><body>
<h1>minimize page</h1>
<form name=formicon>
<input name=ibutton type=button value=mini onClick="makeicon()">
</form>
</body></html>
Метод open() открывает новое окно web-браузера. Синтаксис:
[windowVar=][window].open("URL", "winName", "windowFeatures"])
windowVar – имя нового окна; URL определяет URL, открываемый в новом окне; winName – имя окна; windowFeatures – список через запятую любых из следующих опций или значений:
toolbar[=yes | no] – создает стандартные рабочие инструменты с такими кнопками, как "Back" и "Forward";
location[=yes | no] – создает поле ввода Location;
directories status[=yes | no] – создает строку состояния внизу окна;
menubar[=yes | no] – создает меню вверху окна;
scrollbars[=yes | no] – создает горизонтальную и вертикальную прокрутки, когда документ больше, чем размер окна;
resizable[=yes | no] – позволяет пользователю изменять размер окна;
width=pixels,height=pixels – размеры окна в пикселях.
Опции разделяются запятой. Не делайте пробелов между опциями!
Следующие объекты являются наследниками объекта window: document,frame,location.
Методы:alert(),confirm(),prompt(),open(),close(),setTimeout(),ClearTimeout(). События: onLoad,onUnload .
В систему введено свойство opener, которое определено для текущего окна или фрейма, а методы blur и focus распространены на работу с окнами. Свойство opener определяет окно документа, который вызвал открытие окна текущего документа. Свойство определено для любого окна и фрейма. Если нужно выполнить некоторые действия по отношению к окну, открывшему данное окно, то можно использовать выражение типа: window.opener.[method]. Например, если требуется закрыть окно-предшественник, то можно выполнить метод close(): window.opener.close()
Можно менять и другие свойства объектов в окне-предшественнике. Например, для окна-предшественника определить голубой цвет в качестве цвета фона: window.opener.document.bgColor ='cyan'
Следующий пример переназначает для текущего окна окно-предшественник:
window.opener= new_window
Объект Document
Объект Document содержит ряд свойств и методов, позволяющих изменять сам документ. В следующем примере используется массив all, содержащий все элементы документа для вывода списка используемых на странице тегов.
<!--пример # 6: список используемых на странице тегов -->
<html> <head>
<title> Список используемых на странице тегов </title>
<script type="text/javascript">
function findtags()
{var tag;
var tags="страница содержит следующие теги";
for(i=0;i<document.all.length;i++)
{tag=document.all(i).tagName;
tags=tags+"\r"+tag;}
alert(tags);
return tags;}
</script>
</head>
<body onload="findtags()">
<h2 onMouseover="findtags()">Вывод списка используемых на
странице тегов в окно предупреждений </h2>
</body> </html>
<!-- пример # 7: изменение фона документа при выборе кнопки - цвета с помощью свойства bgColor объекта Document -->
<html> <head>
<title>bgcolor</title>
</head>
<body text=000000 bgcolor=ffffff>
<table border=0 align=center>
<tr><td><form>
<input type=button value="красный"
onClick= "document.bgColor ='ff0000'" >
<input type=button value="желтый"
onClick="document.bgColor ='ffff00'">
<input type=button value="синий"
onClick="document.bgColor= '0000ff'">
<input type=button value="голубой"
onClick="document.bgColor= '87ceeb'">
</form></td>
</table>
</body> </html>