Вверх страницы

Вниз страницы

Forix ФоРуМ рунета

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Forix ФоРуМ рунета » JavaScript ★ PHP ★ MySQL » Javascript и jQuery


Javascript и jQuery

Сообщений 1 страница 10 из 12

1

Что такое Javascript и jQuery? Начнём узнавать с самого начала, так сказать с нуля и по порядку.

Javascript один из множества языков программирования и чтоб понять для чего он нужен в веб-программировании, необходимо кое что уточнить.

Основными языками используемыми в веб, являются HTML, CSS, Javascript и PHP.

HTML используется для разметки документа (страницы). Разметка — это написание по порядку всех элементов (текст, картинки, блоки), которые на этой странице находятся.

На CSS делается этим элементам оформление: цвет, фон, размеры, отступы, рамки, тени, прозрачность и т.п.

Так же на css пишется позиционирование, т.е. определяется место на странице, и анимация, т.е. некоторая подвижность, которая с развитием приобретает всё больше и больше возможностей.

Javascript обладает ещё более широким диапазоном средств для оживления страниц. На нём пишутся такие прибамбасы как слайдеры, виджеты, всплывающие окна и меню, а анимации выполняются более плавно и разнообразно.

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

PHP используется для написания приложений (движки сайтов, плагины, темы оформления и т.п.)

Все эти языки не просто совместимы, а не разделимы, в том что касается сайтостроения. То есть, если например тема оформления пишется на PHP, то в коде обязательно будут присутствовать блоки, строки и вставки написанные на html, css и на javascript.

Более подробно о каждом из них можно узнать из курсов представленных на этом сайте (см. Содержание).

В этой же рубрике мы разберём «по косточкам» javascript и jQuery.

Забегая немного вперёд, скажу: jQuery — это самая популярная библиотека готовых решений для javascript.

То есть, для того что-бы реализовать какое либо действие или эффект на странице, не обязательно прописывать весь код.

Достаточно обратиться коротким запросом в библиотеку и нужный код будет вставлен в указанное место, в момент реализации решения.

Очень удобно и значительно расширяет возможности я зыка.

Но об этом впереди, а пока займёмся javascript, чтоб узнать как он выглядит, пишется и работает, чтоб суметь сделать такой запрос, и ещё много чего другого.

Javascript формально является клиентским языком (клиент — это браузер), то есть его код не требует интерпретации на сервере, как например код php.

То есть после запроса, код напрямую выдаётся браузеру, который его и выполняет, что здорово сокращает время его выполнения.

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

То есть, не всё что написано на javascript , будет безоговорочно выполнено браузером без обработки на сервере, как например в случаях с html и css.

Поэтому для этого языка предусмотрено выполнение не только на стороне клиента, но и на стороне сервера.

То есть, если Вы администратор сайта и имеете прямой доступ к php коду, то можете спокойно ввести в него javascript без всяких ограничений. Вплоть до написания приложений.

То есть по факту javascript является клиент-серверным языком.

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

Поэтому Вам не придётся озадачиваться установкой локального сервера, так как для тестирования примеров будет достаточно редактора кода, такого как Notepad++.

Из редактора можно будет открыть любой документ с javascript в вашем браузере.

Ещё не лишним будет создать на компьютере папку для хранения файлов написанных по мере прохождения курса.

Возможно ведь какой-то урок не будет понят с ходу, и придётся над ним поработать ещё и ещё раз, а для этого надо будет сохранить сей документ.

Так что сразу подготовьте для него место.

Ну вот, в общих чертах, без учёта тонкостей и особенностей использования javascript, пожалуй, достаточно для начала.

Дальше пойдут уроки, в которых будет много незнакомых слов, аббревиатуры, названий и определений.

Заучивать их наизусть (зубрить) не надо. Постарайтесь внимательно ознакомится, чтоб инфа отложилась в мозгу, и потом, при разборе скриптов, проще было уяснить что откуда и куда.

Удачи в изучении!

0

2

Подключение javascript

Для подключения javascript имеется два способа

1. Внутреннее подключение — подключение в тело HTML.

2. Внешнее подключение — подключение из отдельного файла.

Оба способа реализуются с помощью html тега <script></script>

Тег script может быть введён в любом месте страницы, в основном это тег head, или тег body.

Целесообразность размещения в том или ином месте будет освещена в следующих уроках.

Внутреннее подключение

При внутреннем подключении тег <script></script> используется без атрибутов.

Ранее в него вставлялись атрибуты type=»text/javascript» и language=»javascript». Первый указывал на тип скрипта, а второй язык написания.

В современных браузерах эти определения введены по умолчанию. То есть, браузер увидев тег script сразу переключается в режим javascript и выполняет код.

Внутри тега script пишется код скрипта.

Пример:

<!DOCTYPE HTML>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>js</title>
</head>
<body>

<p>Начало документа...</p>
<script>
alert('Всплывающее окно');
</script>

<p>...Конец документа</p>

</body>

</html>

Этот код выведет всплывающее окно, спрашивающее продолжить или нет действия на странице.

Браузер, открывая страницу, выполняет javascript последовательно со всеми элементами страницы.

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

После отладки скрипт сохраняется как отдельный файл.

Внешнее подключение

Скрипты с большим объёмом кода обычно выносятся во внешний файл. Что это значит?

Если Вы работаете с каким либо приложением, то в нём скорее всего уже есть папка js.

Если вы только начали создавать сайт, то в его директории создаётся папка js, и в неё помещаются все скрипты.

При этом каждому скрипту, или по другому сценарию, присваивается уникальное название например: one.js или two.js.

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

Для того чтобы подключить внешний файл, в тег script вводится атрибут src, указывающий путь к файлу. Браузер находит файл и выполняет код.

<script src="/js/one.js"></script>
<script src="/js/tvo.js"></script>

При этом браузеру достаточно один раз скачать и выполнить код скрипта, после чего он сохранит его в кеше, и при последующих загрузках будет брать код оттуда, что значительно сокращает время загрузки страницы.

При наличии в теге script атрибута src, браузер видит только значение атрибута. Если после него в тег поместить какой либо код, то этот код будет проигнорирован.

0

3

Асинхронный скрипт

Понятие асинхронный скрипт относится к методу которым этот скрипт будет выполняться, что оказывает влияние на скорость загрузки страницы.

Есть три метода выполнения скриптов

1. Синхронное выполнение.

2. Асинхронное выполнение.

3. Асинхронно-последовательное выполнение.

Рассмотрим по порядку.

Синхронное выполнение — браузер выполняет скрипт последовательно со всеми элементами страницы.

Такое выполнение кода в теге script происходит как бы по умолчанию, то есть в тех случаях, когда для этого нет специальных указаний, о которых чуть ниже.

Происходит это следующим образом: браузер начинает открывать страницу с верху, доходит до тега script, выполняет его, и только потом продолжит выполнять оставшуюся часть.

Такой метод имеет существенный недостаток. Если script расположен в начале страницы, например в теге head (шапка сайта), то пока он не выполнится, на экране ничего не появится.

А если интернет соединение слабое, или сервер перегружен, а страница открывается впервые и у браузера нет кешированой копии, то пользователь скорее всего не станет ждать когда там что-то появится и уйдёт на другой сайт.

Решается эта проблема асинхронным выполнением скрипта.

Асинхронное выполнение (загрузка) позволяет браузеру выводить на экран сначала то что полегче, текст например, а уж потом выполнять скрипты.

Чтобы реализовать этот метод в тег script вводится атрибут async

<script src="/js/one.js" async></script>
Вот теперь браузер не будет задерживать на скрипте всю страницу, и выполнит его сразу после того как он загрузится.

Теперь представим, что на странице подключено несколько скриптов и последовательность их выполнения должна быть строго соблюдена.

А если один и них окажется легче предыдущего и загрузится, а значит и начнёт выполняться быстрее?

В таких случаях применяется асинхронно-последовательное выполнение скриптов.

Асинхронно-последовательное выполнение, так же как и просто асинхронное, позволяет браузеру открывать страницу, не дожидаясь загрузки скриптов, но выполняться они будут в той последовательности, в которой прописаны в коде.

Даже если второй скрипт загрузится раньше, он будет ждать пока не заработает первый.

Реализуется метод введением в тег script атрибута defer

<script src="/js/one.js" async></script>
<script src="/js/tvo.js" defer></script>

Ещё одной особенностью defer является то, что скрипт с этим атрибутом, даже если он на странице один, не заработает пока не загрузится вся страница.

Например, онлайн калькулятор не будет работать до полной загрузки.

0

4

Структура javascript

Здравствуйте уважаемые начинающие программисты.

Что-бы понять как в дальнейшем работать с javascript нужно знать его структуру.

Javascript опирается на html разметку, которая строго структурирована по иерархии. Основным родителем в ней является тег <html>, в котором заключены все остальные теги, составляющие содержание страницы.

Многие из них являются родителями для других, и опираясь на эту структуру, программист может задавать тегам оформление.

Структура javascript очень похожа по сути, но отличается по содержанию.

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

Все объекты имеют свои названия, но их можно менять на пользовательские. В дальнейшем узнаем для чего и как это делается.

Это так называемые браузерные объекты. Кроме них ещё есть объекты языка и пользовательские.

Вообще-то в javascript ещё много объектов и мы с ними познакомимся в течении курса. Пока для понятия смысла достаточно.

Для чего это нужно знать? Суть javascript в том, что он даёт возможность воздействовать на элементы находящиеся в объекте window.

Заставлять их двигаться, изменять форму и цвет и т.п. и т.д.

Это делается с помощью функций. А вот чтоб привязать функцию к нужному элементу, необходимо указать этот элемент, или путь к элементу в древе кода.

Самым часто используемым является объект document, так как именно он является родителем всех элементов страницы, поэтому, для примера, рассмотрим его подробнее.

Допустим нам необходимо обратится к изображению расположенному на странице.

Выбираем этот элемент в иерархии.

window.document.img();

И дальше в круглых скобках прописать имя функции, которая будет создана для картинки.

Но такой вариант возможен только в том случае, если на странице одно единственное изображение и больше ничего нет. Тут и выбирать собственно нечего.

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

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

Методы объекта document.

•write() — записывает в документ заданное в скобках качестве аргумента значение и выводит на экран;
•writeln() — аналогичен предыдущему, но выведенное в документ значение заканчивается символом перевода строки;
•clear() — очищает содержимое документа;
•close() — закрывает ранее открытый документ, фиксируя внесенные изменения;
•open() — открывает новый документ; при этом для текущего документа все его содержимое удаляется;

Синтаксис

document.write();

Свойства объекта document.

•Title() — текст заголовка документа (содержимое элемента title);
•fgColor() и bgColor() — цвет текста и цвет фона документа;
•linkColor(), vLinkColor(), aLinkColor() — цвета не посещенных, посещенных и активных гиперссылок;
•lastModified () — дата изменения документа;
•getElementById() — обращение к элементу по id
В скобках указываются значения цвета, текст, id и т.д.

Синтаксис

document.getElementById(#main-image);

Вот так, в общих чертах, выглядит строение javascrip. На самом деле оно, конечно гораздо сложнее, но как говорится — от простого к сложному.

0

5

События javascript

Здравствуйте уважаемые начинающие программисты.

Прежде чем перейти к элементам javascript, узнаем что такое событие.

Событие — это реакция программы на действия посетителя и внутреннее взаимодействие скриптов.

По простому — клик или наведение мыши, перетаскивание, изменение размеров, нажатие клавиши, начало и окончание загрузки документа, отправка формы и т.п.

Для того что-бы событие возникло, его нужно объявить. Делается это просто.

В определённое место кода, например в html тег, вводится обработчик события с указанием функции, которая будет срабатывать при возникновении события.


<img src="images/28.phg" onClick="addText();">
// Событие - клик по картинке
Все события имеют имя и здесь я покажу их все, для того, чтобы в дальнейшем можно было перейти на эту страницу и выбрать нужное.

У всех событий для обработки впереди приписывается on, за исключением специальных методов, где указывается чисто имя события.

MouseDown — onMouseDown — пользователь нажимает кнопку мыши

MouseOut — onMouseOut — указатель мыши выходит за пределы элемента

MouseOver — onMouseOver — указатель мыши помещается над элементом

MouseUp — onMouseUp — пользователь отпускает кнопку мыши

Click — onClick — пользователь щелкает мыщью по объекту

DblClick — onDblClick — пользователь делает двойной щелчок мышью по объекту

DragDrop — onDragDrop — пользователь перетаскивает мышью объект

Resize — onResize — пользователь изменяет размеры окна или элемента

Move — onMove — пользователь перемещает окно

Select — onSelect — пользователь выбирает элемент формы

Submit — onSubmit — пользователь нажимает кнопку «submit» формы

Reset — onReset — пользователь нажимает кнопку «reset» формы

Blur — onBlur — потеря объектом фокуса

Focus — onFocus — окно или элемент формы получает фокус

KeyDown — onKeyDown — пользователь нажимает клавишу клавиатуры

KeyPress — onKeyPress — пользователь удерживает нажатой клавишу клавиатуры

KeyUp — onKeyUp — пользователь отпускает клавишу клавиатуры

Load — onLoad — документ загружается в браузер

Unload — onUnload — пользователь закрывает документ

Change — onChange — пользователь изменяет значение элемента

Error — onError — возникновение javascript-ошибки

В качестве примера создадим очень простой, но симпатичный калькулятор.

Для его создания применим таблицы и формы html, стили css и событие Click jvascript.

Код:

HTML

Код:

<form name="calc" id="calculator">
<table>
<tr>
<td>
<input type="text" name="input" size="16" class="display">
</td>
</tr>
<tr>
<td class="buttons">
<input type="button" value="1" OnClick="calc.input.value += '1'" class="klav">
<input type="button" value="2" OnClick="calc.input.value += '2'" class="klav">
<input type="button" value="3" OnClick="calc.input.value += '3'" class="klav">
<input type="button" value="+" OnClick="calc.input.value += '+'" class="klav">
<br>
<input type="button" value="4" OnClick="calc.input.value += '4'" class="klav">
<input type="button" value="5" OnClick="calc.input.value += '5'" class="klav">
<input type="button" value="6" OnClick="calc.input.value += '6'" class="klav">
<input type="button" value="-" OnClick="calc.input.value += '-'" class="klav">
<br>
<input type="button" value="7" OnClick="calc.input.value += '7'" class="klav">
<input type="button" value="8" OnClick="calc.input.value += '8'" class="klav">
<input type="button" value="9" OnClick="calc.input.value += '9'" class="klav">
<input type="button" value="x" OnClick="calc.input.value += '*'" class="klav">
<br>
<input type="button" value="c" OnClick="calc.input.value = ''" class="klav">
<input type="button" value="0" OnClick="calc.input.value += '0'" class="klav">
<input type="button" value="=" OnClick="calc.input.value = eval(calc.input.value)" class="klav">
<input type="button" value="/" OnClick="calc.input.value += '/'" class="klav">
</td>
</tr>
</table>
</form>

CSS

Код:
#calculator * {
font-size: 18px;
color: #666;
}
#calculator table {
border: solid 3px silver;
border-spacing: 3px; background-color: #EEE;
}
#calculator table td {
border-spacing: 3px;
}
input.display {
width: 166px;
text-align: right;
}
td.buttons {
border-top: solid 1px silver;
}
.klav {
width: 50px;
height: 30px;
}

Разбор кода.

Тег <form> устанавливает форму на веб-странице. Форма предназначена для обмена данными между пользователем и сервером.

Тег <table> — контейнер для таблицы.

Теги <tr> и <td> ячейки таблицы, в нашем случае дисплей и кнопки калькулятора.

Тег <br> — перенос строки.

CSS — оформление внешнего вида калькулятора.

Тег <input> — создаёт различные формы на странице и обрабатывает javascript.

Атрибут type=»button» — создаёт кнопку в ячейках таблицы.

Атрибут value=»» — создаёт символы в кнопке.

OnClick=»calc.input.value += ‘1’» — событие javascript выводящее на дисплей символ из value при клике мыши.

eval() — Jvascript метод выполняющий действие набранное на дисплее.

Как видите здесь только математика. Чтоб добавить в калькулятор алгебру и геометрию, нужны будут функции и метод Math, но об этом в следующих уроках.

А здесь для практики вы можете добавить клавиши проценты % и точку, изменив порядок клавиш и ширину калькулятора.

И ещё, данный код корректно работать будет только в редакторе файлов, например в Notepad++.

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

0

6

Javascript основные элементы

Здравствуйте начинающие программисты.

В этом уроке познакомимся с основными элементами Javascript и напишем первые работающие скрипты.

Зубрить тут ничего не надо, надо лишь внимательно прочитать, чтоб отложилось в уме — какие элементы есть в этом языке программирования, как они выглядят (пишутся), и какие действия выполняют.

Этого для начала будет достаточно, так как сразу "въехать" в то, для чего и зачем, всё равно не получится, да и не надо

А надо попробовать написать скрипты из этой статьи в редакторе, запустить их в браузере и посмотреть как они работают.

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

Урок, однако, будет большой, так что не стоит пытаться освоить его с ходу. Лучше взять в закладку, и продвигаться по мере понимания.

Чтобы посмотреть что и как работает, надо сделать некоторые приготовления.

Во-первых, надо создать на компьютере директорию (папку), например в библиотеке Документы, в которой мы будем сохранять, а затем открывать написанные файлы.

В этой директории создадим ещё две папки:

1. images в которую надо будет положить хотя бы одну картинку для использования при тестировании.

2. js в которую будем помещать файлы со скриптами, чтобы протестировать их внешнее подключение.

Во-вторых, установить на компьютер редактор кода, я использую Notepad++.

В третьих, создать в редакторе новый документ с каркасом html страницы, который и сохранить в созданной директории.

После приготовлений можно начинать знакомство с элементами Javascript, вставлять приведённые ниже коды в редактор и тут же смотреть результат, запуская их в браузере.

Добавлю, что приведённые ниже скрипты, можно размещать как в теге head, так и в теге body. Пока без разницы.

document.write

Объект document с методом write просто выведет на экран всё что вы в нём объявите, будь то просто строка с текстом, или html теги со стилями.

<script>
document.write("<h1 style='color: red;'>Здравствуй javascript</h1>");
</script>
Этот скрипт выведет большой заголовок красного цвета.

Вообще-то стили в jvascript задаются по другому, и мы это рассмотрим в следующем уроке, но пока до него не дошли, сделаем так как делается в html.

К тому же это наглядный пример того, что jvascript совместим с html.

Добавим картинку

<script>
document.write("<h1 style='color: red;'>Здравствуй javascript</h1>");
document.write("<img src='img/karta1.jpg' width='885' height='400' alt='Карта'>");
</script>
Выведет заголовок и с новой строки картинку.

Теперь немного остановимся на структуре кода, именно на тех моментах, которые актуальны для всех элементов.

1. Всё что выводится на экран заключается в круглые скобки.

2. Строка заключается в кавычки, числа без кавычек. Если в строке есть внутренние кавычки то они выполняются апострофами. Если внутренних кавычек нет, то и основные можно выполнить апострофами.

3. Строка заканчивается точкой с запятой, хотя в большинстве случаев код будет работать и без них, так как интерпретатор воспринимает перенос строки как окончание. Но не всегда.

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

Комментарии

Комментарии необходимы в коде для улучшения его понимания.

Не всегда с ходу можно понять что в массе кода выполняет функция, переменная или их массив, поэтому части кода освещаются комментариями.

В javascript есть два вида комментариев — однострочные и многострочные.

Однострочный комментарий объявляется двойным слешем //. Всё что будет написано после него в строке, браузер просто не увидит. Зато увидит и прочитает программист.

// Комментарий
Многострочный комментарий объявляется и заканчивается слешем со звёздочкой.

/* Комментарий
комментарий
комментарий */
alert

Команда alert относится к функциям взаимодействия с пользователем. Она выводит модальное окно с сообщением, и приостанавливает выполнение скрипта пока пользователь не нажмёт ОК.


<script>
alert("Вас приветствует Javascript");
</script>
1

prompt

prompt также функция взаимодействия, но в отличие от alert выводит модальное окно с полем для ввода текста и кнопками ОК и CANCEL.

Пользователю задаётся вопрос и предлагается ввести ответ, после чего нажать ОК, или ничего не вводить и нажать CANCEL (отмена)

Выполнение сценария приостанавливается до ответа пользователя.

<script>
result = prompt("Пожалуйста представьтесь", "Ф.И.О.");
</script>
2

confirm

confirm ещё одна функция взаимодействия. Она выводит модальное окно с вопросом и двумя кнопками ОК и CANCEL, и ждёт ответа пользователя.

<script>
result = confirm("Вы точно хотите покинуть эту страницу");
</script>
3

Эти три функции являются встроенными, поэтому внешний вид и точка вывода модальных окон в разных браузерам могут отличаться.

Переменные

Переменные в javascript объявляются ключевым словом var


lt;var имя_переменной = данные хранимые переменной;
Имя переменной может состоять из любых букв латиницы, цифр и символов $ и _. Остальные символы не допустимы.

Не допускается начало имени с цифры.

Регистр букв в имени имеет значение. Так W и w будут два разных имени.

Оператор присвоения = присваивает переменной тот объём данных, который в неё внесёт программист.

Строковые данные заключаются в кавычки, числовые без кавычек. Если число будет заключено в кавычки, то оно будет интерпретироваться как строка.

Например:

var $ = 1 + 2; // будет 3
var $ = "1" + 2; // будет 12 так как строка единица просто соединится с цифрой 2
В данные можно вносить не только буквы и цифры, но и html разметку со стилями.

<script>
var $ = "<h1>Заголовок</h1>";
document.write($);
</script>
Выведет большой заголовок.

Константы

Константа — это переменная, которая никогда не меняется.

Используются они для удобства написания и читаемости кода. Обычно в них вносятся данные не меняющиеся в течении всей программы, но к которым не раз приходится обращаться.

Пишется константа заглавными буквами, поэтому хорошо заметна в коде.

var BORDER_RADIUS = "border-radius: 5px 10px;"
Функция

Функция — это некоторый объём кода, который выполняется в определённом месте, или нескольких местах программы.

Причём код достаточно написать один раз, а затем сколь угодно вызывать его по имени функции.

Функции бывают встроенные и пользовательские. Примеры встроенных функций мы рассмотрели выше (alert, prompt, confirm).

Как вы уже наверно догадались, вносить в них какой либо код не надо, так как он заложен по умолчанию, и программист не может в него вмешаться и что-то изменить.

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

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

Объявляется функция ключевым словом function, после которого пишется имя функции и круглые скобки, в которые вставляются параметры, но о них чуть ниже.

Затем ставятся фигурные скобки, в которых и находится тот код, который будет выполняться при вызове данной функции.

Желательно, что-бы имя функции хоть как-то отражало действие, которое она выполняет.

function i_am_learning_JS()
{
}

Имя функции в данном примере написано с подчёркиванием, так как первое слово из одной буквы.

А вообще-то в jvascrip все названия состоящие из двух и более слов пишутся следующим образом: первое слово с маленькой буквы, а остальные с заглавной и всё слитно.

То есть если добавить одну букву в первое слово нашего названия, то оно будет выглядеть так: iaAmLearningJs.

Имя функции может состоять из любых букв, цифр и символов $ и _. Остальные символы недопустимы, а кирилица нежелательна.

Имя функции может состоять из одной буквы или символа, но не цифры, и не может начинаться цифрой.

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


<script>
// Создаём функцию
function I_am_learning_JS()
// Задаём ей действие - вывод на экран
{
document.write('<h3>Я учу яваскрипт</h3>');
}
// Обращаемся к функции, чтоб действие было выполнено
I_am_learning_JS();
</script>
4

Параметры функции

Параметр вносится в круглые скобки следующие за именем функции. Он добавляет данные к уже имеющимся и может изменяться при каждом вызове функции.

<script>
// Добавляем параметр, название любое
function I_am_learning_JS(parameter)
// Добавляем в код доп. параметр
{
document.write('Я учу яваскрипт ' + parametr);
}
// При вызове указываем значение параметра
I_am_learning_JS('3 дня');
</script>
5

При следующем вызове можно изменить параметр на 6 дней, затем на 9 дней и т.д.

В этом примере обратите внимание на синтаксис. В строке Я учу яваскрипт, между последним словом и закрывающей кавычкой есть пробел.

Этот пробел отражается на экране. Без него слова строки и параметра выведутся слитно.

Строка и параметр соединяются оператором +, так же с пробелами до и после плюса, но этих пробелов на экране не видно.

Заметьте, что при объявлении функции, в самом начале, в скобках написано parametr, а при обращении к ней, в конце — 3 дня.

Это значит, что в начале надо только указать что у функции есть параметр, название не важно, а уж в конце написать точное значение этого параметра.

Глобальные и локальные переменные

Переменные бывают глобальными и локальными.

Переменная является локальной, если она расположена в теле функции.


<script>
function I_am_learning_JS(parameter)
{
var nev = 'cod'
}
</script>
Переменная является глобальной, если она расположена вне функции.

<script>
var nev = 'cod'
function I_am_learning_JS(parameter)
{
}
</script>

Операторы

Основные термины и понятия:

Оператор — символ определяющий действие после которого получается результат.

Операнд — то к чему применяется оператор

Бинарный оператор — оператор применяющийся к двум операндам. Типичный пример — сложение: два слагаемых (операнды), между ними символ + (оператор).

Унарный оператор — оператор применяемый к одному операнду. Типичный пример — отрицательное число: символ — (оператор), само число (операнд).

Некоторые операторы нам уже знакомы из среднеобразовательной школы.

Это сложение «+», вычитание «-«, умножение «*», деление «/», равно «=», больше «>», меньше «<«. В javascript они делают то же самое что и в математике, поэтому задерживаться на них не будем.

Вот только «=» называется не равно, а присвоение.

Но есть несколько операторов, которые применяются именно в языках программирования, в том числе и в javascript, вот их и рассмотрим.

++ — инкремент. Унарный оператор увеличивающий значение операнда на 1.

Записывается так: var ++10 или 10++ в результате 11.

–– — декремент. Унарный оператор уменьшающий значение операнда на 1.

Записывается так: var ––10 или 10–– в результате 9.

Эти операторы применяются только к переменным.

Спереди или сзади операнда ставить оператор разницы нет. Есть некоторые нюансы в некоторых же случаях, но это уже не основы а тонкости и их будем разбирать отдельно попозже.

% — взятие остатка. Бинарный оператор. Это не проценты, это число которое получается в остатке при делении одного операнда на другой.

Записывается так: 10 % 3 в результате получается 1.

== — равно. Оператор сравнения

=== — строго равно. Оператор сравнения

! — отрицание. Читается как НЕ. Логический оператор.

|| — ограничение. Читается как ИЛИ. Логический оператор.

&& — обобщение. Читается как И. Логический оператор.

Есть ещё много комбинаций операторов присвоения, сравнения, есть побитовые операторы, которые применяются крайне редко в javascript, есть аксессоры и условные операторы.

Рассматривать их пока не будем, чтоб не забивать мозги. Основные и наиболее часто применяемые узнали, а остальные разберём по мере их появления в скриптах.

Конструкция if — else

if — условный оператор, в тело которого вводится условие.

else — дополнительное условие. Подключается в том случае, если if определит первое условие как неверное.

Что такое условие? Пример из жизни: Условие — если ввести в поле верный пароль, то откроется страница, а если неверный, то выскочит предупреждение.

Как это работает.

Допустим вы вводите пароль, определим его как переменную в которую введена цифра 5.

var one = 5;
Задаём начальное условие программы: если в переменной цифра 5, то открывается страница на которую Вы хотите попасть.


<script>
var one = 5;
// В if находится верный пароль
if (one === 5)
// Если цифры в переменной и в if совпадают, то Вы попадаете куда надо
{
document.write('Страница на которую Вы хотите попасть');
}
</script>
Оператор сравнения в if читается как: строго равно.

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

То есть оператор определит несоответствие и программа не будет работать.

Теперь введём продолжение условия — else, в котором указывается вариант работы программы, если первый окажется неверным.

Введём в переменную цифру 4 и добавим блок else

<script>
var one = 4;
if (one === 5)
{
document.write('Страница на которую Вы хотите попасть');
}
else (one != 5)
{
document.write('Вы ввели неверный пароль');
}
</script>
Оператор сравнения в блоке else читается как: не равно.

Здесь первое условие будет не правильным, и на экран выведется предупреждение из блока else.

В основном if — else используется в работе функций.

Цикл for

Цикл используется для того, чтобы провести неоднократно какое либо однотипное действие.

Вид цикла, или его синтаксис очень похож на синтаксис функции или оператора if

Сначала пишется ключевое слово for, затем в круглых скобках указывается условие цикла, после чего в фигурных скобках прописывается задание для цикла.

<script>
for ();
{
}
</script>

Для примера в условии цикла внесём переменную, значение которой должно будет увеличиваться в течении цикла на единицу.

for (var i = 0: i < 13; i++);
В условии указано что переменная i изначально равно нулю, цикл будет выполняться пока значение переменной будет меньше 13, при каждом шаге значение переменной будет увеличиваться на единицу.

В задании циклу или в теле цикла, пропишем вывод переменной i на экран.

А чтобы результат на экране смотрелся лучше, то есть чтобы цифры не слились, в вывод на экран добавим спецсимвол html &nbsp; (неразрывный пробел)

<script>
var i;

for (var i = 0; i < 13; i++) { document.write(i + '&nbsp;');
}
</script>

7

Цикл while

Вообще-то по сути это такой же цикл, но синтаксис у него немного другой, что в некоторых случаях имеет значение.

<script>
var i = 0;
while (i < 13)
{
document.write(i + '&nbsp;');
i++;
}
</script>

В результате то же самое

7

Массив

Массив - это тоже переменная, но если в простой переменной содержится один блок данных, то в массиве их несколько.

То есть, если в переменную добавить ещё хотя-бы одно значение, то это уже массив.

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

var m = ['один', 'два','три','четыре','пять']
По умолчанию каждый элемент массива имеет порядковый номер по которому к этому элементу можно обратится. Отсчёт начинается с нуля и далее по порядку.

Конечно то, что первый элемент ноль, а не единица, немного не удобно, но такова воля создателей javascript.

<script>
var m = ['один','два','три','четыре','пять'];
{
document.write(m[2]);
}
</script>
Выведет Три.

Объект

Обьект - это как и массив, инструмент для работы с множественными данными. В чём отличие вы сейчас поймёте.

Допустим имеется несколько переменных c какими либо значениями:

var a = 'abc';
var b = 'bcd';
var c = 'cde';
var d = 'efg';
Во всех этих переменных содержаться данные о каком либо одном объекте, будь то человек, автомобиль или организация.

Что-бы всё это упорядочить и создаётся объект.

По сути - это тоже переменная, которая объединяет в себе все те переменные, что были в начале, но в объекте они уже называются свойствами объекта.


<script>
var вох =
{
a: 'abc',
b: 'bcd',
c: 'cde',
d: 'efg'
}
//Выводим на экран элемент а
document.write(box.a);
</script>
Свойства объекта разделяются между собой запятыми.

На этом, пожалуй, пока достаточно, хотя это всего лишь малая часть, но всю информацию сразу не то что освоить, но даже просто воспринять невозможно.

Но хочу пояснить ещё одно понятие, которое для новичка может представлять затруднение, но разъяснять его никто не считает нужным.

Это понятие "возвращает", и оно как воздух присутствует во всех операциях. В программировании почти все элементы что-то возвращают. Что это значит?

Допустим есть некий объём данных (переменная массив) с которым проводится операция, то есть применяется некий оператор.

Это может быть функция, метод, свойство цикл.

После действий оператора с объёмом данных, образуется некий результат, и это уже новые данные, которые и возвращает оператор.

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

В дальнейшей работе могут использоваться как первоначальные, так и возвращённые, в зависимости от того, что будет нужно программисту.

Вот теперь точно - пока всё.

0

7

Javascript стили

Здравствуйте уважаемые начинающие программисты.

Раз есть доступ, значит будем пользоваться, т.е воздействовать на имеющиеся элементы средствами javascript.

Во первых проверим, как будут откликаться элементы на наши действия.

В прошлом уроке мы остановились на том, что вывели на экран заголовок и абзац средствами Javascript.

Давайте уберём из кода вывод на экран так как он был нужен только для проверки, и будем работать с теми элементами, которые выведены тегами html.

<script>
document.getElementsByTagName('h2')[0].innerHTML;
document.getElementById('nev').innerHTML;
</script>

Попробуем из скрипта изменить текст в заголовке и абзаце. Делается это следующим образом:

<script>
document.getElementsByTagName('h2')[0].innerHTML = 'Курс Javascript';
document.getElementById('nev').innerHTML = 'Для начинающих';
</script>

Попробуйте. Изменились? У меня изменились. Теперь можно задать стилевое оформление, к чему собственно и стремились.

Заголовку зададим цвет, а абзацу размер.

<script>
document.getElementsByTagName('h2')[0].style.color = '#00AA72';
document.getElementById('nev').style.fontSize = '20px';
</script>

В этом примере обратите внимание как в javascript записываются свойства.

Если в css многие свойства пишутся через дефис (font-size, padding-left, font-family и т.д.), то в javascript они записываются слитно, но вторая часть начинается с заглавной буквы (fontSize, paddingLeft, fontFamily).

Итак, оформление сделано, но ведь стилей обычно бывает много, и если продолжить писать их в строку, каждый раз указывая атрибут style, получится корявенько и трудночитаемо.

Есть способ сделать аккуратнее. (Дальше, чтобы сократить код, работаем только с заголовком)

Создадим функцию forma, и в ней переменную properti, в которую внесём доступ к заголовку со всеми стилями.

<script>
function forma()
{
var properti = document.getElementsByTagName('h1')[0];
properti.style.color = '#00AA72';
properti.style.width = '220px';
properti.style.fontFamily = 'Impact';
properti.style.border = '1px solid #333';
properti.style.borderRadius = '10px';
properti.style.padding = '10px';
}
forma();
</script>

Так код гораздо читабельней.

0

8

Javascript массив, методы массива

Создаём массив, который будем использовать во всех последующих примерах.

<script>
var a = ['ноль',' один',' два',' три',' четыре',' пять'];
document.write(a);
</script>

Пробел внутри апостроф отображается пробелом на экране. При написании программ пробел не ставится.

В дальнейшем во всех примерах, кроме первого, будут выводиться два значения:

а) то что возвращает оператор;

б) то что принимает изначальный массив.

Для работы с массивами есть несколько методов.

1. Метод length — определяет количество элементов массива.

Массив может быть очень объёмным, и пересчитывать его в ручную — дело очень кропотливое, да и ненужное.

Достаточно вывести на экран имя массива с методом length (длина), и вы узнаете точное количество элементов нём.

Учтите, метод length выведет вам число элементов по счёту, т.е начиная с единицы. Номера элементов начинаются с нуля.

<script>
var a = ['ноль',' один',' два',' три',' четыре',' пять'];
document.write(a.length);
</script>

Этот скрипт выведет цифру 6.

2. Метод push — добавляет элемент в конец массива.

В условии указывается название или число добавляемого элемента.

<script>
var a = ['ноль',' один',' два',' три',' четыре',' пять'];
var b = a.push(' шесть');
document.write(b + '<br>');
document.write(a);
</script>

Возвращает длину нового массива (число).

В конец исходного массива добавляется элемент, т.е. меняет начальные данные.

3. Метод pop — удаляет последний элемент массива.

В условии не указывается ничего. Удаление происходит по умолчанию.

<script>
var a = ['ноль',' один',' два',' три',' четыре',' пять'];
var b = a.pop();
document.write(b + '<br>');
document.write(a);
</script>

Возвращает удалённый элемент.

Исходный массив остаётся без последнего элемента.

4. Метод unshift — добавляет элемент в начало массива.

<script>
var a = [' ноль',' один',' два',' три',' четыре',' пять'];
var b = a.unshift(' минус');
document.write(b + <'br'>);
document.write(a);
</script>
Возвращает длину массива (число).

В исходный массив добавляет элемент в начало, т.е меняет начальные данные.

5. Метод shift — удаляет элемент в начале массива.

<script>
var a = [' ноль',' один',' два',' три',' четыре',' пять'];
var b = a.shift(' минус');
document.write(b + '<br>');
document.write(a);
</script>

Возвращает удалённый элемент.

Исходный массив остаётся без первого элемента.

6. Метод concat — объединяет два массива в один.

<script>
var a = ['ноль',' один',' два'];
var b = [' три',' четыре',' пять'];
var c = a.concat(b);
document.write(a + '<br>');
document.write(b + '<br>');
document.write(c);
</script>

Возвращает объединённый массив не меняя исходные.

7. Метод sort — сортирует массив. Сортировка происходит следующим образом:

a) строка (слова) выстраиваются по первой букве в слове по алфавиту. Английские по латинскому, русские по кириллическому.

в) цифры выстраиваются по по первому знаку например: цифры 1, 13, 176 построятся друг за другом, а цифры 2, 21, 240 после них и т.д.

<script>
var a = ['ноль',' один',' два',' три',' четыре',' пять'];
var b = a.sort();
document.write(a + '<br>');
document.write(b);
</script>

Возвращает отсортированный массив.

Исходный так же становится отсортированным.

<script>
var a = [2,7,17,21,329,1,453,29];
var b = a.sort();
document.write(a + '<br>');
document.write(b);
</script>

8. Метод reverse — меняет порядок элементов на противоположный.

<script>
var a = [' ноль',' один',' два',' три',' четыре',' пять'];
var b = a.reverse();
document.write(a + '<br>');
document.write(b);
</script>

Меняет порядок элементов как в возвращённом, так и в исходном массивах.

9. Метод join — отвечает за знак между элементами массива. Если в массиве между элементами стоит запятая, то join может поменять её на любой другой, который вы укажете в его аргументе.

<script>
var a = [' ноль',' один',' два',' три',' четыре',' пять'];
var b = a.join('&');
document.write(a + '<br>');
document.write(b);
</script>

Возвращает массив с изменённым знаком.

Исходный массив не меняется.

10. Метод slice — вырезает часть массива, при этом исходный массив остаётся целым.

Чтобы вырезать часть массива, в аргументах slice указываются номера элементов, с какого по какой делается выборка.

<script>
var a = [' ноль',' один',' два',' три',' четыре',' пять'];
var b = a.slice(1, 5);
document.write(a + '<br>');
document.write(b);
</script>

Возвращает вырезанную часть, при этом исходник остаётся целым.

11. splice — позволяет добавлять в массив любое количество элементов.

Для этого в параметрах метода в начале указываются два значения: первое — индекс элемента после которого будут добавляться элементы, а второе 0, после чего вносятся те элементы которые будут добавляться.

<script>
var a = [' ноль',' один',' два',' три',' четыре',' пять'];
var b = a.splice(6, 0, ' шесть',' семь',' восемь');
document.write(a + '<br>');
document.write(b);
</script>

Возвращает пустой массив, а все изменения вносятся в исходник.

12. Метод filter — позволяет отобрать элементы похожие по какому либо признаку.

Параметром в этом методе является функция, которая и производит сравнение.

Например отберём все чётные числа.

<script>
var a = [1, 2, 3, 4, 5, 6, 7, 8];
var b = a.filter(function (item) {
return item % 2 == 0;
});
document.write(a + '<br>');
document.write(b);
</script>

Возвращает четные числа.

Исходник без изменений.

12. Метод forEach — параметр функция, которая одинаково воздействует на каждый элемент массива.

Например, расположим каждый элемент с новой строки (столбиком).

<script>
var a = [' ноль',' один',' два',' три',' четыре',' пять'];
a.forEach(function (item) { // item - один пункт
document.write(item + '<br>');
});
</script>

13. Метод map — создаёт массив из изменённых элементов исходного.

В параметр принимается функция изменяющая элементы.

<script>
var a = [' ноль',' один',' два',' три',' четыре',' пять'];
var b = a.map(function (item) {
return item + 'OK';
});
document.write(b + '<br>');
document.write(a);
</script>

Возвращает новый массив.

Исходный массив без изменений.

14. Метод some — проверяет массив на соответствие всех элементов какому либо требованию.

В случае соответствия выдаёт true (верно).

В случае несоответствия выдаёт false (не верно).

Например, проверим все-ли элементы чётные.

<script>
var a = [2, 4, 6, 8, 10];
var b = a.every(function (item) {
return item % 2 == 0;
});
document.write(b);
</script>

Теперь добавим в массив нечетную цифру.

<script>
var a = [2, 4, 5, 6, 8, 10];
var b = a.every(function (item) {
return item % 2 == 0;
});
document.write(b);
</script>

С методами массива пока всё.

0

9

Цикл с массивом

Здравствуйте уважаемые начинающие программисты.

Что такое цикл и массив мы уже знаем из предыдущих уроков. Теперь посмотрим, что и как они могут делать совместно.

Для примера выведем на экран список: ноль, один, два, три, четыре, пять, причём сделаем его столбиком.

Создаём массив.

var = ['ноль','один','два','три','четыре','пять']

Затем цикл for. В условии цикла создадим переменную i = 0, укажем что переменная меньше длины массива massif.length, и укажем что значение переменной увеличивается на единицу.

for (var i = 0; i < massif.length; i++)

В теле цикла введём вывод на экран переменной i и перенос строки.

<script>
var massif = ['ноль','один','два','три','четыре','пять'];
for (var i = 0; i < massif.length; i++) { document.write(massif[i] + '<br>');
}
</script>

Открываем

Обратите внимание, что массив расположен глобально, т.е. за циклом, однако переменная находящаяся в цикле его видит и взаимодействует.

Такое явление называется видимостью, и в дальнейшем мы ещё с ним столкнёмся.

Теперь допустим, что нам нужно прервать работу цикла на каком нибудь элементе. Для этого в тело цикла вводится условный оператор if с командой break

<script>
var massif = ['ноль','один','два','три','четыре','пять'];
for (var i = 0; i < massif.length; i++) { document.write(massif[i] + '<br>');
// В операторе if применяются операторы сравнения)
if (i === 3)
{
breac;
}
}
</script>

В этом случае в браузере появятся четыре элемента, так как первый под номером 0, а мы прервали цикл на номере 3.

На этом пока всё!

0

10

Функции Javascript

Сейчас будем практиковаться на примерах с привязкой к html элементам, и разбирать по составу, чтобы понять, как это работает.

Функция срабатывает при клике мыши

Создаём html элемент с текстом.

<p>Щёлкни по мне пожалуйста</p>

Для того чтобы эта фраза реагировала на клик мыши, добавим в него в качестве атрибута обработчик события onClick, и привяжем к нему имя функции, которая и будет включаться при клике мыши.

<p onClick="example()">Щёлкни по мне пожалуйста</p>
Теперь создадим эту функцию

Код:
<script>
function example()
{
//При клике меняет текст
document.write('Большое спасибо');
};
</script>

Функция выполняет математические операции

Введём в функцию несколько переменных

Код:
<script>
function example(){
// Объявляем переменные в теле функции
var a=5;
var b=10;
// Задаём им математическое действие
var s=b/2*a;
// Результат будет выводиться на экран
document.write(s);
}
// Вызываем функцию
example();
</script>

Программа выведет результат — цифру 25.

Функция с конструкцией if — else

Сделаем раскрывающееся меню

Для создание меню используем теги списка. В тегах ссылок вместо атрибута href используем атрибут name, так как пока нет адресов для перехода.

Код:
<ul>
<li onclick="Menu('1')">Меню 1</li>
<ul id="menu_1" style="display:none;">
<li><a name="">Меню 1.1</a></li>
<li><a name="">Меню 1.2</a></li>
</ul>
<li onclick="Menu('2')">Меню 2<style="/li>
<ul id="menu_2" style="display:none;">
<li><a name="">Меню 2.1</a></li>
<li><a name="">Меню 2.2</a></li>
</ul>
</ul>

Затем создадим функцию, в которой объявим переменную с доступом к элементу по id, и оператор if со значением menu.display == ‘none’, т.е. субменю изначально скрыто.

Затем в тело оператора введём условие: если субменю не видимо (menu.display == ‘none’), то при клике его надо сделать видимым (menu.display = ‘block’).

А если (else) субменю видимо, его при клике нужно сделать невидимым, т.е. наоборот.

Код:
<script>
function Menu(id)
{
var menu = document.getElementById('menu_' + id).style;
if (menu.display == 'none')
{
menu.display = 'block';
}
else
{
menu.display = 'none';
}
}
</script>

И ещё один, очень интересный пример функции с конструкцией if — else.

Увеличение картинки по клику и возвращение в исходное состояние при повторном клике.

HTML

<!--В код добавляем событие onclick с функцией-->
<p><img src="images/karta1.jpg" width="200" onclick="example(this)"></p>

В атрибут функции вводим ключевое слово this, обладающее очень большими возможностями, которые я пока объяснить не могу.

В нашем случае с его помощью работает анонимная функция.

JS

Код:
<script>
// Объявляем две глобальные переменные
var t, a;
// Объявляем функцию в атрибут которой будет передаваться значение this
function example(e){
// Метод clearTimeout прекращает работу программы после выполнения
clearTimeout(t);
//Объявляем локальную переменную со значение ширины картинки
var w = e.width;
// Задаём условие
if (a) {
// Метод setInterval последовательно выводит элемент каждые 5 ms
t = setInterval(function () {
// Доп. условие: при каждом выводе ширина уменьшается на единицу
if (w <= 200) clearTimeout(t); e.width = w--; }, 5); } // Если предварительное условие уже выполнено и остановлено
else {
t = setInterval(function () {
if (w >= 450) clearTimeout(t);
e.width = w++;
}, 5);
}
// Отмена условий по выполнении
a = !a;
}
</script>

Остаётся навести красоту и можно прикручивать эту опцию к CMS, но об этом в отдельной статье

0


Вы здесь » Forix ФоРуМ рунета » JavaScript ★ PHP ★ MySQL » Javascript и jQuery


создать форум