JavaScript. Подробное руководство, 6-е издание - [6]
>// Функции - это параметризованные блоки программного кода JavaScript,
>// которые можно вызывать многократно.
>function plus1(x) { // Определить функцию с именем "plusr и с параметром "х"
> return х+1; // Вернуть значение на 1 больше полученного
>} // Функции заключаются в фигурные скобки
>plus1(y) // => 4: у имеет значение 3, поэтому этот вызов вернет 3+1
>var square = function(x) { // Функции можно присваивать переменным
> return х*х; // Вычислить значение функции
>}; // Точка с запятой отмечает конец присваивания.
>square(plus1(y)) // => 16: вызов двух функций в одном выражении
При объединении функций с объектами получаются методы.
>// Функции, присвоенные свойствам объектов, называются методами.
>// Все объекты в JavaScript имеют методы:
>var а = []; // Создать пустой массив
>а.push(1,2,3); // Метод push() добавляет элементы в массив
>a.reverse(); // Другой метод: переставляет элементы в обратном порядке
>// Можно определять собственные методы. Ключевое слово "this" ссылается на объект,
>// в котором определен метод: в данном случае на массив points,
>points.dist = function() { // Метод вычисления расстояния между точками
>var р1 = this[0]; // Первый элемент массива, относительно которого вызван метод
>var р2 = this[1]; // Второй элемент объекта "this"
>var а = р2.х-р1.х; // Разность координат X
>var b = р2.у-р1.у; // Разность координат Y
>return Math.sqrt(a*a + // Теорема Пифагора
> b*b); // Math.sqrtO вычисляет корень квадратный
>};
>points.dist() // => 1.414: расстояние между 2-мя точками
Теперь, как было обещано, рассмотрим несколько функций, которые демонстрируют применение наиболее часто используемых управляющих инструкций JavaScript:
>// В JavaScript имеются условные инструкции и инструкции циклов, синтаксически
>// похожие на аналогичные инструкции С, C++, Java и в других языках.
>function abs(x) { // Функция, вычисляющая абсолютное значение
> if (х >= 0) { // Инструкция if ...
> return х; // выполняет этот код, если сравнение дает true.
> } // Конец предложения if.
> else { // Необязательное предложение else выполняет свой код,
> return -x; // если сравнение дает значение false.
> } // Фигурные скобки можно опустить, если предложение
> // содержит 1 инструкцию.
>} // Обратите внимание на инструкции return внутри if/else.
>function factorial(n) { // Функция, вычисляющая факториал
> var product = 1; // Начать с произведения, равного 1
> while(n > 1) { // Повторять инструкции в {}, пока выраж. в () истинно
> product *= n; // Сокращенная форма выражения product = product * n;
> n--; // Сокращенная форма выражения n = п - 1
> } // Конец цикла
> return product; // Вернуть произведение
>}
>factorial(4) // => 24: 1*4*3*2
>function factorial2(n) { // Другая версия, использующая другой цикл
> var і, product = 1; // Начать с 1
> for(i=2; і <= n; i++) // і автоматически увеличивается с 2 до n
> product *= i; // Выполнять в каждом цикле. {} можно опустить,
> // если тело цикла состоит из 1 инструкции
> return product; // Вернуть факториал
>}
>factorial2(5) // => 120: 1*2*3*4*5
JavaScript - объектно-ориентированный язык, но используемая в нем объектная модель в корне отличается от модели, используемой в большинстве других языков. В главе 9 «Классы и модули» детально рассматривается объектно-ориентированное программирование на языке JavaScript на большом количестве примеров; эта глава является одной из самых больших в книге. Ниже приводится очень простой пример, демонстрирующий определение класса JavaScript для представления точек на плоскости. Объекты, являющиеся экземплярами этого класса, обладают единственным методом с методом r(), который вычисляет расстояние между данной точкой и началом координат:
>// Определение функции-конструктора для инициализации нового объекта Point
>function Point(x,y) { // По соглашению имя конструкторов начинается с заглавного символа
> this.x = x; // this - ссылка на инициализируемый объект
> this.у = у; // Сохранить аргументы в свойствах объекта
>} // Ничего возвращать не требуется
>// Чтобы создать новый экземпляр, необходимо вызвать функцию-конструктор
>// с ключевым словом "new"
>var р = new Point(1, 1); // Точка на плоскости с координатами (1,1)
>// Методы объектов Point определяются за счет присваивания функций свойствам
>// объекта-прототипа, ассоциированного с функцией-конструктором.
>Point.prototype.r = function() {
> return Math.sqrt( // Вернуть корень квадратный от x>2 + y>2
> this.x * this.x + // this - это объект Point, относительно которого...
> this.у * this.у // ...вызывается метод.
> );
>};
>// Теперь объект p типа Point (и все последующие объекты Point) наследует метод r()
>p.r() // => 1.414...
Глава 9 является кульминацией первой части, а главы, которые следуют за ней, связывают некоторые оборванные концы и завершают исследование базового языка. В главе 10 «Шаблоны и регулярные выражения» описывается грамматика регулярных выражений и демонстрируются приемы использования регулярных выражений для реализации сопоставления с текстовыми шаблонами. В главе 11 «Подмножества и расширения JavaScript» рассматриваются подмножества и расширения базового языка JavaScript. Наконец, прежде чем перейти к исследованию клиентского JavaScript в веб-броузерах, в главе 12 «Серверный JavaScript» будут представлены два способа использования JavaScript за пределами веб-броузеров.
Жизнь современного человека плотно связана с видеоиграми. Даже если вы не играете сами, в вашем окружении наверняка найдутся заядлые геймеры, а новости из индустрии игр зачастую не обходят и вас стороной. Это положение дел приводит к вопросам: а что же такое видеоигры и какое место они занимают в жизни человека? Поиском ответов на них занимается дисциплина game studies. Александр Ветушинский – один из ведущих российских представителей этого направления исследований. Его книга «Игродром» – философское осмысление этапов развития игровой индустрии, анализ.
В процессе чтения вы познакомитесь с основами программирования и, в частности, языка JavaScript, а также выполните несколько небольших проектов. Один из самых интересных проектов — создание своего языка программирования.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Это практическое руководство разработчика программного обеспечения на Visual Basic .NET и ADO.NET, предназначенное для создания приложений баз данных на основе WinForms, Web-форм и Web-служб. В книге описываются практические способы решения задач доступа к данным, с которыми сталкиваются разработчики на Visual Basic .NET в своей повседневной деятельности. Книга начинается с основных сведений о создании баз данных, использовании языка структурированных запросов SQL и системы управления базами данных Microsoft SQL Server 2000.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.