|
Наилучшее использование объектов
Теперь вы научились создавать функции, пользоваться параметрами для упрощения ваших сценариев и оператором return для передачи данных. В этой главе речь снова пойдет о функциях, а затем мы перейдем к той области JavaScript, которая часто отпугивает начинающих - к объектам. В этой главе излагается следующий материал:
Что такое объектыЕсли использовать упрощенный подход, то можно дать следующее определение объекту: объект - это набор методов и свойств. Вспомните, что объекты подобны вещам. У объектов есть свойства (так же, как у компьютеров есть мониторы, у машин - колеса и т.п.), а методы - это то, что способны делать объекты (машины ездят, ножницы режут и т.п.). Если рассматривать объекты, свойства и методы как единое целое, вы начнете лучше понимать, что такое объект. В языке JavaScript объекты и соответствующие им свойства и методы объединяются с помощью символа точки (.). И если бы реальный мир управлялся языком JavaScript, можно было бы записать следующее: компьютер.монитор Заметьте, что такая запись позволяет подробнее описать объект (особенно компьютер. монитор) или процесс (ножницы. резать). Символ точки позволяет охарактеризовать объект точнее: машина.колесо.заднее.правое Примечание Вам станет понятно, зачем нужно точнее охарактеризовыватъ объект, когда вы научитесь отличать объекты браузера от объектов языка JavaScript. Объекты и браузерыВы можете столкнуться с тем, что одни и те же объекты поддерживаются не всеми браузерами. Чаще всего это происходит по вине производителей браузеров, каждый из которых стремится добавить что-то свое к версии языка JavaScript, поставляемой вместе с браузером. Но благодаря существованию стандарта ECMAScript и отчасти общему происхождению языков JScript (компания Microsoft) и JavaScript (компания Netscape) большинство объектов доступны в обоих браузерах. Стандарт ECMAScript поддерживает следующие объекты:
Но в версии языка JScript 5.5, поддерживаемой браузером Internet Explorer 5.5, имеются еще и такие объекты:
Во избежание путаницы в этой книге рассматриваются только объекты стандарта ECMAScript. Более близкое знакомство с объектами JavaScriptНекоторые объекты, представленные в языке JavaScript, предназначены для опытных пользователей и поэтому не будут рассматриваться в книге (хотя в конце данной главы приводится полный список свойств и методов для всех объектов стандарта ECMAScript). В этой главе речь пойдет о наиболее интересных объектах языка JavaScript:
Объект MathОбъект Math обеспечивает использование в языке JavaScript математических функций и констант. Давайте взглянем на объект Math в действии. Использование свойства PIЧисло л относится к наиболее часто употребляемым константам, особенно если речь идет об окружностях. Оно равно отношению длины окружности к ее диаметру (приблизительно 3.1415). Пример. В данном примере свойство PI используется для вычисления площади круга по математической формуле S = яР2(см. рис. 9.1).РИСУНОК!!!!!!! <script language="JavaScript">
Рис. 9.1. Программа вычисления площади круга
Свойство PI всего лишь сохраняет значение математической константы я, но тот же самый результат может быть достигнут с помощью переменной. Однако в случае использования свойства PI объекта Math вам не придется вспоминать, чему равно число п. Пример. В этом примере используются три функции - для вычисления площади круга, длины окружности и объема сферы (см. рис. 9.2). <html>
Рис. 9.2. Улучшенный вариант программы, позволяющей вычислить площадь круга
Использование методов max и minОбъект Math обладает двумя очень интересными методами - max и min. Они позволяют найти наибольшее и наименьшее из заданных числовых значений. Пример. Вот простой пример с использованием указанных методов: <script language="JavaScript">
В первом окне предупредительных сообщений используется метод max, чтобы выбрать из введенных чисел наибольшее, а во втором окне - метод min, чтобы выбрать наименьшее. Предыдущий пример демонстрирует возможности этих методов. Таким же образом можно найти наибольшую и наименьшую цену в прейскуранте или высший и низший балл для заполнения университетской ведомости. Использование метода roundЭтот метод используется в тех случаях, когда вам приходится иметь дело с неудобными для работы числами (к которым могут относиться и рассматриваемые здесь действительные числа). Он позволяет округлять числа до ближайшего целого. Если десятичная часть положительного числа больше или равна 0.5, значение округляется в большую сторону. В противном случае значение округляется в меньшую сторону. В качестве примера можно привести следующие цифры:
Пример. Ниже приводится пример использования метода round. В действительности это та же программа для вычисления параметров различных фигур, только на этот раз результаты вычислений округляются до ближайшего целого (см. рис. 9.3). <html>
Рис. 9.3. Программа вычисления площади круга, округляющая результат
Примечание В формулах предыдущего примера использовалось большое количество круглых скобок. Всегда проверяйте, чтобы количество открывающих круглых скобок (() совпадало с количеством закрывающих ()). Несовпадение может привести к ошибке. Пример. Если вы хотите оставить несколько знаков после запятой, самый простой и быстрый способ добиться этого - умножить исходное значение на десять, если вам нужен один десятичный знак; на сто, если нужны два знака; на тысячу, если нужны три, и т.д. Затем вы округляете полученный результат и делите его на число, которое использовали для умножения исходного значения. Если вам нужно, чтобы программа вычисления площади круга выдавала результат с точностью до сотых, надо сделать следующее (результат представлен на рис. 9.4): <html>
Рис. 9.4. Программа, позволяющей вычислить площадь круга с точностью до сотых
Использование метода randomМетод random применяется для генерации псевдослучайных чисел в промежутке от нуля до единицы (включая нуль, но исключая единицу). Другими словами, значение числа может равняться нулю, но всегда меньше единицы (см. рис. 9.5). Рис. 9.5. Псевдослучайное число, сгенерированное методом random
Примечание Генерируемые значения в действительности не являются случайными (настоящие случайные числа можно получить с помощью колеса рулетки или игральных костей) и поэтому носят название псевдослучайных. Эти числа создаются с использованием специального алгоритма, но удовлетворяют обычным статистическим условиям случайного распределения. Пользоваться методом random очень легко: <script language="JavaScript">
Пример. Если вы хотите получить случайное целое число, лежащее в промежутке от нуля до десяти, нужно умножить сгенерированное число на десять и округлить его с помощью метода round (результат представлен на рис. 9.6): <script language="JavaScript">
Рис. 9.6. Псевдослучайное число, лежащее в промежутке от нуля до десяти
Пример. Для получения случайного целого числа, лежащего в промежутке от нуля до ста, можно использовать следующий код (результат представлен на рис. 9.7): <script language="JavaScript">
Рис. 9.7. Псевдослучайное число, лежащее в промежутке от нуля до ста
Упражнение Поучитесь пользоваться объектом Math на собственных примерах. Измените приведенные здесь примеры и попытайтесь организовать собственные математические вычисления, не забывая применять округление и генерацию случайных чисел. Объект DateОбъект Date обеспечивает вас значительным количеством свойств и методов, связанных с датами. Чтобы воспользоваться объектом Date, сначала нужно присвоить значение переменной (как это делалось с объектом Array): <script language="JavaScript">
Примечание Выражение new Date () без аргументов возвращает текущую системную дату и время. Примечание Диапазон дат, которые могут быть представлены в объекте Date, приблизительно составляет 285 616 лет до и после 1 января 1970 г. Использование метода getFullYearПример. Первое, что вы можете попробовать сделать, это указать текущий год с помощью метода getFullYear (результат показан на рис. 9.8): <script language="JavaScript">
Рис. 9.8. Текущий год в окне предупредительных сообщений
Данный метод возвращает любой год в виде четырехзначного числа, исключая тем самым «проблему двухтысячного года». С другой стороны, метод getYear представляет годы, попадающие в промежуток от 1900 до 1999 года, в виде двузначного числа. Для дат, выходящих за пределы этого периода, возвращается четырехсимвольное значение года. Так, например, для 1995 года будет возвращено значение 95, а годы 1825 и 2025 будут представлены в четырехзначном виде. Использование метода getMonthПример. С помощью метода getMonth можно указать и текущий месяц. Этот метод возвращает число, лежащее в промежутке от 0 до 11 и соответствующее названию месяца от января до декабря. На рис. 9.9 приведен результат использования этого метода. Предупреждение Не забудьте, что счет месяцев начинается с нуля, а не с единицы! <script language="JavaScript">
Рис. 9.9. Число, соответствующее текущему месяцу, в окне предупредительных сообщений
Пример. Чтобы вывести на экран вместо числа название месяца, нужно воспользоваться оператором if для проверки результата и присвоения переменной значения, соотвествующего названию месяца (результат представлен на рис. 9.10). <script language="JavaScript">
Рис. 9.10. Выведенное на экран название текущего месяца
Использование метода getDayПример. Метод getDay подобен методам getMonth и getYear. Он возвращает число, лежащее в промежутке от нуля до шести и соответствующее дню недели от воскресенья до субботы (см. рис. 9.11). <script language="JavaScript">
Рис. 9.11. Число, соответствующее дню недели, в окне предупредительных сообщений
Предупреждение Очень важно помнить, что воскресенью в данном примере соответствует нуль. Часы, минуты, секунды... и даже миллисекундыНе менее легкой задачей является указание текущего времени с помощью объекта Date. Пример. В данном случае применяются методы: getHours, getMinutes, getSeconds и getMilliseconds. <script language="JavaScript">
Этот сценарий JavaScript позволяет получить очень точное значение времени (но не точнее показаний часов на вашем компьютере). Результат приводится на рис. 9.12 Рис. 9.12. Часы, минуты, секунды и миллисекунды в окне предупредительных сообщений
Упражнение Поэкспериментируйте с различными методами объекта Date, используя их в собственных примерах сценариев. Объект StringОбъект String позволяет изменять и форматировать текстовые строки и выделять внутри них части строки. Методы toUpperCase и toLowerCaseПример. Двумя наиболее простыми методами объекта String являются методы toUpperCase и toLowerCase. В данном примере текст, записанный в окне запроса, переводится в верхний регистр (см. рис. 9.13). <script language="JavaScript">
Рис. 9.13. Строка текста, переведенная в верхний регистр
Пример. В следующем примере текст переводится в нижний регистр: <script language="JavaScript">
На рис. 9.14 представлен результат выполнения данного сценария. Рис. 9.14. Строка текста, переведенная в нижний регистр
Метод substringДанный метод используется для выделения части строки на указанных пози1нях внутри объекта String. Пример. Перед вами пример использования метода substring (см. рис. 9.15). В данном случае из существующей строки выделяется ее часть: <script language="JavaScript">
Рис. 9.15. Часть, извлеченная из строки текста
Два числа, заключенные в круглые скобки, используются в методе substring для указания местоположения части строки. Первое число соответствует начальной позиции, считая от начала строки (нумерация ведется с нуля). Второе число - конечная позиция. Примечание Позже вы столкнетесь с более впечатляющими примерами использования метода substring, когда начнете проходить движущийся текст, выводящийся в строке состояния. Примечание Следует отметить, что метод substring всегда воспринимает меньшее число как начальную позицию. То есть переменные inpTxt.substring(0, 4) и inpTxt.substring(4, 0) возвращают одну и ту же часть строки. Упражнение Поэкспериментируйте с объектом String. Обратите особое внимание на извлечение части строк. Учитесь управлять текстовыми строками с помощью сценариев. Оператор withИ снова вернемся к операторам. Оператор with облегчает применение объектов в языке JavaScript. Он позволяет указать объект, используемый в операторе по умолчанию, тем самым значительно упрощая сценарий. Пример. Ниже приводится пример употребления оператора with: <script language="JavaScript">
С помощью оператора with можно упростить использование объекта Math: <script language="JavaScript">
Это улучшение может показаться вам незначительным, но, если вы собираетесь и дальше пользоваться JavaScript и работать с множеством свойств и методов, то оператор with может вам очень пригодиться. Методы и свойства объектовОбъект ArrayСвойства: constructor | length | prototype. Методы: concat | join | pop | push | reverse | shift | slice | sort | splice | toLocaleString | toString | unshift | valueOf. Объект BooleanСвойства: constructor | prototype. Методы: toString | valueOf. Объект DateСвойства: constructor | prototype. Методы: getDate | getDay | getFullYear | getHours | getMilliseconds | getMinutes | getMonth | getSeconds | getTime | getTimezoneOffset | getUTCDate | getUTCDay | getUTCFullYear | getUTCHours | getUTCMilliseconds | getUTCMinutes | getUTCMonth | getUTCSeconds | getVarDate | getYear | setDate | setFullYear | setHours | setMilliseconds | setMinutes | setMonth | setSeconds | setTime | setUTCDate | setUTCDay | setUTCFullYear | setUTCHours | setUTCMilliseconds | setUTCMinutes | setUTCMonth | setUTCSeconds | setYear | toGMTString | toLocaleString | toUTCString | toString | valueOf | parse | UTC. Объект FunctionСвойства: arguments | caller | constructor | prototype. Методы: toString | valueOf. Объект GlobalСвойства: Infinity | NaN. Методы: escape | eval | isFinite | isNaN | parseFloat | parselnt | unescape. Объект MathСвойства: E | LN2 | LN10 | LOG2E | LOG10E | PI | SQRT1_2 | SQRT2. Методы: abs | acos | asin | atan | atan2 | ceil | cos | exp | floor | log | max | min | pow | random | round | sin | sqrt | tan. Объект NumberСвойства: MAX_VALUE | MIN_VALUE NaN | NEGATIVE_INFINITY | POSITIVE_INFINITY |constructor | prototype. Методы: toLocaleString | toString | valueOf. Объект ObjectСвойства: prototype | constructor. Методы: toLocaleString | toString | valueOf. Объект RegExpСвойства: $l-$9 |index | input | lastlndex | lastMatch | lastParenleftContext | rightContext. Методы: у объекта RegExp нет методов. Объект StringСвойства: constructor | length | prototype. Методы: anchor | big | blink | bold | charAt | charCodeAt | concat | fixed | fontcolor | fontsize | fromCharCode | indexOf | italics | lastIndexOf | link | match | replace | search | slice | small | split | strike | sub | substr | substring | sup | toLowerCase | toUpperCase | toString | valueOf. |
||||||