|
Другие возможности языка JavaScriptДополнительные операторы JavaScriptПодведем промежуточный итог знакомства с JavaScript. На самом деле, мы с вами рассмотрели не так уж мало: достаточно сказать, что мы изучили практически все операторы этого языка. Конечно, все дело в том, что их не так много: операторы организации циклов (for, while и do... while), условные операторы (if и switch) и операторы манипулирования объектами, которые мы пока не рассматривали. Этих операторов всего два: with и for... in. Оба применяются в основном для сокращения объема вводимого текста. Например, вместо того чтобы написать document. open(); with (document) { Во втором случае мы сэкономили время, так как не пришлось много раз вводить длинное слово document. Однако на первых порах лучше не злоупотреблять этой возможностью, поскольку весь текст становится труд, нее для восприятия с первого взгляда. Другой оператор — for... in так же, как и оператор for, организует цикл. Но только вместо условия цикла при этом нужно указать объект, по всем свойствам которого этот цикл и «пройдется». Наверное, предыдущая фраза была не совсем понятна, поэтому поясним ее на примере. Мы уже знаем о двух свойствах, позволяющих определить версию броу зера —это navigator. appName и navigator. appVersion. Оба принадлежат объекту navigator. А между прочим, у этого объекта есть еще ряд интересных свойств, Чтобы их просмотреть, давайте создадим страницу, содержащую неболь. шой сценарий.
Работает этот сценарий следующим образом. Переменной q поочередно присваивается имя каждого свойства объекта navigator. На экран при этом выводится (с помощью метода document. write) имя свойства (q), и, после знака равенства, значение свойства — (navigatorfq])1. Таким образом, можно узнать о свойствах, о существовании которых мы до этого даже не подо- зревали! Вот, например, что нам покажет броузер Internet Explorer версии 5. 0, если загрузить в него эту страницу: appCodeName=Mozilla appCodeName=Mozillа Кстати, условный оператор if также имеет сокращенную форму записи, которую в некоторых случаях удобно применять (особенно если условие и выполняемые действия достаточно компактны). Для этого следует просто написать условие, затем поставить знак вопроса, и после него указать действие, выполняемое в случае правильности условия. Затем, после двое- точия, можно указать действие, выполняемое в противном случае. Например, вместо: if (a<=100) (а<=100) ? some_function(a): alert("Число превышает допустимое значение!"); Встроенные функции JavaScriptТеперь о функциях. Мы уже научились определять собственные функции Кроме того, в JavaScript существуют так называемые встроенные (или предопределенные) функции. Некоторые из них мы уже знаем — это isNaN() и parseInt(). Кстати, функция parseInt() имеет еще одну замечательную особенность: с ее помощью можно распознать число, введенное в любой системе счисления, начиная от двоичной и кончая 36-ричной. Для этого нужда просто в качестве второго аргумента указать основание системы счисле» ния, например, вот так: parseInt("1110", 2); В этом случае строка 1110 будет интерпретирована как двоичное число, я результатом функции будет число 14. Кроме этих двух функций существуют еще функции parseFloat() и isFinite() Функция parseFloat() не может принимать второй аргумент, зато може? выделить из строки дробное число. Например, если написать parseInt("3. 289 times"); то результатом выполнения функции будет число 3, а если написать parseFloat("3. 289 times"); результатом будет число 3, 289. Кроме того, с помощью этой функции можно распознать число, введенное в нормализованной форме, например: parseFloat ("3. 755е-2"); даст в результате 0, 03755. Что касается функции isFinite(), то она принимает значение истина, если аргумент является числом, или ложь — в противном случае. Как вы можете заметить, она делает то же, что и функция isNaN(), только с противоположным результатом. Существует еще полезная функция eval(). Она обычно определяется, как вычисление выражения без ссылки на конкретный объект. Сходу это понять довольно трудно. Действие этой функции будет проиллюстрировано в разделе 7. 4. Иногда в JavaScript используются конструкции, очень похожие на функции. Например, в одном из предыдущих разделов для возведения в степень мы написали: Math. pow(j, i) Такие конструкции, как правило, являются методами одного из встроенных объектов. Если вы пока плохо представляете себе, что это такое, не огорчайтесь. Для их употребления это совершенно не важно, поскольку их синтаксис очень похож на синтаксис функций. Например, выше было продемонстрировано возведение в степень. Можно осуществлять и другие действия с помощью объекта Math. Например, для округления числа i до ближайшего целого достаточно написать Math. round(i), а для вычисления его синуса — Math. sin(i). Список методов для математических действий вы найдете в Приложении 5. Кроме того, можно пользоваться свойствами объекта Math. Если, к при- меру, потребовалось ввести число я, то не стоит вспоминать его с точностью чо какого-то там знака — достаточно написать вместо него Math. PI. Можно точно так же определить другие важные математические константы. Помимо объекта Math, в JavaScript имеются и другие, например Array для работы с массивами, Date для работы с датами и прочие. Их список вы сможете найти в Приложении 5, а в следующих главах этой книги будут приведены примеры использования некоторых из них. |