Javascript 1

49
Программирование Web сайтов. Javascript Долинин А.А., учитель информатики и ИКТ МБОУ «Уренская СОШ №1»

Transcript of Javascript 1

Page 1: Javascript 1

Программирование Web сайтов. Javascript

Долинин А.А., учитель информатики и ИКТ МБОУ «Уренская СОШ №1»

Page 2: Javascript 1

Javascript

• Скриптовый язык предназначенный для создания интерактивных web страниц

• Не требует компиляции – подключается к HTML странице и выполняется браузером

• Выполняется на стороне клиента – клиентский скрипт

• Не имеет ничего общего с java ( имеет свой стандарт ECMAScript)

Page 3: Javascript 1

Javascript. Для чего

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

• Добавлять динамически HTML тэги на страницу

• В последнее время стала популярна технология AJAX – выполнение запросов к серверу, с помощью Javascript

• И т.д.

Page 4: Javascript 1

Другие средства. Обзор.

• Java – апплеты. Тяжеловесны, применяются там, где требуется сложная логика, сравнимая с десктоп приложением

• Flash – применяется как удобная платформа для создания мультимедийных приложений, с поддержкой аудио и виде. Есть много плюсов, но и минусы – плохо индексируется поисковиками

• VbScript – скрипт от Microsoft , мало применяется для web – программирования в последнее время

• JavaFX ( от разработчиков Java),Silverlight – от Майкрософт

Page 5: Javascript 1

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

Javascript подключается напрямую в HTML-файл.

• Подключение в любом месте• Вынос скриптов в заголовок HEAD• Внешние скрипты

Nortel Networks Confidential

Page 6: Javascript 1

Когда браузер читает HTML-страничку, и видит <script> - он первым делом читает и выполняет код, а только потом продолжает читать страницу дальше.

<script type="text/javascript"> ... </script>

• script - сообщает браузеру о том, что внутри находится исполняемый скрипт

• type - говорит о том, что это javascript

Подключение в любом месте

Page 7: Javascript 1

<html><body> <h1>Считаем кроликов</h1> <script type="text/javascript"> for(var i=1; i<=3; i++) { alert("Из шляпы достали "+i+" кролика!") } </script> <h1>...Посчитали</h1></body></html>

Подключение в любом месте

Page 8: Javascript 1

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

В следующем примере javascript-код только описывает функцию count_rabbits, а ее вызов осуществляется по нажатию на кнопку input.

• input type=“button” – кнопка• onclick - Он используется для указания действий, которые надо

выполнить по клику мышки на элементе.

Вынос скриптов в заголовок HEAD

Page 9: Javascript 1

<html> <head> <script type="text/javascript"> function count_rabbits() { for(var i=1; i<=3; i++) { // оператор + соединяет строки alert("Из шляпы достали "+i+" кролика!") } } </script> </head> <body> <input type="button" onclick="count_rabbits()" value="Считать кролей!"/> </body></html>

Вынос скриптов в заголовок HEAD

Page 10: Javascript 1

Обычно javascript-код вообще не пишут в HTML, а подключают отдельный файл со скриптом.

<script src="/my/script.js"></script>

/my/script.js - содержит javascript код

• Один и тот же файл со скриптами можно подключать на разных страницах

• Можно подключить несколько скриптов, используя несколько script тэгов

• При указании атрибута src содержимое тега игнорируется. То есть одновременно подключить внешний файл и написать что-то внутри тега нельзя!

Внешние скрипты.

Page 11: Javascript 1

; - отделяет каждую инструкцию

a = 5; или a = 5

var a = “длинная // Неправильно! строка”

var a = “длинная \ //Правильно строка”

Синтаксис javascript. Разделители.

Page 12: Javascript 1

• var i; - локальная переменная

var a=5, b=6, str = “Строка”

• Блок – фрагмент кода, отделенный фигурными скобками

var i = 0;{ var i=5; alert(i); // 5 }alert(i) // тоже 5

Синтаксис javascript. Переменные и блоки.

Page 13: Javascript 1

• Переменные в javascript слабо типизированы.

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

var i = 10; var i = "десять";

• Интерпретатор (браузер) всегда знает какого типа значение содержит переменная.

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

Синтаксис javascript. Типы данных.

Page 14: Javascript 1

• Number – числа : 0.3, 1, 12

• Boolean - булевские (логические) переменные : true (истина), false(ложь)

• String –строки : ‘hi’, “Строка”

• null , undefined – ключевые слова : пустое значение и данных нет(при несозданной или необъявленной переменной)

Базовые типы данных.

Page 15: Javascript 1

Работа с числами в javascript похожа на работу с числами в других языках – поддерживаются все стандартные операции работы с числами.

var i = 5;var f = 0.3;var summa = i+f;var razn = i-f;

Числа.

Page 16: Javascript 1

Строки могут быть заключены в двойные или одинарные кавычки, например:

var str1 = “Hello”;var str2 = “World”;var str = str1 + ‘\’ ’ + str2; //В str  будет строка “Hello’ World”

• + - конкатенация(сложение или объединение) строк• \‘ , \” - экранирование кавычек

Строки.

Page 17: Javascript 1

• length - длина строки• строка – последовательность символов. • Нумерация символов с 0.• Можно получить определенный символ в строке• Подстрока• Найти индекс первого вхождения символа в строке var str = “Hello World” var l= str.length //В l будет 11 var last_char=str.charAt(s.length-1); // в last_char будет ‘d’ var sub = str.substring(0,4); //в sub будет ‘Hello’ var index=s.indexOf(‘o’); // в index будет 4

Строки.

Page 18: Javascript 1

var n=100;var s = n+ “ dollars”;

var n_as_atr = n + “”;

var str_value=n.toString();var str_value1 = String(n);

Преобразование чисел в строки.

Page 19: Javascript 1

var m = “21” * ”2”; //в m будет 42var n = “21”+”2” // ! операция конкатенации, в n будет “212”

parseInt("3 слепых мышки"); //Вернет 3

parseFloat("3.14 метров"); // Вернет 3.14

parseInt("12.34"); // Вернет 12

parseInt("eleven"); //Вернет NaN

parseFloat("$72.47"); // Вернет NaN

Преобразование строк в числа.

Page 20: Javascript 1

• true – истина• false – ложь var flag = true;

• Используется для сравнения

a == 4результатом этого выражения будет true, если a равно 4 и false, если нет

Логический тип.

Page 21: Javascript 1

• true - 1, false – 0 – числовые операции:• true – “true”, false – “false” – строковые операции

var b = true;var i = 1 + b // в i будет 2var str = “Истина – “ + b; //в str будет “Истина - true”

• true – если число не равно 0 или NaN, если строка не пуста, любой другой объект, не равный null и undefined

• false – 0 и NaN, пустая строка, null и undefined

Преобразование логического типа.

Page 22: Javascript 1

• Функция – это фрагмент исполняемого кода, который определен в JavaScript программе или заранее предопределен в реализации JavaScript.

• Хотя функция определяется только один раз, JavaScript программа может исполнять или вызывать ее сколько угодно.

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

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

Функции.

Page 23: Javascript 1

function square(x) // Функция называется square. //Она принимает один аргумент, x.{ // Здесь начинается тело функции. return x*x; // Функция возводит свой аргумент в квадрат и // возвращает полученное значение.} // Здесь функция заканчивается.

Функции.

Page 24: Javascript 1

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

y = Math.sin(x);y = square(x);d = compute_distance(x1, y1, z1, x2, y2, z2);move();

Функции.

Page 25: Javascript 1

• Функции – тип данных• Функции могут хранится в

– переменных, – массивах,– объектах,– передаваться как аргументы другим функциям

• Придает языку гибкость

function square(x) { return x*x; }var square = function(x) { return x*x; }

Функции.

Page 26: Javascript 1

• Область видимости (scope) переменной – это та часть программы, для которой эта переменная определена.

• Глобальная переменная имеет глобальную область видимости – она определена для всей JavaScript программы.

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

• Параметры функций также считаются локальными переменными, определенными только в теле этой функции.

var i ; // локальная

Область видимости переменных.

Page 27: Javascript 1

a = 1; // глобальная function go() { var a = 6; alert(“Внутри go:”+a); //=> 6}go();alert(“Вне функции go ” + a); // => 1

Область видимости переменных.

Page 28: Javascript 1

a = 1; // глобальная function go() { a = 6; alert(“Внутри go:”+a); //=> 6}go();alert(“Вне функции go ” + a); // => 6

Область видимости переменных.

Page 29: Javascript 1

Если глобальных переменных с подобными именами нет, то даже если мы не укажем в теле функции var, переменные все равно будут локальными – интерпретатор сам подставит var:

function cmp(a,b) { if (a>b) { res = 1; } else if (a<b) { res = -1; } else { res = 0; } return res;}

Область видимости переменных.

локальные

Page 30: Javascript 1

Объект – это коллекция именованных значений, которые обычно называют свойствами (properties) объекта.

Чтобы сослаться на свойство объекта, надо указать имя объекта, затем точку и имя свойства:

image.widthimage.height

Свойства объектов – такие же переменные – они могут содержать любой тип данных, включая массивы, функции и другие объектыdocument.myform.button

Объекты.

Page 31: Javascript 1

• В логическом контексте объект равен true, если он не null и не undefined.

• В строковом контексте c помощью функции toString()

• В числовом контексте valueOf()

Преобразование объектов.

Page 32: Javascript 1

Массив – это коллекция значений, каждое значение имеет индекс (индексация с 0).

Массивы могут содержать любой тип данных JavaScript, в том числе ссылки на другие массивы,на объекты или функции

var a = new Array();a[0] = 1.2;a[1] = "JavaScript";a[2] = true;a[3] = { x:1, y:3 };alert(a[1]); //Выведет “JavaScript”

Массивы.

var a = new Array(1.2, "JavaScript", \ true, { x:1, y:3 });или

Page 33: Javascript 1

• Длина массива - свойство length:arr = new Array("my", "array")alert(arr.length) // 2

• Объекты как ассоциативные массивы. Ассоциативный массив – строковый ключ вместо индекса

obj = { n: 1, str: "Вася"};alert(obj.n); // Выведет 1alert(obj["n"]); //Выведет 1var key=”str”;alert(obj[key]); //Выведет “Вася”key = “name”;alert(obj[key]); //Выведет undefined

Массивы.

Page 34: Javascript 1

Операторы.

Оператор Типы операндов Выполняемая операция

. Объект, идентификатор

Обращение к свойству

[] Массив, целое число Обращение к элементу массива

() Функция, аргументы Вызов функции- Число Смена знака-,+,*, /,% Числа Арифметические

операции с числами++, -- Числовое значение Инкремент(+1) и

декремент (-1)+ Строки Конкатенация строк! Логическое

значениеОтрицание

Page 35: Javascript 1

<, <=, >, >= Числа или строки Сравнение чисел или строк

== Любой Проверка на равенство!= Любой Проверка на неравенство

&& Логические значения Логическое И

|| Логические значения Логическое ИЛИ

= Любое значение Присваивание*=, /=, %=, +=,-= Любое значение Присваивание с

операцией

?: Логическое значение, любое, любое

Условный трехместный оператор

typeof Любое значение Возвращает тип

Page 36: Javascript 1

if (выражение) инструкция

 if (username == null) // Если переменная username равна null username = "John Doe"; // определяем ее

Аналогично: если переменная username равна null, undefined, 0, "" или NaN, она преобразуется в false, и эта инструкция присвоит переменной новое значение. if (!username) username = "John Doe";

Условие.if

Page 37: Javascript 1

• Можно объединять два условия в скобках с помощью логических операций.

• Если при истинности выражения надо выполнить несколько инструкций, то они заключаются в блок {}

if (address == null || address == "") { address = "undefined"; alert("Пожалуйста, укажите почтовый адрес.");}

Условие.if

Page 38: Javascript 1

• else – используется вместе с if. Блок else выполняется когда выражение равно false

• else является частью ближайшей к ней if

if (выражение)инструкция1elseинструкция2

Условие.else

Page 39: Javascript 1

if (username != null){ alert("Привет " + username + \"\nДобро пожаловать на мою домашнюю страницу.");}else { username = prompt("Добро пожаловать!\n Как вас зовут?"); alert("Привет " + username);}

Условие.else

Page 40: Javascript 1

if (n == 1) {// Исполняем блок кода 1}else if (n == 2) {// Исполняем блок кода 2}else if (n == 3) {// Исполняем блок кода 3}else {// Если все остальные условия else не выполняются, исполняем блок 4}

Условие.else if

Page 41: Javascript 1

switch(n) { case 1: // Выполняется, если n == 1 // Исполняем блок кода 1. break; // Здесь останавливаемся case 2: // Выполняется, если n == 2 // Исполняем блок кода 2. break; // Здесь останавливаемся case 3: // Выполняется, если n == 3 // Исполняем блок кода 3. break; // Здесь останавливаемся default: // Если все остальное не подходит... // Исполняем блок кода 4. break; // Здесь останавливаемся}

Переключатель.switch

Page 42: Javascript 1

function convert(x) { switch(typeof x) { case 'number': // Число в строку return x.toString(); case 'string': // Возвращаем строку, заключенную в кавычки return '"' + x + '"'; case 'boolean': // Преобразуем в TRUE или FALSE return x.toString().toUpperCase(); default: // Любой другой тип преобразуем обычным способом return x.toString() }}

Переключатель.switch

Page 43: Javascript 1

while (выражение) инструкция

Выполнять инструкцию до тех пор, пока выражение истинно

var count = 0;while (count < 10) { document.write(count + "<br>"); count++;}

Циклы.While

Page 44: Javascript 1

do инструкцияwhile (выражение);

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

Циклы.Do/While

Page 45: Javascript 1

function printArray(a) { if (a.length == 0) document.write("Пустой массив"); else { var i = 0; do { document.write(a[i] + "<br>"); } while (++i < a.length); }}

Циклы.Do/While

Page 46: Javascript 1

for(инициализация; проверка; инкремент) инструкция

for(var count = 0; count < 10; count++){ document.write(count + "<br>");}Такой цикл удобно использовать для работы с массивами:var array = [ 2,5,1,-1,3,4];var max = array[0];for(var i=1; i < array.length; i++){ if(max< array[i]){ max = array[i];}}

Циклы.for

Page 47: Javascript 1

Для перебора свойств объекта.

for (переменная in объект) инструкция

for (var prop in my_object) { document.write("имя: " + prop + "; значение: " + my_object[prop], "<br>");}

Циклы.for/in

Page 48: Javascript 1

break - выход из цикла в любое время

for(i = 0; i < a.length; i++) { if (a[i] == target){ alert(a[i]); break; }}

Циклы.break

Page 49: Javascript 1

continue – пропускает итерацию цикла.

for(i = 0; i < data.length; i++) { if (data[i] == null){ continue; } // Продолжение со следующей итерации total += data[i];}

Циклы.continue