6. Встроенные объекты и функции.

     Язык JavaScript содержит следующие встроенные (built-in) объекты и функции:

     - String объекты,
     - Math объекты,
     - Date объекты,
     - встроенные функции.

6.1. Stri>ng объекты.

     В язаыке JavaScript при присвоении значения переменной или свойству, всегда создается объект типа string . Литеральные строки также являются объектами типа string . Нпример, оператор

     mystring = "Hello, World!"

создает объект типа string с именем mystring .

     У объектов типа string имеются ряд методов, выполняющих:

     - изменение строк, такие как - выделение подстроки и изменение строки,
     - HTML форматирование символов, такие как bold и link.

Например, для приведенного выше объекта выполняется преобразование:

     mystring.toUpperCase()

и результатом будет строка: "HELLO,WORLD!",

     Методы объекта string:

ancor, big, blink, bold, charAt, fixed,
fontcolor, fontsize, indexOf, italics, lastIndexOf, link,
small, strike, sub, substring, toLowerCase, toUpperCase.

Примеры:

1. position = 10;
    msg = "Welcome to my home Web page";
    subs = msg.substring(position,position+5)

2.subs.toUpperCase()

3. worldstring = "Hello, world";
    document.write("<P>" + worldstring.bold());
    document.write("<P>" + worldstring.italics());
    var n = worldstring.length

6.2. Math объекты.

     Встроенные объекты типа Math имеют свойства и методы для математических констант и функций. Например: свойство PI метода Math содержит значение числа Пи и его можно использовать в приложениях как Math.PI.

     Аналогично, стандартные математические функции являются методами объекта Math. Это целый ряд тригонометрических, логарифмических, экспоненциальных и других функций. Например, для использования тригонометрической функции синус, можно написать:

     Math.sin(1.56).

     Заметим, что аргументы всех тригонометрических методов объекта Math задаются в радианах. Использование оператора with для отдельной кодовой секции устраняет повторение типа "Math".

     Например:

     with (Math) {
        a = PI * r*r;
        y = r*sin(theta)
        x = r*cos(theta)
     }

Свойства объекта Math.

E, LN2, LN10, LOG2E, LOG10E, PI, SQRT1_2, SQRT2.

Методы объекта Math.

    abs, acos, asin, atan, ceil, cos, exp, floor, log,
    max, min, pow, random, round, sin, sqrt, tan.

Примеры:

1. document.write("The natural log of 10 is " + Math.log(10))
2. document.write("The base 2 logarithm of E is " + Math.LOG2E)
3. document.write("The maximum value is " + Math.max(10,20))
4. document.write(""<P>The floor of 45.95 is " + Math.floor(45.95))

6.3. Date объекты.

     Язык JavaScript не содержит определения данных типа даты, однако объект типа date и его методы дают возможность оперировать величинами типа дата и время в различных приложениях. Объект date имеет большое число методов для установки либо получения даты и времени, а также для различных манипуляций с ними. Объект date не имеет каких либо свойств. Отсчет времени в JavaScript в миллисекундах начинается с1 января 1970 00:00:00.

     Для создания конкретного объекта типа date используется оператор new:

        varName = new Date(parameters),

где:

varName - имя переменной JavaScript для вновь созданного объекта,

parameters - для конструирования объекта может принимать следующие значения:

     - пусто: считываются текущие дата и время. Например,
         today = new Date();

     - строка в формате: "Month day, year,hours:minutes:seconds". Например:
         Xmas95= new Date("December 25, 1995, 13:30:00") ;

     Опущенные указания часов минут или секунд принимают нулевые значения .

    - целые значения для года, месяца и дня. Например:
         Xmas95 = new Date(95,11,25);

     - ряд численных значений для года, месяца, дня, часов, минут и секунд. Например:
         Xmas95 = new Date(95,11,25,9,30,0).

     Большое число методов объекта date можно разделить на категории:

     - "set" методы для установки даты и времени объекта,
     - "get" методы для получения даты и времени,
     - "to" методы для получения текстовых значений типа string из объекта date,
     - "parse" и "UTC" методы для преобразования форматов.

     Методы "get" и "set" позволяют получить текущие значения даты и времени либо установить для них новые значения. Однако, нет полной симметрии для получения и установки времени. Так например, есть метод getDay для получения дня недели, но нет соответствующего метода типа setDay. Все эти методы используют целые значения :

     - секунды и минуты: 0 - 59,
     - часы: 0 - 23,
     - дни: 0 - 6 (дни недели),
     - даты: 1 - 31 (дни месяца),
     - месяцы: 0 (Январь) - 11 (Декабрь),
     - годы : начиная с 1900.

     Например, при задании даты в следующем виде:
        Xmas95 = new Date("December 25, 1995")

метод Xmas95.getMonth() возвращает значение 11, а метод Xmas95.getYear() - 95.

     Использование методов getTime и setTime бывает полезным для сравнения дат. Метод getTime возвращает значение времени в миллисекундах с начала вышеуказанного момента отсчета времени. Например, следующий фрагмент программы вычисляет число дней, оставшихся до Рождества (для покупки подарков):

today = new Date()
nextXmas = new Date("December 25, 1990")
nextXmas.setYear(today.getYear())
msPerDay = 24 * 60 * 60 * 1000 ; // Number of milliseconds per day
daysLeft = (nextXmas.getTime() - today.getTime()) / msPerDay;
daysLeft = Math.round(daysLeft);
document.write("Number of Shopping Days until Christmas: " + daysLeft);

     В примере создается объект с именем today, который содержит текущие значения даты и времени. Затем создается объект типа date с именем nextXmas и устанавливается дата с текущим значением года. Далее вычисляется число миллисекунд в одном календарном дне, подсчитывется число дней, оставшихся до Рождества ( между датами today и nextXmas) и округляется до целого значения число дней.

     Использование parse метода бывает полезным для присвоения значения даты для уже существующего объекта из текстового (строкового) представления даты. Например, следующие операторы, используют parse и setTime методы для присвоения нового значения даты IPOdate объекту:

     IPOdate = new Date()
     IPOdate.setTime(Date.parse("Aug 9, 1995"))

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

getDate, getDay, getHours, getMinutes, getMonth, getSeconds, getTime, getYear,
setDate, setHours, setMinutes, setMonth, setSeconds, setTime, setYear,
toGMTString, toLocalString, UTC, getTimezoneOffset.

Пример:

     today = new Date()
     if(today.getMinutes(0 < 10)
        pad = "0"
     else pad = "";
     if(today.getSeconds() < 10)
        pads = "0"
     else pads = "";
     timestr = today.getHours()+":"+pad+today.getMinutes()+":"+pads+today.getSeconds();
     window.status = timestr;

6.4. Встроенные функции.

     В языке JavaScript имеется ряд встроенных функций высшего уровня (top-level):

         eval, parseInt, parseFloat.

6.4.1. Функция eval.

     Встроенная функция eval в качестве аргумента принимает текстовую строку, содержащую выражения языка JavaScript, операторы языка либо последовательность операторов. Выражения могут содержать переменные языка и свойства существующих объектов. Если аргумент содержит выражение, eval вычисляет его. Если аргумент содержит операторы языка, eval выполняет их.
     Применение функции очень полезно для вычисления арифметических выражений, представлен-ных в текстовом виде. Так например, поля ввода элементов form представляют текстовые значения типа string и часто бывет нужным превратить их в числовые значения.
     В следующем примере считывется текст с поля ввода expr структуры form, выполняется функция eval и результат вычисления записывается в другое поле result.

<SCRIPT>
function compute(obj) {
     obj.result.value = eval(obj.expr.value)
}
</SCRIPT>
<FORM NAME="evalform">
Enter an expression: <INPUT TYPE=text NAME="expr" SIZE=20 >
<BR>
Result: <INPUT TYPE=text NAME="result" SIZE=20 >
<BR>
<INPUT TYPE="button" VALUE="Click Me" onClick="compute(this.form)">
</FORM>

     Функция eval не ограничивается вычислением численных выражений. Ее аргументами могут быть объекты либо JavaScript операторы. Например, можно определить функцию с именем setValue с двумя аргументами: объектом и значением:

   function setValue (myobj, myvalue) {
     eval ("document.forms[0]." + myobj + ".value") = myvalue;
}

     Используя эту функцию можно установить значение 42 элементу поля с именем "text1" в структуре form:

         setValue(text1, 42).

6.4.2. Функции parseInt и parseFloat.

     В JavaScript имеются две функции преобразования в числа их строкового (текстового) представления, заданного в качестве аргумента функции.
     ParseFloat выполняет анализ аргумента, представленного в строковом виде и пытается в качестве значения функции вернуть представление числа с плавающей запятой. Если функция обнаруживает символы в представленной строке, отличные от знаков ( + или -), цифр (0- 9), десятичной точки, на этом преобразование заканчивается и оставшиеся символы игнорируются. Если первый символ строки не конвертируется в число, результатом функции будет значение NaN (not a number).
     Функция parseInt содержит два аргумента. Первый аргумент - текстовое представление целого числа, а второй - задание основания счисления .
     Основание счисления задается как:

        10 - для преобразования в десятичные числа,
        8 - для восьмеричных чисел,
        16 - для шестнадцатеричных и т.д.

     Основание счисления в JavaScript может устанавливаться явным образом , если строка начинается с:
        "0x" - для шестнадцатеричных чисел,
        "0" - для восьмеричных чисел.

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

     Примеры:

1. Результат 3.14:
     parseFloat("3.14")
     parseFloat("314e-2")
     var x = "3.14"; parseFloat(x)

2. Результат 15:
     parseInt("F",16)
     parseInt("17",8)
     parseInt("15",10)

3. Результат 17:
     parseInt("0x11",16)
     parseInt("0x11",0)


BACK.gifВернуться к оглавлению