LibKing » Книги » sci-textbook » DarkGoodWIN - JavaScript. Учебник начального уровня

DarkGoodWIN - JavaScript. Учебник начального уровня

Тут можно читать онлайн DarkGoodWIN - JavaScript. Учебник начального уровня - бесплатно полную версию книги (целиком). Жанр: sci-textbook, год 2011. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте LibKing.Ru (ЛибКинг) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
 DarkGoodWIN - JavaScript. Учебник начального уровня
  • Название:
    JavaScript. Учебник начального уровня
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    2011
  • ISBN:
    нет данных
  • Рейтинг:
    3.72/5. Голосов: 111
  • Избранное:
    Добавить в избранное
  • Ваша оценка:

DarkGoodWIN - JavaScript. Учебник начального уровня краткое содержание

JavaScript. Учебник начального уровня - описание и краткое содержание, автор DarkGoodWIN, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Несколько слов об особенностях JavaScript, другими словами - что я знал об этом языке до начала его изучения. Первое и главное: JS код легко интегрируется в HTML разметку и является де факто стандартом для интернет браузеров. Из этого следует, что если вы совершенно не знаете HTML - JS, вероятнее всего, будет для вас бесполезна. В данном опусе я постараюсь разжевать всё максимально детально, но надо иметь в виду, что HTML и JS идут бок о бок, дополняя, а не заменяя друг друга. Для тех, кто сталкивался раньше с Delphi программированием или чем-то подобным можно, в первом приближении, привести такую аналогию: HTML - это форма, а JS - сам код программы.

Другая важная особенность языка - высокая интерактивность. Процитирую фразу, которую мне многократно доводилось слышать: "JavaScript - это событийно ориентированный язык программирования". Что это значит? Это означает, что вы можете написать кусок кода, который выполнится когда пользователь нажмёт на кнопку, можете написать кусок кода, который выполнится когда вы только подведёте к ней курсор мышки. Для Java Script и то и другое - события и она умеет на них реагировать.

Отличительная особенность языка и кода на нём - то, что результат можно увидеть имея лишь один из современных браузеров. То есть вам не нужно ставить и настраивать какие-то компиляторы, среды программирования и так далее. Для запуска любого из приведённых ниже примеров - достаточно набрать текст в любом редакторе (блокноте, например), изменить расширение на html и открыть при помощи браузера. Всё.

JavaScript. Учебник начального уровня - читать онлайн бесплатно полную версию (весь текст целиком)

JavaScript. Учебник начального уровня - читать книгу онлайн бесплатно, автор DarkGoodWIN
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

Первый класс

Долго думал, стоит ли в рамках этого опуса использовать классы. На практике я часто сталкивался с тем, что очень не просто бывает объяснить зачем они нужны. На первый взгляд, после переделки какой–то простой процедурно–ориентированной программы в объектно ориентированную, ну или попросту после выделения одного–двух классов, программа, как правило, начинает выглядеть даже сложнее. Я всё же попробую. Причём как обычно буду стараться говорить человеческим языком, а если и буду вводить какие–то термины, постараюсь их объяснять.

Собственно преимущества выделения классов должны всплывать и в следующих главах по ходу повествования. Тут я лишь вскользь об этом упомяну.

Перейдём к делу, как я, кажется, уже говорил ранее, класс — это такая особенная переменная, которая может содержать другие переменные (поля), а также собственные функции (методы). В этой главе наша программа не научится делать ничего нового, при запуске произойдёт всё тоже самое, что и при запуске программы из прошлой главы. Изменился лишь сам код. Такое изменение программы называется рефакторингом.

Что же я поменял? Я выделил новый класс «minesClass» и перенёс туда часть переменных и функций. Для чего мне это понадобилось? Я решил отделить логику программы от её интерфейса. То есть класс «minesClass» ничего не будет знать о нашей таблице, однако он сам расставит бомбы при своём создании, а затем останется лишь их нарисовать.

Предлагаю читателю посмотреть на то, что получилось, а затем я всё–таки попытаюсь объяснить ему, что стало лучше.

head>

functionminesClass(aRowCount, aColCount, aMinesCount)

{

this.intRand = function(maxVal)

{

returnMath.floor((maxVal‑1) * Math.random() + 0.5) — 1;

}

this.fillMines = function()

{

varres = newArray( this.rowCount * this.colCount);

varmines = this.minesCount;

while(mines > 0)

{

varn = this.intRand( this.rowCount * this.colCount‑1);

if(res[n] != 1)

{

res[n] = 1;

mines--;

}

}

returnres;

}

this.colCount = aColCount;

this.rowCount = aRowCount;

this.minesCount = aMinesCount;

this.mines = this.fillMines();

}

functioninitTable()

{

varmines = newminesClass(10, 10, 10);

vartbl = document.getElementById(«tbl»);

for( vari = 0; i < mines.rowCount; i++)

{

varrow = tbl.insertRow(i);

for( varj = 0; j < mines.colCount; j++)

{

varcell = row.insertCell(j);

if(mines.mines[i * mines.rowCount + j] == 1)

cell.innerHTML = '*'

else

cell.innerHTML = '.';

}

}

}

script>

table>

body>

html>

Короче и понятнее ничего лишнего Сразу видно что к чему относится - фото 6

Короче и понятнее, ничего лишнего. Сразу видно, что к чему относится. Представте, что у вас в программе есть таблица для игры mines и одновременно есть таблица для игры в точки. Довольно трудно будет сказать в этом случае, что значит переменная rowCount. А вот если написано mines.rowCount, сразу всё понятно.

Перейдём к функции minesClass. Это по сути и есть наш новый класс. В JavaScript класс — это просто функция, а чтобы создать новый экземпляр классна нужно перед вызовом функции написать слово new.

В этой функции мы инициализируем методы intRand, fillMines, colCount, rowCount, minesCount и mines. В JavaScript методы также могут быть полями. Например, так мы описываем новый метод intRand. По сути переносим его в класс minesClass.

this.intRand = function(maxVal)

{

returnMath.floor((maxVal‑1) * Math.random() + 0.5) — 1;

}

Я бы прочитал это так: поле «intRand» соответствует (равно) функции, которая принимает максимальное значение в качестве единственного параметра и возвращает случайное целое число от нуля до этого числа.

Аналогичным образом мы переносим функцию fillMines, делая её методом класса minesClass. Параметры этой функции уже не нужны, так как у метода класса есть доступ к его полям. Следует только не забывать перед обращением к полям класса писать «this.». Например, this.rowCount, this.mines и так далее.

Надеюсь мне хотя бы примерно удалось рассказать про то, как можно создавать и использовать классы в JavaScript и даже показать, что это может сделать программу понятнее. Если не вышло — значит я плохо старался… Однако у меня ещё остаётся надежда, что дальше всё станет понятнее. Тут затрагивались довольно трудные для понимания вещи и если что–то осталось непонятным — ничего удивительного и ничего страшного.

Считаем бомбы

На самом деле в этой главе тоже не будет ничего нового. Всё основное, чтобы реализовать функциональность этой главы я уже рассказал. Но что поделать, надо довести начатое до конца, да и потом, даже если где–то в чём–то я повторюсь, так ведь повторение — мать учения.

В прошлой главе мы остановились на том, что у нас была табличка, в которой рисовались бомбы в виде символа "*" или клетки без бомб в виде точки. Но это не очень–то похоже на сапёр в который мы все привыкли играть. Там вроде как в каждой клетке пишется количество соседних с ней клеток в которых есть бомба.

Ну что же, давайте сделаем это и в нашей программе. Ниже я приведу код, а потом, как обычно, его прокомментирую.

head>

functionminesClass(aRowCount, aColCount, aMinesCount)

{

this.intRand = function(maxVal)

{

returnMath.floor((maxVal‑1) * Math.random() + 0.5) — 1;

}

this.fillMines = function()

{

varres = newArray( this.rowCount * this.colCount);

varmines = this.minesCount;

while(mines > 0)

{

varn = this.intRand( this.rowCount * this.colCount‑1);

if(res[n] != 1)

{

res[n] = 1;

mines--;

}

}

returnres;

}

this.hasMine = function(i, j)

{

if((i < 0) || (j < 0) || (i >= this.rowCount) || (j >= this.colCount))

return0;

if( this.mines[i * this.rowCount + j] == 1)

return1;

return0;

}

this.checkCell = function(i, j)

{

if( this.hasMine(i, j))

return'*';

return this.hasMine(i - 1, j - 1) + this.hasMine(i - 1, j) + this.hasMine(i - 1, j + 1) +

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


DarkGoodWIN читать все книги автора по порядку

DarkGoodWIN - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




JavaScript. Учебник начального уровня отзывы


Отзывы читателей о книге JavaScript. Учебник начального уровня, автор: DarkGoodWIN. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
Большинство книг на сайте опубликовано легально на правах партнёрской программы ЛитРес. Если Ваша книга была опубликована с нарушениями авторских прав, пожалуйста, направьте Вашу жалобу на PGEgaHJlZj0ibWFpbHRvOmFidXNlQGxpYmtpbmcucnUiIHJlbD0ibm9mb2xsb3ciPmFidXNlQGxpYmtpbmcucnU8L2E+ или заполните форму обратной связи.
img img img img img