Слайд 1Основы JavaScript
Поляруш Александр Юрьевич
polyarush@yandex.ru
http://vk.com/polyarush_a
Слайд 2Комментарии в JavaScript
document.write("Hello, world"); // Однострочный комментарий
/*
Многострочный комментарий
*/
Слайд 3Первая программа
Первая программа
Слайд 4Разбиение сообщения на строки
Первая программа
Слайд 5Первая программа
Первая программа
Ваш Web-браузер не поддерживает
JavaScript.
Слайд 6Конкатенация строк
var name = prompt('What is your name?', '');
type="text/javascript">
document.write('Welcome ' + name + '');
Script 2.1
Слайд 7
Первая программа
document.write("Вы нажали Cancel");
}
else {
document.write("Привет " + m_str1);
}
//Метод prompt()
//-->
Слайд 8Типы данных
Типы данных
m_Str2;
Слайд 9document.write("m_Number - " + typeof (m_Number) + "
");
document.write("m_Number2 - "
+ typeof (m_Number2) + "
");
document.write("m_String - " + typeof (m_String)
+ "
");
document.write("m_String2 - " + typeof (m_String2) + "
");
document.write("m_Boolean - " + typeof (m_Boolean) + "
");
document.write("m_Str1 - " + typeof (m_Str1) + "
");
document.write("m_Str2 - " + typeof (m_Str2));
//-->
Слайд 10Массивы
m_Mass1 = [1, 2, 3, 4];
m_Str = m_Mass1[0]; // Переменной
m_Str будет присвоено значение 1
["", "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь",
"Октябрь", "Ноябрь", "Декабрь"];
document.write(m_Mass1[1] + " и " + m_Mass2[2]);
//-->
Слайд 12Условные операторы
Условный оператор применяется для ветвления программы по некоторому логическому
условию. Есть два варианта синтаксиса:
if (логическое_выражение) оператор;
if (логическое_выражение) оператор_1;
else оператор_2;
if (navigator.javaEnabled())
alert('Ваш браузер поддерживает Java');
else
alert('Ваш браузер НЕ поддерживает Java');
Слайд 13Окно с сообщением и кнопками OK и Cancel
Первая программа
(window.confirm("Hello, world")) {
window.alert("Нажата кнопка OK");
}
else {
window.alert("Нажата кнопка Cancel");
} // Метод confirm()
//-->
Слайд 14Условные операторы
Проверка числа на четность
if (m_Var1==null) {
document.write("Вы нажали Отмена");
}
else {
if ((parseInt(m_Var1))%2==0) {
document.write("Четное число");
}
else {
document.write("Нечетное число");
}
}
//-->
Слайд 15Циклы
Оператор for – это оператор цикла. В общем случае он
имеет вид:
for (инициализация_переменных_цикла;
условие_продолжения_цикла;
модификация_переменных_цикла) тело_цикла;
Цикл
for работает следующим образом:
выполняется инициализация_переменных_цикла ;
проверяется условие_продолжения_цикла:
если оно ложно ( false ), цикл закончен,
если же истинно ( true ), то продолжаем далее;
выполняется тело_цикла ;
выполняется модификация_переменных_цикла ;
переходим к пункту 2.
Слайд 16типичный пример использования этого оператора:
document.write('Кубы чисел от 1 до 100:');
for
(n=1; n
Слайд 17Циклы
Оператор while задает цикл. Определяется он в общем случае следующим
образом:
while (условие_продолжения_цикла) тело_цикла;
Тело цикла может быть как простым, так и
составным оператором. Составной оператор, как всегда, заключается в фигурные скобки. Рекомендуется и простой оператор заключать в них, чтобы программу можно было легко модифицировать. Условие_продолжения_цикла является логическим выражением. Тело исполняется до тех пор, пока верно логическое условие. Формально, цикл while работает следующим образом:
проверяется условие_продолжения_цикла:
если оно ложно ( false ), цикл закончен,
если же истинно ( true ), то продолжаем далее;
выполняется тело_цикла ;
переходим к пункту 1.
Слайд 18Цикл while используется, когда заранее неизвестно количество итераций, например, в
ожидании некоторого события. Пример:
var s='';
while (s.length
менее 6:','');
}
alert('Ваша строка: ' + s + '. Спасибо!');
Слайд 20Функция вынесена в отдельный файл script.js
Функции
m_Var1=5, m_Var2=3;
m_Var = f_Sum (m_Var1, m_Var2);
document.write(m_Var);
//-->
Слайд 21Содержимое файла script.js
function f_Sum (m_x, m_y) {
return (m_x
+ m_y);
}
Слайд 22Доступ к объектам документа
Сценарии JavaScript очень часто применяются для создания
динамических веб-страниц, способных получать и обрабатывать произвольную информацию. Для этого
необходимо организовать доступ сценария к определенным элементам веб-страницы.
Доступ к различным объектам HTML-документа в языке JavaScript организован в строгом соответствии с иерархией объектов. Каждый объект иерархической структуры имеет свое имя.
Слайд 23Например, на веб-странице может находиться несколько изображений с img1, img2
и img3. Если вы хотите обратиться к первому рисунку, то
сориентироваться в иерархии объектов и начать с самой ее вершины, объект на веб-странице называется Document. Все изображения на странице представлены как коллекция images. Причем первый рисунок всегда обозначается как images[0], второй как images[1], третий как images[2] и т. д. Иными словами, отсчет объектов в коллекции начинается не с единицы, а с 0.
Таким образом, вы можете получить доступ к первому изображению img1, записав в сценарии JavaScript document.images[0]. Чтобы получить доступ ко второму изображению img2, запишите в сценарии строку document.images[1]. Соответственно для получения доступа к третьему изображению img3 на веб-странице используйте конструкцию document.images[2].
Слайд 24Тот же принцип действует по отношению к ссылкам и формам.
Если вы хотите получить доступ к какому-либо элементу формы, снова
необходимо начать с вершины иерархии объектов. Затем прослеживаете путь к объекту и записываете названия всех объектов, которые
Например, чтобы узнать, какой текст ввел посетитель вашей веб-страницы в поле формы, необходимо обратиться к значению (value) данного поля. Для этого в сценарии JavaScript можно записать строку name= document.forms[0].
Слайд 26
Смена картинок через массив
function myimage(pic)
//функция
{
document.images[0].src=pic
}
Просмотр
фотографий
Слайд 27
Природа
картинка1
картинка2
картинка3
картинка4
картинка5
href="javascript:myimage('f.jpg')">картинка6
картинка7
Слайд 30Классы
Классы – это тип объекта, включающий в себя переменные и
функции, управляющие этими переменными.
Переменные класса называются свойствами.
Функции класса называют методами.
Для
использования методов и свойств класса чаще всего необходимо создать экземпляр класса.
Слайд 31Для создания экземпляра класса используется оператор new.
= new
([]);
При обращении к свойства используется следующий формат:
.;
При
обращении к свойства используется следующий формат:
<Экземпляр класса>.<имя метода>();
В скобках часто указываются параметры метода.
Слайд 32Класс Date
c_Date = new Date();
document.write(c_Date.toString());
// Sun Apr 29 10:47:27
UTC+0400 2014
c_Date = new Date();
document.write(c_Date.toLocaleString());
// 19 апреля 2014 г. 10:49:09
Слайд 33Текущая дата
Текущая дата и время
+= ""; // Преобразуем число в строку
m_Str2 = new String(m_Str);
if (m_Str2.length==1) return ("0" + m_Str2);
else return m_Str2;
}
function f_Year(m_Year) {
m_Year += ""; // Преобразуем число в строку
m_Year2 = new String(m_Year);
return m_Year2.substr(2);
}
//-->
"понедельник", "вторник", "среда",
"четверг", "пятница", "суббота");
m_Month = new Array("января", "февраля",
"марта", "апреля", "мая",
"июня", "июля", "августа", "сентября", "октября", "ноября", "декабря");
m_Date = "Сегодня
" + m_Day[c_Date.getDay()] + " ";
m_Date += c_Date.getDate() + " ";
m_Date += m_Month[c_Date.getMonth()] + " ";
m_Date += c_Date.getFullYear() + " ";
m_Date += c_Date.getHours() + ":";
m_Date += f_Date(c_Date.getMinutes()) + ":";
m_Date += f_Date(c_Date.getSeconds()) + "
";
m_Date += f_Date(c_Date.getDate()) + ".";
m_Date += f_Date(c_Date.getMonth() + 1) + ".";
m_Date += f_Year(c_Date.getFullYear());
document.write(m_Date); //-->
Слайд 35Библиотека jQuery
jQuery — библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и
HTML.
Библиотека jQuery помогает легко получать доступ к любому элементу
DOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими.
Также библиотека jQuery предоставляет удобный API для работы с AJAX.
http://jquery-docs.ru/ русская документация.
Слайд 36Как получить элемент с помощью jQuery?
$(“#header”) – получение
элемента с id=”header”
$(“h3″) – получить все элементы
$(“div#content .photo”) – получить все элементы с классом =”photo” которые находятся в элементе div с id=”content”
$(“ul li”) – получить все
элементы из списка
$(“ul li:first”) – получить только первый элемент - из списка
Слайд 38Таблица с чередующейся фоновой заливкой
table {border-right: 1px solid #A7A37E;
border-bottom: 1px solid #A7A37E;}
td, th {font-size: 1.3em;
padding: 3px;}
.even {background-color:
#E7F7FF;}
Слайд 39
$(document).ready(function( )
{ $('table.striped
tr:even').addClass('even');});
Product
Cost
Inventory Status
Weight (in lbs.)
Ultra-Glow Hair Spray
$20.00
in stock
.5
Anodyne 3000
$495.00
back order
350
Big Foot Hair Dryer
$55.00
in stock
2
Cat Out of The Hat
$15.00
back order
15
Слайд 41Таблица с выделенной строкой
.highlight {
background-color: #FC6 !important;
}
Script 6.1
Слайд 42
$(document).ready(function( ) {
$('table.striped tr:even').addClass('even');
$('table.striped tbody tr').mouseover(function() {
$(this).addClass('highlight');
$(this).css('cursor','pointer');
}).mouseout(function()
{
$(this).removeClass('highlight');
});
});
Слайд 43Фотогалерея
с превьюшками
$(document).ready(function() {
$('#gallery img').each(function(i) {
var imgFile
= $(this).attr('src');
var preloadImage = new Image();
var imgExt = /(\.\w{3,4}$)/;
preloadImage.src = imgFile.replace(imgExt,'_h$1');
$(this).hover(
function() {
$(this).attr('src', preloadImage.src);
},
function () {
var currentSource=$(this).attr('src');
$(this).attr('src', imgFile);
});
});
7.2
Слайд 44$('#gallery a').click(function(evt) {
//don't follow link
evt.preventDefault();
//get path to new
image
var imgPath = $(this).attr('href');
//get reference to old
image
var oldImage = $('#photo img');
//check to see if they're the same image
if (imgPath == oldImage.attr('src')) {
//if they are then you're done
return;
} else {
//remove highglight from previously clicked thumbnail
$('.selected').removeClass('selected');
//add highlight to this thumbnail
$(this).addClass('selected');
//create HTML for new image
var newImage = $('

');
Слайд 45//make new image invisible
newImage.hide();
//add to the #photo div
$('#photo').prepend(newImage);
//fade out old image and remove from DOM
oldImage.fadeOut(1000,function(){
$(this).remove();
});
//fade in new image
newImage.fadeIn(1000);
}
});
$('#gallery a:eq(0)').click();
});
height="70" alt="Yellow">
height="70" alt="Orange">

