ЖУРНАЛ ХАКЕР

Ява Золотая: история с географией

Radagast Kary

Спецвыпуск хакер, номер #002, стр. 002-056-4


Но, понятное дело, это еще не все. Теперь мы с тобой рассмотрим еще шесть потомков Object, которыми так или иначе пользуются JavaScript-программисты.

Array - массив. Инициализируется так:

var mycoolArray=new Array(2);

var yourcoolArray=new Array(2,3,4);

var ourcoolArray=new Array(new Array(2), new Array(4,5));

В вышеприведенных примерах в первом случае создается одномерный массив размера 2 (размер массива всегда доступен по arrayName.length), во втором случае - тоже одномерный, но длины 3 и заполненный не нулями, а вполне определенными циферками. Третий пример комбинирует два предыдущих, создавая двумерный массив.

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

function incDim(l)

{

if (l=='nil')

{

var g=new Array(1);

g[0]=new Array(2);

return g;

};

var g=new Array(l.length+1),i;

for(i=0;i<l.length;i++)

{

// в этом примере массив двумерный, но может быть

// и по-другому. Фантазируйте!

g[i]=new Array(2);

g[i][0]=l[i][0];

g[i][1]=l[i][1];

}

g[l.length]=new Array(2);

return g;

}

Boolean - очень малозначный (как и положено) булев тип. Тrue означает правду, false - ложь. Вообще-то, JavaScript - язык бестиповый, как будет отмечено ниже, но полезно знать, что при умышленном конвертировании true переходит в 'true' строковое или 1 числовое, false - в 'false' или 0 соответственно. При конвертировании в Boolean любое не нулевое значение перейдет в true.

Date - немного напоминающий и Global, и Object. Как константа только для чтения существует объект Date. И такой же (только маленький и неизменный) объект может быть создан в любом месте твоего скрипта. Как типовую задачку можно рассмотреть создание часов в статусной строке (это внизу бравзера есть такая фигня).

<HTML>

<HEAD>

<SCRIPT>

// Функцию надо вызывать только один раз.

function display_time_in_status_line()

{

var d = new Date(); // который час?

var h = d.getHours(); // час от 0 до 23

var m = d.getMinutes(); // минуты от 0 до 59

var ampm = (h >= 12)?"PM":"AM"; // AM или PM?

if (h > 12) h -= 12; // нам нужно только первые 12

if (h == 0) h = 12; // полночь

if (m < 10) m = "0" + m; // добавить нулей

var t = h + ':' + m + ' ' + ampm; // пусть лежат вместе

defaultStatus = t; // оно!!!

setTimeout("display_time_in_status_line()", 60000);

// делать ту же гадость каждую минуту

}

</SCRIPT>

</HEAD>

<BODY onLoad="display_time_in_status_line();">

<!-- Здесь лежит очень большой и страшный HTML документ -->

</BODY>

</HTML>

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

function mycoolfunction(f)

{

alert(f++);

return --f;

}

а извращенная форма будет так:

var mycoolvar=new Function("f","alert(f++);return --f;");

Назад на стр. 002-056-3  Содержание  Вперед на стр. 002-056-5