SlideShare a Scribd company logo
Язык Javascript 
По материалам курса University of 
Washington http://www.cs.washington.edu/education/courses 
/cse190m/07sp/index.shtml
Краткое введение в Javascript 
Javascript это: 
1. Интерпретируемый язык. Его интерпретатор обычно встроен в браузер. 
2. Основное назначение – определять «динамическое» поведение 
страниц при загрузке (формирование страницы перед ее открытием) 
и при работе пользователя со страницей (UI элементы). 
3. Текст на Javascript может быть вложен в HTML-страницу 
непосредственно или находиться в отдельном файле (как CSS). 
4. Похож на языки Java и C# синтаксически, но сильно отличается от них 
по внутреннему содержанию.
Характеристика Javascript 
Некоторые важнейшие характеристики Javascript : 
1. Язык объектно-ориентированного программирования. Объекты в языке 
имеют «тип», «атрибуты» и «методы» 
"John,Jane,Paul,Michael".split(",").length 
2. Переменные не имеют заранее заданного типа, то есть в разные 
моменты времени могут содержать значения разных типов 
var number = 25; number = (number < 0); number = "25"; 
3. Типы объектов могут быть: number, string, function, object, 
undefined. Оператор typeof позволяет «вычислить» тип объекта. 
typeof 25 == "number" typeof null == "object"
Основные встроенные типы 
Есть набор встроенных «классов», порождающих «объекты», 
различающиеся набором атрибутов и методов. Программисты могут 
динамически изменять поведение этих «классов» и создавать свои 
собственные. Каждый «класс» является объектом, у которого есть 
«прототип», определяющий набор атрибутов и методов у всех вновь 
создаваемых объектов этого класса. 
Типы, встроенные в язык, это: 
- Number : 64-х-разрядные числа с плавающей точкой. 
- String : строки с символами в формате Unicode. 
- Array : массивы с переменными границами. 
- Function : Функции. Каждая функция, кроме того, может служить 
конструктором объекта. 
- Boolean, Date, Math, RegExp : логические значения, даты,…
Некоторые сведения о синтаксисе 
Описание переменных: 
var count = 25, 
msg = 'Сообщение об ошибке'; 
var nullVar; // получает начальное значение null 
Операции такие же, как в Java и C#, но более широко используется 
преобразование типов 
+ - * / % ++ -- = += -= *= 
/= %= == != > < >= <= && || ! 
2 + '3' == '23', но 2 + 3 == 5 
Многие операторы очень похожи на соответствующие операторы Java и C#, 
но могут иметь некоторые отличия в семантике. 
for (var i = 0; i < 100; ++i) { ... } 
if (x * y < 100) { ... } else { ... } 
try { ... } catch (e) { ... } finally { ... }
Объекты, встроенные в браузеры 
При программировании можно использовать ряд встроенных объектов. 
Основные из них это: 
- window : представляет «глобальный контекст» и позволяет работать 
с атрибутами и методами окна. 
- document : загруженная страница со своей структурой элементов. 
- navigator : объект, представляющий браузер и его свойства. 
- location : характеристики текущего URL (порт, хост и т.п.). 
- объекты, представляющие элементы различных типов в 
HTML-странице, такие как <body>, <link>, <img> и т.п. 
- события (events), возникающие от действий пользователя, например, 
нажатие кнопки мыши (click), загрузка новой страницы (load) и т.д.
Включение Javascript в HTML-страницу 
Фрагменты кода можно включать в заголовок или тело HTML-документа. 
Кроме того, можно разместить код в отдельном файле, а в HTML-странице 
разместить ссылку на этот файл. 
<html> 
<head> 
<script type="text/javascript"> ... </script> 
<script type="text/javascript" src="scripts/myscript1.js/> 
<head> 
<body> 
<script type="text/javascript"> ... </script> 
<script type="text/javascript" src="scripts/myscript2.js/> 
</body> 
</html> 
Код, ссылки на который размещены в заголовке, просто подсоединяется 
к странице и может быть использован, например, для определения 
реакций на пользовательские события. 
Код, ссылки на который размещены в теле, исполняется при загрузке 
страницы и может непосредственно использоваться для формирования 
содержания страницы во время загрузки.
Два простых примера 
Метод document.write используется для непосредственного включения 
HTML-текста в содержимое страницы, например, можно сгенерировать 
длинный текст в параграфе: 
<body> 
<p> 
<script type="text/javascript"> 
for (var i = 0; i < 100; ++i) { 
document.write("Hello, world! "); 
} 
</script> 
</p> 
</body> 
helloworld.html
Два простых примера (продолжение) 
Во втором примере датчик случайных чисел используется для генерации 
случайной ссылки (из заданного набора): 
<body> 
<p> 
<script type="text/javascript"> 
var rand = Math.random(); // в диапазоне: [0, 1) 
var numb = Math.floor(rand * 10); 
var image = "images/image" + numb + ".jpg"; 
var insert = "<img class="floatRight" src="" + 
image + "" alt="Фотография цветочка"/>"; 
document.write(insert); 
</script> 
</p> 
</body> 
randomPicture.html
Тип String 
Строки заключаются либо в апострофы, либо в двойные кавычки 
var slogan = "Don't be evil!"; 
var image ='<img class="to-right" src="myphoto.jpg"/>'; 
escape-последовательности:  ' " t n 
Операции над строками: + < > == != 
"2" + "3" "23" 
"10" < "5" true 
10 < "5" false 
"a" == "A" false 
5 == "5" true 
5 === "5" false 
5 + "5" "55" 
Атрибут строки: length – длина строки. 
"abc".length == 3 
Преобразования типов: String(n) Number(s) 
String(10) < "5" == true Number('3.' + '14') == 3.14
Стандартные методы объектов типа String 
charAt, indexOf, lastIndexOf, replace, split, 
substr, substring, toLowerCase, toUpperCase 
Примеры: 
"Google".charAt(3) "g" 
"Google".indexOf("o") 1 
"Google".lastIndexOf("o") 2 
"Google".replace("o", "oo") "Gooogle" 
"Google".replace(/o/g, "oo") "Goooogle" 
"Google".split("o") ["G","","gle"] 
"Google".substr(1,3) "oog" 
"Google".substring(1,3) "oo" 
"Google".toLowerCase() "google" 
"Google".toUpperCase() "GOOGLE"
Тип Number 
Числа – это 64-х-разрядные двоичные числа с плавающей точкой. 
Number.MIN_VALUE 
Number.MAX_VALUE 
Number.NaN 
Number.POSITIVE_INFINITY 
Number.NEGATIVE_INFINITY 
Операции над числами: + - * / % < > == != 
3.14 % 2 1.14 
Функции преобразования: parseInt, parseFloat, Number, toString 
parseInt("3.14") 3 
5e-324 
1.7976931348623157e+308 
NaN 
Infinity 
-Infinity 
parseFloat("*3.14") NaN 
Number("3.xaxa") NaN 
3.14.toString() "3.14" 
isNaN(3.14 / 0) false 
isNaN(0 / 0) true
Тип Boolean 
Стандартные логические значения – true и false. Однако в качестве 
условий можно использовать любое значение. 
"Истинные" условия: 
if (2 < 5) 
"Ложные" условия: 
if (25) 
if ('Google могуч и ужасен') 
if ("") 
if (0) 
if (null) 
Логические условия используются в условных операторах и операторах 
циклов. 
if (x < y) { z = x; } else { z = y; } 
while (x < 100) { x = x * 2; n++; } 
do { x = Math.floor(x / 2); n++; } while (x > 0); 
for (var y = 0, x = 0; x < 100; ++x) { y += x; }
Тип Date 
Объекты типа Date содержат дату в виде числа миллисекунд, прошедших 
с 1 января 1970 г. Диапазон от -108 до 108 дней от 1 января 1970 г. 
Конструкторы: 
var now = new Date(); // сейчас 
var january1st1970 = new Date(0); // дата в миллисекундах 
var gagarin = new Date(1961, 3, 12); 
var newYear = new Date("January 1, 2009"); 
Методы, применимые для работы с датами: getDate, getMonth, 
getFullYear, getTime, getTimezoneOffset, setDate, setFullYear,… 
function DaysToDate(day, month) { 
var now = new Date(), year = now.getFullYear(); 
var bd = new Date(year, month-1, day); 
var fullDay = 24 * 60 * 60 * 1000; 
var diff = Math.ceil((bd - now) / fullDay); 
return diff < 0 ? diff + 365 : diff; 
} 
todate.html
Сообщения, выдаваемые в popup-окнах 
Три стандартные функции используются для генерации сообщений 
в popup-окнах: alert, confirm, prompt. 
alert('Вы просрочили платеж!'); 
confirm('Вы этого хотите?'); 
Выдает true или false 
var name = prompt('Как Вас зовут?', 
'Никак', 'Вопросик...'); 
Выдает введенную строку или null
События и реакции на них 
Имеется большое количество событий, которые можно разделить на 
следующие классы: 
- события от мыши (click, dblclick, mousedown,…); 
- события от клавиатуры (keypress, keydown,…); 
- события от элементов ввода (focus, submit, select,…); 
- события страницы (load, unload, error,…); 
Один из способов программирования состоит в определении реакции 
на события непосредственно в описании элемента, например: 
<p>День независимости России 
<span style="color: blue; text-decoration: underline;" 
onclick= 
"alert('Осталось ' + DaysToDate(12, 6) + 'дней');"> 
12 июня</span>. 
</p> 
Недостаток этого способа: javascript-текст holidays.html 
опять смешивается с содержанием страницы.
Тип Array 
Существует несколько способов создания массива: 
var holidays = ["1 января", "7 января", "23 февраля"]; 
var holidays = new Array("1 января", "7 января", "23 февраля"); 
var holidays = new Array(3); 
holidays[0] = "1 января"; 
holidays[1] = "7 января"; 
holidays[2] = "23 февраля"; 
Атрибут массива: length – длина массива. 
var myArray = new Array(); 
myArray[2] = new Date(2008,2,23); 
myArray[5] = new Date(2008,5,9); 
myArray.length == 
6?
Тип Array (продолжение) 
Методы, определенные для работы с массивом: 
concat, join, pop, push, shift , unshift, slice 
var names = ["Петя", "Вася"]; 
names = names.concat(["Сережа", "Наташа"], ["Оля", "Люба"]); 
names == ["Петя", "Вася", "Сережа", "Наташа", "Оля", "Люба"] 
var s = names.join(';'); 
s == "Петя;Вася;Сережа;Наташа;Оля;Люба" 
var e = names.pop(); 
e == "Люба" 
names == ["Петя", "Вася", "Сережа", "Наташа", "Оля"] 
var l = names.push("Саша"); 
l == 6 
names == ["Петя", "Вася", "Сережа", "Наташа", "Оля", "Саша"] 
shift и unshift – точно так же, как pop и push, но с началом массива. 
names = names.slice(1, 4); 
names == ["Вася", "Сережа", "Наташа", "Оля"]
Тип Array (продолжение) 
Еще методы, определенные для работы с массивом: 
reverse, sort, splice, toString 
var names = ["Вася", "Сережа", "Наташа", "Оля"]; 
names.reverse(); 
names == ["Оля", "Наташа", "Сережа", "Вася"] 
names.sort(); 
names == ["Вася", "Наташа", "Оля", "Сережа"] 
var a = [5, 3, 40, 1, 10, 100].sort(); 
a == [1, 10, 100, 3, 40, 5] 
var a = [5, 3, 40, 1, 10, 100].sort(function(a,b){return a-b;}); 
a == [1, 3, 5, 10, 40, 100] 
names.splice(1, 2, "Саша", "Таня", "Нина"); 
names == ["Вася", "Саша", "Таня", "Нина", "Сережа"] 
toString – точно так же, как join(','). 
names.toString() == "Вася,Саша,Таня,Нина,Сережа"
Работа с таймером 
Можно создать таймер и определить реакцию на событие от таймера. 
var timer = setTimeout(func, timeinterval); 
func – это функция или строка с кодом; timeinterval – время 
в миллисекундах. Таймер срабатывает один раз и запускает функцию. 
function launchTimer() { 
setTimeout("alert('Зенит – чемпион!');", 2000); 
} 
Теперь можно запустить этот таймер, например, по событию click: 
<body> 
<p>Нажми <span onclick="launchTimer();">сюда!</span></p> 
</body> 
settimer.html 
Пока событие еще не случилось, таймер можно остановить: 
var timer = setTimeout(func, timeinterval); 
clearTimeout(timer);
Работа с интервальным таймером 
Таймер может срабатывать многократно через равные промежутки 
времени. Такой таймер создается с помощью функции setInterval 
и останавливается с помощью функции clearInterval. 
var timer = setInterval(func, timeinterval); 
function launchInterval() { 
timer = setInterval("alert('Зенит – чемпион!');", 2000); 
} 
function stopTimer() { 
if (timer) clearInterval(timer); 
timer = null; 
} 
<body> 
<p>Нажми <span onclick="launchInterval();">сюда,</span> 
чтобы запустить.</p> 
<p>Нажми <span onclick="stopTimer();">сюда,</span> 
чтобы остановить.</p> 
</body> setinterval.html

More Related Content

PPT
Подробная презентация JavaScript 6 в 1
PPT
Подробная презентация JavaScript 6 в 1
PPTX
I tmozg js_school
PPT
Javascript
PDF
Асинхронный JavaScript
PPT
Производительность в Django
PDF
Профилирование и отладка Django
PDF
Магия метаклассов
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1
I tmozg js_school
Javascript
Асинхронный JavaScript
Производительность в Django
Профилирование и отладка Django
Магия метаклассов

What's hot (20)

PDF
Decorators' recipes
PDF
Python dict: прошлое, настоящее, будущее
PDF
Михаил Давыдов - JavaScript. Асинхронность
PPTX
Максим Щепелин. "Unittesting. Как?"
PDF
msumobi2. Лекция 2
PPTX
Быть в 10 раз эффективнее благодаря Groovy
PPT
Web весна 2012 лекция 9
PDF
Влад Ковташ — Yap Database
PDF
Функционально декларативный дизайн на C++
PPT
Web осень 2012 лекция 4
PPT
Yii development
PPT
Web осень 2012 лекция 9
PPTX
ObjectManager, или как работать с большим количеством объектов на карте, Мари...
PDF
MongoDB@addconf
PDF
PVS-Studio в 2021 - Примеры ошибок
PDF
Михаил Давыдов — JavaScript: Асинхронность
PPT
Web весна 2013 лекция 4
PDF
DevConf. Дмитрий Сошников - ECMAScript 6
PDF
AlgoCollections (RUS)
PDF
GAE - плюсы/минусы/подводные камни
Decorators' recipes
Python dict: прошлое, настоящее, будущее
Михаил Давыдов - JavaScript. Асинхронность
Максим Щепелин. "Unittesting. Как?"
msumobi2. Лекция 2
Быть в 10 раз эффективнее благодаря Groovy
Web весна 2012 лекция 9
Влад Ковташ — Yap Database
Функционально декларативный дизайн на C++
Web осень 2012 лекция 4
Yii development
Web осень 2012 лекция 9
ObjectManager, или как работать с большим количеством объектов на карте, Мари...
MongoDB@addconf
PVS-Studio в 2021 - Примеры ошибок
Михаил Давыдов — JavaScript: Асинхронность
Web весна 2013 лекция 4
DevConf. Дмитрий Сошников - ECMAScript 6
AlgoCollections (RUS)
GAE - плюсы/минусы/подводные камни
Ad

Viewers also liked (20)

PPT
Emiliya zuliyanti tif2010b_1412100212
PPT
Unit 11: Scotland: Overview and History
PDF
Android OC Quarterly Review - Q2 2010 par Marketing-Android.fr
DOCX
Arturo Lugo
PPT
Unit 12: Wales
PPT
олимпийские игры
PPT
Executive Chef Slideshow
PPTX
Aprendizaje autónomo
PPTX
Thriller presentation
PDF
Articulo reflexiones sobre el juego y los jugadores - jm lillo
PDF
Portfolio ja analyysi FINNAIR
PPTX
Tejido nervioso, neurona neuroglia y todo lo referente a el.
PPT
I am changing...and I am perfect as I am by Angela Taylo, LCSW at OH2014
PPTX
Anestesicos locales
PPSX
игра по пожарной безопасности
PDF
25 romantic etudes,op66 kohler estudos para flauta
PDF
Crippled man and_the_prostitute
DOC
Themes of moth smoke
PPTX
Antibioticos Betalactamicos
PDF
Markkinointiviestintä – Mitä tehdä itse, mitä ulkoistaa
Emiliya zuliyanti tif2010b_1412100212
Unit 11: Scotland: Overview and History
Android OC Quarterly Review - Q2 2010 par Marketing-Android.fr
Arturo Lugo
Unit 12: Wales
олимпийские игры
Executive Chef Slideshow
Aprendizaje autónomo
Thriller presentation
Articulo reflexiones sobre el juego y los jugadores - jm lillo
Portfolio ja analyysi FINNAIR
Tejido nervioso, neurona neuroglia y todo lo referente a el.
I am changing...and I am perfect as I am by Angela Taylo, LCSW at OH2014
Anestesicos locales
игра по пожарной безопасности
25 romantic etudes,op66 kohler estudos para flauta
Crippled man and_the_prostitute
Themes of moth smoke
Antibioticos Betalactamicos
Markkinointiviestintä – Mitä tehdä itse, mitä ulkoistaa
Ad

Similar to Javascript (20)

DOCX
пр 14.docx
PPTX
Javascript 1
PPTX
CodeFest 2014. Пугачев С. — Язык TypeScript или JavaScript на стероидах
PDF
Сергей Константинов — Что интересного готовит нам W3C
PPTX
course js day 2
PDF
Систематизация экспрешнов в IE
PDF
Web internship java script
PDF
Лекция #5. Введение в язык программирования Python 3
PDF
JavaScript Базовый. Занятие 11.
PDF
React со скоростью света: не совсем обычный серверный рендеринг
PPTX
Underscore js
PPTX
Типичные ошибки начинающих писать тесты на WebDriver
PDF
Михаил Давыдов "Масштабируемые JavaScript-приложения"
PDF
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
PDF
msumobi2. Лекция 1
PDF
Ruby on Rails. Работа с моделями — продолжение
PPTX
Module 4
PPT
Web весна 2013 лекция 9
PPTX
JavaScript как объектно-ориентированный язык программирования
пр 14.docx
Javascript 1
CodeFest 2014. Пугачев С. — Язык TypeScript или JavaScript на стероидах
Сергей Константинов — Что интересного готовит нам W3C
course js day 2
Систематизация экспрешнов в IE
Web internship java script
Лекция #5. Введение в язык программирования Python 3
JavaScript Базовый. Занятие 11.
React со скоростью света: не совсем обычный серверный рендеринг
Underscore js
Типичные ошибки начинающих писать тесты на WebDriver
Михаил Давыдов "Масштабируемые JavaScript-приложения"
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
msumobi2. Лекция 1
Ruby on Rails. Работа с моделями — продолжение
Module 4
Web весна 2013 лекция 9
JavaScript как объектно-ориентированный язык программирования

More from Vasya Petrov (20)

PPTX
О школе
PPT
Настройка Apache и PHP
PPT
Создание сайта на PHP
PPT
Графика средствами PHP
PPT
Графика средствами PHP
PPT
JavaScript-библиотека
PPT
Оптимизация CSS
PPT
633942
PPT
Основные теги HTML
PPT
Работа с текстом в HTML
PPTX
Rabota s massivami_v_php
PPTX
Rabota so strokami_v_php
PPT
Внедрение CSS в HTML документ
PPT
Tables frames
PPT
CSS Язык описания представлений
PPT
массивы Php
PPT
Таблицы Html
PPT
еще JavaScript
PPT
JavaScript
PPT
Html списки
О школе
Настройка Apache и PHP
Создание сайта на PHP
Графика средствами PHP
Графика средствами PHP
JavaScript-библиотека
Оптимизация CSS
633942
Основные теги HTML
Работа с текстом в HTML
Rabota s massivami_v_php
Rabota so strokami_v_php
Внедрение CSS в HTML документ
Tables frames
CSS Язык описания представлений
массивы Php
Таблицы Html
еще JavaScript
JavaScript
Html списки

Javascript

  • 1. Язык Javascript По материалам курса University of Washington http://www.cs.washington.edu/education/courses /cse190m/07sp/index.shtml
  • 2. Краткое введение в Javascript Javascript это: 1. Интерпретируемый язык. Его интерпретатор обычно встроен в браузер. 2. Основное назначение – определять «динамическое» поведение страниц при загрузке (формирование страницы перед ее открытием) и при работе пользователя со страницей (UI элементы). 3. Текст на Javascript может быть вложен в HTML-страницу непосредственно или находиться в отдельном файле (как CSS). 4. Похож на языки Java и C# синтаксически, но сильно отличается от них по внутреннему содержанию.
  • 3. Характеристика Javascript Некоторые важнейшие характеристики Javascript : 1. Язык объектно-ориентированного программирования. Объекты в языке имеют «тип», «атрибуты» и «методы» "John,Jane,Paul,Michael".split(",").length 2. Переменные не имеют заранее заданного типа, то есть в разные моменты времени могут содержать значения разных типов var number = 25; number = (number < 0); number = "25"; 3. Типы объектов могут быть: number, string, function, object, undefined. Оператор typeof позволяет «вычислить» тип объекта. typeof 25 == "number" typeof null == "object"
  • 4. Основные встроенные типы Есть набор встроенных «классов», порождающих «объекты», различающиеся набором атрибутов и методов. Программисты могут динамически изменять поведение этих «классов» и создавать свои собственные. Каждый «класс» является объектом, у которого есть «прототип», определяющий набор атрибутов и методов у всех вновь создаваемых объектов этого класса. Типы, встроенные в язык, это: - Number : 64-х-разрядные числа с плавающей точкой. - String : строки с символами в формате Unicode. - Array : массивы с переменными границами. - Function : Функции. Каждая функция, кроме того, может служить конструктором объекта. - Boolean, Date, Math, RegExp : логические значения, даты,…
  • 5. Некоторые сведения о синтаксисе Описание переменных: var count = 25, msg = 'Сообщение об ошибке'; var nullVar; // получает начальное значение null Операции такие же, как в Java и C#, но более широко используется преобразование типов + - * / % ++ -- = += -= *= /= %= == != > < >= <= && || ! 2 + '3' == '23', но 2 + 3 == 5 Многие операторы очень похожи на соответствующие операторы Java и C#, но могут иметь некоторые отличия в семантике. for (var i = 0; i < 100; ++i) { ... } if (x * y < 100) { ... } else { ... } try { ... } catch (e) { ... } finally { ... }
  • 6. Объекты, встроенные в браузеры При программировании можно использовать ряд встроенных объектов. Основные из них это: - window : представляет «глобальный контекст» и позволяет работать с атрибутами и методами окна. - document : загруженная страница со своей структурой элементов. - navigator : объект, представляющий браузер и его свойства. - location : характеристики текущего URL (порт, хост и т.п.). - объекты, представляющие элементы различных типов в HTML-странице, такие как <body>, <link>, <img> и т.п. - события (events), возникающие от действий пользователя, например, нажатие кнопки мыши (click), загрузка новой страницы (load) и т.д.
  • 7. Включение Javascript в HTML-страницу Фрагменты кода можно включать в заголовок или тело HTML-документа. Кроме того, можно разместить код в отдельном файле, а в HTML-странице разместить ссылку на этот файл. <html> <head> <script type="text/javascript"> ... </script> <script type="text/javascript" src="scripts/myscript1.js/> <head> <body> <script type="text/javascript"> ... </script> <script type="text/javascript" src="scripts/myscript2.js/> </body> </html> Код, ссылки на который размещены в заголовке, просто подсоединяется к странице и может быть использован, например, для определения реакций на пользовательские события. Код, ссылки на который размещены в теле, исполняется при загрузке страницы и может непосредственно использоваться для формирования содержания страницы во время загрузки.
  • 8. Два простых примера Метод document.write используется для непосредственного включения HTML-текста в содержимое страницы, например, можно сгенерировать длинный текст в параграфе: <body> <p> <script type="text/javascript"> for (var i = 0; i < 100; ++i) { document.write("Hello, world! "); } </script> </p> </body> helloworld.html
  • 9. Два простых примера (продолжение) Во втором примере датчик случайных чисел используется для генерации случайной ссылки (из заданного набора): <body> <p> <script type="text/javascript"> var rand = Math.random(); // в диапазоне: [0, 1) var numb = Math.floor(rand * 10); var image = "images/image" + numb + ".jpg"; var insert = "<img class="floatRight" src="" + image + "" alt="Фотография цветочка"/>"; document.write(insert); </script> </p> </body> randomPicture.html
  • 10. Тип String Строки заключаются либо в апострофы, либо в двойные кавычки var slogan = "Don't be evil!"; var image ='<img class="to-right" src="myphoto.jpg"/>'; escape-последовательности: ' " t n Операции над строками: + < > == != "2" + "3" "23" "10" < "5" true 10 < "5" false "a" == "A" false 5 == "5" true 5 === "5" false 5 + "5" "55" Атрибут строки: length – длина строки. "abc".length == 3 Преобразования типов: String(n) Number(s) String(10) < "5" == true Number('3.' + '14') == 3.14
  • 11. Стандартные методы объектов типа String charAt, indexOf, lastIndexOf, replace, split, substr, substring, toLowerCase, toUpperCase Примеры: "Google".charAt(3) "g" "Google".indexOf("o") 1 "Google".lastIndexOf("o") 2 "Google".replace("o", "oo") "Gooogle" "Google".replace(/o/g, "oo") "Goooogle" "Google".split("o") ["G","","gle"] "Google".substr(1,3) "oog" "Google".substring(1,3) "oo" "Google".toLowerCase() "google" "Google".toUpperCase() "GOOGLE"
  • 12. Тип Number Числа – это 64-х-разрядные двоичные числа с плавающей точкой. Number.MIN_VALUE Number.MAX_VALUE Number.NaN Number.POSITIVE_INFINITY Number.NEGATIVE_INFINITY Операции над числами: + - * / % < > == != 3.14 % 2 1.14 Функции преобразования: parseInt, parseFloat, Number, toString parseInt("3.14") 3 5e-324 1.7976931348623157e+308 NaN Infinity -Infinity parseFloat("*3.14") NaN Number("3.xaxa") NaN 3.14.toString() "3.14" isNaN(3.14 / 0) false isNaN(0 / 0) true
  • 13. Тип Boolean Стандартные логические значения – true и false. Однако в качестве условий можно использовать любое значение. "Истинные" условия: if (2 < 5) "Ложные" условия: if (25) if ('Google могуч и ужасен') if ("") if (0) if (null) Логические условия используются в условных операторах и операторах циклов. if (x < y) { z = x; } else { z = y; } while (x < 100) { x = x * 2; n++; } do { x = Math.floor(x / 2); n++; } while (x > 0); for (var y = 0, x = 0; x < 100; ++x) { y += x; }
  • 14. Тип Date Объекты типа Date содержат дату в виде числа миллисекунд, прошедших с 1 января 1970 г. Диапазон от -108 до 108 дней от 1 января 1970 г. Конструкторы: var now = new Date(); // сейчас var january1st1970 = new Date(0); // дата в миллисекундах var gagarin = new Date(1961, 3, 12); var newYear = new Date("January 1, 2009"); Методы, применимые для работы с датами: getDate, getMonth, getFullYear, getTime, getTimezoneOffset, setDate, setFullYear,… function DaysToDate(day, month) { var now = new Date(), year = now.getFullYear(); var bd = new Date(year, month-1, day); var fullDay = 24 * 60 * 60 * 1000; var diff = Math.ceil((bd - now) / fullDay); return diff < 0 ? diff + 365 : diff; } todate.html
  • 15. Сообщения, выдаваемые в popup-окнах Три стандартные функции используются для генерации сообщений в popup-окнах: alert, confirm, prompt. alert('Вы просрочили платеж!'); confirm('Вы этого хотите?'); Выдает true или false var name = prompt('Как Вас зовут?', 'Никак', 'Вопросик...'); Выдает введенную строку или null
  • 16. События и реакции на них Имеется большое количество событий, которые можно разделить на следующие классы: - события от мыши (click, dblclick, mousedown,…); - события от клавиатуры (keypress, keydown,…); - события от элементов ввода (focus, submit, select,…); - события страницы (load, unload, error,…); Один из способов программирования состоит в определении реакции на события непосредственно в описании элемента, например: <p>День независимости России <span style="color: blue; text-decoration: underline;" onclick= "alert('Осталось ' + DaysToDate(12, 6) + 'дней');"> 12 июня</span>. </p> Недостаток этого способа: javascript-текст holidays.html опять смешивается с содержанием страницы.
  • 17. Тип Array Существует несколько способов создания массива: var holidays = ["1 января", "7 января", "23 февраля"]; var holidays = new Array("1 января", "7 января", "23 февраля"); var holidays = new Array(3); holidays[0] = "1 января"; holidays[1] = "7 января"; holidays[2] = "23 февраля"; Атрибут массива: length – длина массива. var myArray = new Array(); myArray[2] = new Date(2008,2,23); myArray[5] = new Date(2008,5,9); myArray.length == 6?
  • 18. Тип Array (продолжение) Методы, определенные для работы с массивом: concat, join, pop, push, shift , unshift, slice var names = ["Петя", "Вася"]; names = names.concat(["Сережа", "Наташа"], ["Оля", "Люба"]); names == ["Петя", "Вася", "Сережа", "Наташа", "Оля", "Люба"] var s = names.join(';'); s == "Петя;Вася;Сережа;Наташа;Оля;Люба" var e = names.pop(); e == "Люба" names == ["Петя", "Вася", "Сережа", "Наташа", "Оля"] var l = names.push("Саша"); l == 6 names == ["Петя", "Вася", "Сережа", "Наташа", "Оля", "Саша"] shift и unshift – точно так же, как pop и push, но с началом массива. names = names.slice(1, 4); names == ["Вася", "Сережа", "Наташа", "Оля"]
  • 19. Тип Array (продолжение) Еще методы, определенные для работы с массивом: reverse, sort, splice, toString var names = ["Вася", "Сережа", "Наташа", "Оля"]; names.reverse(); names == ["Оля", "Наташа", "Сережа", "Вася"] names.sort(); names == ["Вася", "Наташа", "Оля", "Сережа"] var a = [5, 3, 40, 1, 10, 100].sort(); a == [1, 10, 100, 3, 40, 5] var a = [5, 3, 40, 1, 10, 100].sort(function(a,b){return a-b;}); a == [1, 3, 5, 10, 40, 100] names.splice(1, 2, "Саша", "Таня", "Нина"); names == ["Вася", "Саша", "Таня", "Нина", "Сережа"] toString – точно так же, как join(','). names.toString() == "Вася,Саша,Таня,Нина,Сережа"
  • 20. Работа с таймером Можно создать таймер и определить реакцию на событие от таймера. var timer = setTimeout(func, timeinterval); func – это функция или строка с кодом; timeinterval – время в миллисекундах. Таймер срабатывает один раз и запускает функцию. function launchTimer() { setTimeout("alert('Зенит – чемпион!');", 2000); } Теперь можно запустить этот таймер, например, по событию click: <body> <p>Нажми <span onclick="launchTimer();">сюда!</span></p> </body> settimer.html Пока событие еще не случилось, таймер можно остановить: var timer = setTimeout(func, timeinterval); clearTimeout(timer);
  • 21. Работа с интервальным таймером Таймер может срабатывать многократно через равные промежутки времени. Такой таймер создается с помощью функции setInterval и останавливается с помощью функции clearInterval. var timer = setInterval(func, timeinterval); function launchInterval() { timer = setInterval("alert('Зенит – чемпион!');", 2000); } function stopTimer() { if (timer) clearInterval(timer); timer = null; } <body> <p>Нажми <span onclick="launchInterval();">сюда,</span> чтобы запустить.</p> <p>Нажми <span onclick="stopTimer();">сюда,</span> чтобы остановить.</p> </body> setinterval.html