Реальное изучение нового языка программирования невозможно без написания программ. Рекомендую вам при чтении этой книги опробовать возможности Java_ Script в процессе их изучения. Вот несколько приемов, призванных облегчить эти эксперименты.
Наиболее очевидный подход к изучению JavaScript – это написание простых сценариев. Одно из достоинств клиентского JavaScript состоит в том, что любой, кто имеет веб_броузер и простейший текстовый редактор, имеет и полноценную среду разработки. Для того чтобы начать писать программы на JavaScript, нет необходимости в покупке или загрузке специального ПО.
Например, чтобы вместо факториалов вывести последовательность чисел Фибо_ наччи, пример 1.1 можно переписать следующим образом:
Этот отрывок может показаться запутанным (и не волнуйтесь, если вы пока не понимаете его), но для того чтобы поэкспериментировать с подобными коротки_ ми программами, достаточно набрать код и запустить его в веб_броузере в каче_ стве файла с локальным URL_адресом. Обратите внимание, что для вывода ре_ зультатов вычислений используется метод document.write(). Это полезный прием при экспериментах с JavaScript. В качестве альтернативы для отображения тек_ стового результата в диалоговом окне можно применять метод alert():
alert("Fibonacci (" + i + ") = " + fib);
Отметьте, что в подобных простых экспериментах с JavaScript можно опускать теги <html>, <head> и <body> в HTML_файле.
Для еще большего упрощения экспериментов с JavaScript можно использовать URL_адрес со спецификатором псевдопротокола javascript: для вычисления зна_ чения JavaScript_выражения и получения результата. Такой URL_адрес состоит из спецификатора псевдопротокола (javascript:), за которым указывается произ_ вольный JavaScript_код (инструкции отделяются одна от другой точками с запя_ той). Загружая URL_адрес с псевдопротоколом, броузер просто исполняет Java_ Script_код. Значение последнего выражения в таком URL_адресе преобразуется в строку, и эта строка выводится веб_броузером в качестве нового документа. На_ пример, для того чтобы проверить свое понимание некоторых операторов и инст_ рукций языка JavaScript, можно набрать следующие URL_адреса в адресном по_ ле веб_броузера:
javascript:5%2
javascript:x = 3; (x < 5)? "значение x меньше": "значение x больше" javascript:d = new Date(); typeof d;
javascript:for(i=0,j=1,k=0,fib=1; i<5; i++,fib=j+k,k=j,j=fib) alert(fib); javascript:s=""; for(i in navigator) s+=i+":"+navigator[i]+"\n"; alert(s);
30 Глава 1. Введение в JavaScript
В веб_броузере Firefox однострочные сценарии вводятся в JavaScript_консоли, доступ к которой можно получить из меню Инструменты. Просто введите выраже_ ние или инструкцию, которую требуется проверить. При использовании Java_ Script_консоли спецификатор псевдопротокола (javascript:) можно опустить.
Не любой код, написанный вами при изучении JavaScript, будет работать так, как ожидается, и вам захочется его отладить. Базовая методика отладки Java_ Script_кода совпадает с методикой для многих других языков: вставка в код ин_ струкций, которые будут выводить значения нужных переменных так, чтобы можно было понять, что же на самом деле происходит. Как мы уже видели, ино_ гда для этих целей можно использовать метод document.write() или alert(). (Бо_ лее сложный способ отладки, основанный на выводе отладочных сообщений в файл, приводится в примере 15.9.)
В отладке также может быть полезен цикл for/in (описанный в главе 6). Напри_ мер, его можно применять вместе с методом alert() для написания функции, отображающей имена и значения всех свойств объекта. Такая функция может быть удобна при изучении языка или при отладке кода.
Если вам постоянно приходится сталкиваться с ошибками в JavaScript_сценари_ ях, вероятно, вас заинтересует настоящий отладчик JavaScript. В Internet Explo_ rer можно воспользоваться отладчиком Microsoft Script Debugger, в Firefox – мо_ дулем расширения, известным под названием Venkman. Описание этих инстру_ ментов выходит далеко за рамки темы этой книги, но вы без труда найдете его в Интернете, воспользовавшись какой_нибудь поисковой системой. Еще один ин_ струмент, который, строго говоря, не является отладчиком, – это jslint; он спосо_ бен отыскивать распространенные ошибки в JavaScript_коде программ (http:// jslint.com).