+ All Categories
Home > Documents > Web internship java script

Web internship java script

Date post: 22-Jun-2015
Category:
Upload: noveo
View: 127 times
Download: 0 times
Share this document with a friend
33
Web Internship 2014 JavaScript Константин Кузьмин
Transcript
Page 1: Web internship   java script

Web Internship 2014

JavaScript

Константин Кузьмин

Page 2: Web internship   java script

План• Области применения• Добавление на страницу и особенности синтаксиса• Переменные и операторы• Примитивные типы• Массивы, функции, объекты• this• window• DOM• События• jQuery• JSON & AJAX• Замыкания• Полезное

JavaScript

Page 3: Web internship   java script

Области применения

• Web-приложения• Мобильные приложения• Серверные приложения• Виджеты• Браузерные плагины

JavaScript

Page 4: Web internship   java script

Добавление JS-кода на страницу

<script type="text/javascript">// js code here</script>

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

JavaScript

Page 5: Web internship   java script

Особенности синтаксиса• Комментарии

– Однострочный // комментарий– Многострочный /* комментарий */

• Точка с запятой. В JS точку с запятой после операторов можно ставить, но не обязательно. Перевод строки подразумевает точку с запятой. Лучше все же ставить ;

return result //эквивалентно return result;return //эквивалентно return;result //эквивалентно result;

JavaScript

Page 6: Web internship   java script

Переменные

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

ключевого слова varvar variable = 100;Директива var при объявлении переменной делает ее локальной, т.е. видимой только внутри текущей функцииПеременные объявленные без ключевого слова var попадают в глобальную область видимости window

JavaScript

Page 7: Web internship   java script

Операторы

• Арифметические (+ - * / %).• Логические (&&, ||, !).• Операторы сравнения ( == != < > <= >= ===

!== ?: ).• Строгое сравнение – без приведения

типов.• Приоритеты операторов (http://goo.

gl/wUpvww).

JavaScript

Page 8: Web internship   java script

Примитивные типы• Booleanvar f = true;var f = new Boolean('someting'); //=> true

• Numbervar a = 5;var a = new Number('5');

• Stringvar str = 'Hello';var str = new String('Hello');

• undefinedtypeof b == undefined

• null

• Приведение типов: http://learn.javascript.ru/types-conversion

JavaScript

Page 9: Web internship   java script

Массивы

• Массивы с числовыми индексами.var arr = new Array("my", "array");var arr = [ "my", "array" ];

• Ассоциативные массивы.var obj = {   n: 1,  str: "Вася" }

JavaScript

Page 10: Web internship   java script

Функцииfunction print(msg) {

document.write(msg, '<br/>');}

function hypotenuse(a, b) {function square(x) { return x*x; }return Math.sqrt(square(a) + square(b));

}

var f = function(x) { return x*x; };f(5);

JavaScript

Page 11: Web internship   java script

Объекты

• Все в JS является объектом• Объекты создаются функциями-

конструкторами при помощи директивы new.var date = new Date();console.log(date.getDate());• Доступ к методам и параметрам объекта

через точку .• Функция - это встроенный объект, у которого

есть метод call

JavaScript

Page 12: Web internship   java script

this• Оператор this возвращает ссылку на объект,

являющийся текущим контекстом вызова.• Текущий объект не является жестко

фиксированным и зависит от контекста вызова функции.

• Варианты передачи– неявно, через вызов метода: object.method(...)– явно, через call: function.call(object,...)– явно, через apply: function.apply(object,...)– неявно, через вызов new: new constructor(...)– иначе – window

JavaScript

Page 13: Web internship   java script

Объект window

• Объект window сочетает два в одном: глобальный объект js и окно браузера.

• Для обращения к свойствам и методам window не обязательно указывать объект.

var a = 123;console.log(a);console.log(window.a);

JavaScript

Page 14: Web internship   java script

Объект window• Основные методы для работы с окном

– window.open()– window.close()– window.focus()

• Основные свойства– window.location

• window.location.reload(); // выполняется перезагрузка текущего окна

• window.location.href = 'http://translate.google.com/'; // выполняется переход на другой URL

– window.history• window.history.back();• window.history.forward();

– window.top

JavaScript

Page 15: Web internship   java script

Объект window

Глобальные методы• alert• clearInterval• clearTimeout• confirm• decodeURI• decodeURIComponent• encodeURI• encodeURIComponent

• eval• isFinite• isNaN• parseFloat• parseInt• prompt• setInterval• setTimeout

JavaScript

Page 16: Web internship   java script

Document Object Model (DOM)<!DOCTYPE HTML><html>   <head>       <title>Документ</title>   </head>   <body>       <div id="dataKeeper">Data</div>       <ul>           <li style="background-color:red">Осторожно</li>           <li class="info">Информация</li>       </ul>       <div id="footer">Made in Russia &copy;</div>   </body></html>

JavaScript

Page 17: Web internship   java script

Объект document

• document.getElementById• document.getElementsByTagName• document.createTextNode• Node.removeChild• Node.appendChild• https://developer.mozilla.org/en-

US/docs/Web/API/document

JavaScript

Page 18: Web internship   java script

DOM Events

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

• Event Object (http://goo.gl/Skpn4x)• Bubbling• http://goo.gl/Pn1aYV

JavaScript

Page 19: Web internship   java script

DOM Events: Регистрация обработчиков

• HTML атрибут<button onclick="alert('Hello world!')">• DOM свойствоmyButton.onclick = function(event){alert('Hello world');};• EventTarget.addEventListenermyButton.addEventListener('click', function(){alert('Hello world');}, false);

JavaScript

Page 20: Web internship   java script

jQuery. Подключение.

Документация: http://api.jquery.com/• CDN (Content Delivery Network)<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>• Просто скачать с http://jquery.com/ и

подключить на страницу как локальный файл.

JavaScript

Page 21: Web internship   java script

jQuery. Готовность документа

$(document).ready(function() {// выполняется, когда DOM загрузилсяalert("document is ready");

});

$(window).load(function() {/* выполняется, когда страница полностью

загрузилась, включая фреймы и картинки */alert("window is loaded");

});

JavaScript

Page 22: Web internship   java script

jQuery. Селекторы$(selector, context)• "#mydiv" // элемент с id="mydiv"• "div" // все div'ы на странице• "div.myclass" // div имеющий class="myclass“• "div:first" // только первый div• "div:last" // только последний• "div:even" // все четные div'ы• "input[type='text']" // все элементы input с type="text“• "input:checkbox:checked" // все чекбоксы с checked=true• "div.myclass img" // img, который находится в div'е с class="myclass“• "div.myclass, div.my2" // div'ы имеющие class="myclass" и class="my2“• "div", "#myid" // все div'ы, находящиеся в контейнере с id="myid"

JavaScript

Page 23: Web internship   java script

jQuery. Работа с элементами• attr() Аттрибут элемента.

– $(element).attr(‘attr-name’);– $(element).attr(‘attr-name’, ‘attr-value’);

• prop() Свойства элемента (например, checked)– $(element).prop(‘prop-name’);– $(element).prop(‘prop-name’, ‘prop-value’);

• val() Значение элемента– $(element).val();– $(element).val(123);

• text() Текстовое содержимое элемента. Не применяется для input элементов.– $(element).text();– $(element).text(“Hello");

JavaScript

Page 24: Web internship   java script

jQuery. События

• on() добавить обработчик события– $("input").on('blur', function (event) {});

• off() удалить обработчик события– $("input").off('blur', function (event) {});

• trigger() вызвать событие– $("input").trigger('blur‘)

JavaScript

Page 25: Web internship   java script

jQuery. СобытияДокументация: http://api.jquery.com/category/events/• blur - элемент теряет фокус• focus – элемент получает фокус (мышью или по Tab)• change – элемент теряет фокус ввода и при этом

изменилось значение элемента с момента получения фокуса• click – нажатие на элемент. (~ mousedown + mouseup на

одном и том же участке экрана)• keydown – нажатие клавиши на клавиатуре• keyup – отжатие клавиши на клавиатуре• resize – изменение размеров области просмотра документа• submit – отправка формы• и многое другое ☺

JavaScript

Page 26: Web internship   java script

jQuery. Each

Используется для манипуляций коллекцией объектов (в том числе и результат работы селекторов)<ul> <li>foo</li> <li>bar</li></ul>

$( "li" ).each(function( index ) { console.log( index + ": " + $( this ).text() );});

var obj = { "flammable": "inflammable", "duh": "no duh"};

$.each( obj, function( key, value ) { alert( key + ": " + value );});

JavaScript

Page 27: Web internship   java script

JSON

JSON (JavaScript Object Notation) — текстовый формат обмена данными, основанный на JavaScript.{ "firstName": "Иван", "lastName": "Иванов", "address": { "streetAddress": "Московское ш., 101, кв.101", "city": "Ленинград", "postalCode": 101101 }, "phoneNumbers": [ "812 123-1234", "916 123-4567" ]}

JavaScript

Page 28: Web internship   java script

AJAXAJAX, Ajax (Asynchronous Javascript and XML — «асинхронный JavaScript и XML»)$.ajax({

type: "POST",url: "some.php",data: { name: "John", location: "Boston" },dataType: "html"

}).done(function( msg ) {alert( "Data Saved: " + msg );

}).fail(function( jqXHR, textStatus ) { alert( "Request failed: " + textStatus );

});

Документаций jQuery http://api.jquery.com/jquery.ajax/

JavaScript

Page 29: Web internship   java script

Функции. Callbackfunction foo(str, cb){

var big_str = str + "some data";cb(big_str);

}

function bar(data){console.log(data);

}

foo('i am ', bar);

JavaScript

Page 30: Web internship   java script

Функции. ЗамыканияЕсли говорить просто, то замыкание - это внутренняя функция. И эти функции имеют доступ к переменным внешней функции.

function makeShout() { var phrase = "Старт!"; var shout = function() { alert(phrase); } phrase = "Готово!"; return shout;}shout = makeShout();shout();

JavaScript

Page 31: Web internship   java script

Функции. Замыкания

Неправильное использованиеfunction addEvents(divs) { for(var i=0; i<divs.length; i++) { divs[i].innerHTML = i; divs[i].onclick = function() { alert(i); } }}

Правильное использованиеfunction addEvents(divs) { for(var i=0; i<divs.length; i++) { divs[i].innerHTML = i; divs[i].onclick = function(x) { return function() { alert(x) } }(i) }}

JavaScript

Page 32: Web internship   java script

Инструменты

• Chrome developers tools• Advanced REST client• console.log(), console.error()

JavaScript


Recommended