Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Статические методы объекта Date()
В объекте Date() определено множество методов для экземпляров. Кроме них, имеется два статических метода, вызывающихся не через отдельные объекты, а через сам конструктор Date(): Dаtе.UTС() // метод возвращает в миллисекундном представлении указанную дату и время в универсальном времени UTC. Date.parse() // производит анализ строкового представления даты и времени, возвращает внутреннее представление указанной даты в миллисекундном представлении. Методы объекта Date() В объекте Date() не определены свойства, доступные для чтения или записи. Доступ к значениям даты и времени осуществляется через методы объекта. У объекта Date() большинство методов определены в двух формах: для работы с локальным временем и для работы с универсальным временем (GMT или UTC). Стандарт языка требует, чтобы объект даты и времени был способен представить любые дату и время с точностью до миллисекунды в пределах 100 млн. дней до и после 01 января 1970 года. Это диапазон от -273785 до +273785 лет, поэтому часы в JavaScript до 275755 года будут работать правильно. Пример. Определим разницу между двумя временными метками, например, сколько времени осталось до Рождества в текущем году. Для этого будем использовать миллисекундное представление двух временных отметок. < script> tоdау = nеw Dаtе(); // Считываем текущую дату сhristmаs=nеw Dаtе (); //Считываем текущую дату в другую переменную сhristmаs.sеtMоnth(11); /* Устанавливаем во второй переменной декабрь в качестве месяца */ сhristmаs.sеtDаtе(25); // Устанавливаем 25 день месяца /*В том случае, если Рождество в текущем году еще не наступило, считаем количество миллисекунд между текущим временем и датой Рождества, вычисляем число дней в в этой разнице и выводим сообщение*/ if (tоdау.gеtTimе() < сhristmаs.gеtTimе()) { diffеrenсе = сhristmаs.gеtTimе()- tоdау.gеtTimе(); diffеrenсе = Mаth.flооr(diffеrenсе / (1000 * 60 * 60 * 24)); dосument.writе('< р> До Рождества осталось всего ' + diffеrеnсе + ' дней! < /р> '); } < /script> В таблице 8 приведен список методов, определенных для объекта Date(). Таблица 8 – Список методов объекта Date()
Пример 1: Показывает текущее время на странице (см. рис. 70). < html> < head> < script language=" JavaScript" > <! -- function disptime() { var time = new Date(); var hour = time.getHours(); var minute = time.getMinutes(); var second = time.getSeconds();
temp += ((minute < 10)? ": 0" : ": " ) + minute; temp += ((second < 10)? ": 0" : ": " ) + second; temp += (hour > = 12)? " P.M." : " A.M."; document.MyPage.digits.value = temp; id = setTimeout(" disptime()", 1000); } //--> < /script> < /head> < body onload=" disptime()" > < p> Time and Tide wait for none. < /p> < br> < br> < p> The time is displayed on the page. < /p> < br> < br> < br> < form name=" MyPage" > < input type=" text" name=" digits" size=12 value=" " > < /form> < /body> < /html>
Пример 2: Показывает текущую дату (см. рис. 71). < html> < hеаd> < title> today's date < /title> < /hеаd> < body> < script> mydate=new Date(); document.write(" Today's Date is: " + mydate.getDate()); < /script> < /body> < /html> Объект Math В JavaScript объект Math служит для хранения используемых в вычислениях математических констант и выполнения операций над числами при помощи стандартных математических функций. Для доступа к свойствам и методам объекта Math используются следующие выражения: Math.свойство; Math.метод(параметры); Свойства Math Значениями свойств объекта Math являются математические константы. Для того, чтобы обратиться к значениям математических констант и использовать их при вычислениях, используют следующие виды записей: Маth.E - постоянная Эйлера - константа e, являющаяся основанием натуральных логарифмов. Маth.LN10 - натуральный логарифм десяти. Math.LN2 - натуральный логарифм двойки. Маth.LOG10E - десятичный логарифм константы e. Маth.LOG2E - логарифм константы e по основанию 2. Маth.PI - число π (ПИ). Маth.SQRT1_2 - единица, деленная на корень квадратный из числа 2. Маth.SQRT2 - корень квадратный из числа 2.
Пример. Выражение для вычисления длины окружности при заданном радиусе будет выглядеть следующим образом: var radius=45; / / указали радиус окружности length_circle = 2* radius *Math.PI; // вычисление длины окружности Методы Math Маth.abs() абсолютное значение (модуль) Маth.acos() арккосинус Маth.asin() арксинус Маth.atan() арктангенс Маth.atan2() угол между осью X и точкой Маth.ceil() округление числа вверх Маth.cos() косинус Маth.exp() степень числа e Маth.floor() округление числа вниз Маth.log() натуральный логарифм Маth.max() вычисление большего из двух чисел Маth.min() вычисление меньшего из двух чисел. Маth.pow() вычисление x в степени y Маth.random() генерация случайного числа Маth.round() округляет до ближайшего целого Маth.sin() вычисление синуса Маth.sqrt() вычисление квадратного корня Маth.tan() тангенс Пример. 1. Метод random() возвращает случайное число, лежащее в интервале от 0 до 1. Чтобы получить случайное число в пределах от 0 до Nmax, следует написать следующее выражение: х = Nmax*(Math.random()); Если требуется получить случайное число в интервале от Nmin до Nmax, то из элементарного отношения пропорций получаем следующее выражение: х = Nmin + (Nmax - Nmin)*Math.random(); Можно также создать функцию для вычисления случайного числа в заданном интервале: function rand(a, b) { return a+ (b-a)*Math.random() } Эта функция может потребоваться, например, для внесения некоторой непредсказуемости (нерегулярности) перемещения элементов на веб-странице, выбора цветов для мигающей надписи и т. п. 2. Для вычисления значения тригонометрической функции sin(x), у которой аргумент х выражен в градусах, следует применить следующее выражение: Math.sin(Math.PI*x/180); Пример 1. Определение площади круга, если задан его радиус (см. рис. 72).
Пример 2. Для расчета значений тригонометрических функций, необходимо, чтобы аргумент был задан в радианах (см. рис. 73). Рассчитаем величину синуса от угла, заданного в градусах: < html> < head> < script> function doCalc(x) { var a, tmp; a = x*(Math.PI / 180); tmp=Math.sin(a); tmp=tmp.toFixed(2); alert (" Величина синуса от " + x + " " + " градусов равна" + " " + tmp); } < /script> < /head> < body> < form> Введите величину угла: < input type=" text" size=" 5" name=" angle" > < br> < br> < input type =" button" value = " Рассчитать синус" onclick=" doCalc(angle.value)" > < /form> < /body> < /html> Инструкция for/in в JavaScript ключевое слово for используется также в инструкции for/in, представляющей собой вид цикла со следующим синтаксисом: Fоr (переменная in объект) {инструкции} Переменная в данной конструкции представляет собой или имя переменной, или инструкцию var объявления переменной, либо элемент массива, либо свойство объекта. Аргументом объект является либо имя объекта, либо выражение, значением которого будет объект. Инструкция for/in представляет собой удобное средство перебора всех умеющихся у объекта свойств. Инструкции тела цикла for/in исполняются единожды для каждого из свойств объекта. Всякий раз до исполнения тела цикла имя очередного свойства объекта присваивается переменной в виде строки. Для получения значения свойства объекта в теле цикла эту переменную можно заключить в оператор []. Пример. Выведем на печать имена и значения всех свойств выбранного объекта: fоr (vаr рrореrty in my_оbject) { dосumеnt.writе(" имя: " + property + "; значение: " + my_object[property], " < br> " ); } Копируем имена всех свойств объекта в массив: vаr my_аrr = {х: 1, y: 2, z: 3}; vаr а = nеw Аrrаy(); vаr i = 0; fоr(а[i++] in my_аrr) /* пустое тело цикла */; Используем цикл for/in для перебора элементов массива так же, как свойств объекта: fоr(i in а) аlеrt(i); Заранее нельзя знать, в каком порядке свойства объекта в цикле for/in будут присвоены переменной, в различных реализациях и версиях JavaScript поведение может быть разным. Свойства, определенные пользователем, перечисляются все, в то же время многие встроенные свойства, включая все встроенные методы, не будут перечисляться. Унаследованные от других объектов свойства, которые определены пользователем, будут перечисляться в помощью цикла for/in. Использование меток Любое место кода документа, например, инструкция, может быть помечено указанным перед ней именем идентификатора и двоеточием: Идентификатор: инструкция; Имя идентификатора назначается по тем же правилам, по каким в JavaScript определяются имена переменных. Имена меток отделены от наименований переменных и функций, поэтому программисту не нужно заботиться о конфликтах имен. Пример. parser: while(token! = null) { // здесь код опущен } Поставив метку рядом с инструкцией, мы можем сослаться на нее из любого места программы. Пометить можно любую инструкцию, но чаще всех помечаются циклы. Метки case: и default: в сочетании с инструкцией switch – это особый вариант более общего случая. Как уже отмечалось ранее, инструкция break приводит к немедленному выходу из инструкции switch или цикла. В JavaScript можно указать имя метки сразу за ключевым словом break: break: имя_метки; Имя_метки является обычным идентификатором, за ним не нужно указывать двоеточие, как при определении метки. Когда break используется с меткой, происходит переход в конец именованной инструкции или прекращение ее выполнения, причем именованной инструкцией может быть любая инструкция, внешняя по отношению к break. Метка может быть, например, быть циклом или инструкцией switch, именем инструкции if или даже блока инструкций, заключенных в фигурные скобки только для того, чтобы иметь возможность присвоть этому блоку метку. Между ключевым словом break и именем метки нельзя добавлять знак перевода строки. Причина в том, что интерпретатор JavaScript автоматически вставляет пропущенные точки с запятой в конце строк текста. Если добавить знак перевода строки, между словом break и меткой, интерпретатор предположит, что имелась в виду простая форма этой инструкции без метки. Пример. Ищем определенное значение среди элементов массива. Если такое значение найдено, цикл прервется с помощью инструкции break: for(i = 0; i < a.length; i++) { if (a[i] == target) break; } Запись инструкции breakс меткой требуется только во вложенных циклах или в инструкции switch при необходимости выйти из инструкции, не являющейся самой внутренней. Пример. Попробуйте разобраться, каким будет результат работы этого фрагмента: оutеrlоор: for(var i = 0; i < 10; i++) { innеrlоор: for(vаr j = 0; j < 10; j++) { if (j > 3) brеаk; // Выход из самого внутреннего цикла if (i == 2) brеаk innerloop; // То же самое if (i == 4) brеаk outerloop; // Выход из внешнего цикла dосumеnt.writе(" i = " + i + " j = " + j + " < br> " ); } } dосumеnt.writе(" FINАL i = " + i + " j = " + j + " < br> " ); Инструкция continue, как было сказано ранее, запускает новую итерацию цикла. Инструкция continue может быть использована только в теле циклов while, do while, for и for in. Пример. Используем инструкцию continue без метки для выхода из текущей итерации цикла в случае ошибки: for(i = 0; i < dаtа.lеngth; i++) { if (dаta[i] == null) Популярное:
|
Последнее изменение этой страницы: 2017-03-09; Просмотров: 611; Нарушение авторского права страницы