SlideShare a Scribd company logo
1 of 33
Download to read offline
Web Internship 2014
JavaScript
Константин Кузьмин
План
• Области применения
• Добавление на страницу и особенности синтаксиса
• Переменные и операторы
• Примитивные типы
• Массивы, функции, объекты
• this
• window
• DOM
• События
• jQuery
• JSON & AJAX
• Замыкания
• Полезное
JavaScript
Области применения
• Web-приложения
• Мобильные приложения
• Серверные приложения
• Виджеты
• Браузерные плагины
JavaScript
Добавление JS-кода на страницу
<script type="text/javascript">
// js code here
</script>
<script type="text/javascript " src="script.js
"></script>
JavaScript
Особенности синтаксиса
• Комментарии
– Однострочный // комментарий
– Многострочный
/*
комментарий
*/
• Точка с запятой. В JS точку с запятой после
операторов можно ставить, но не обязательно.
Перевод строки подразумевает точку с запятой. Лучше
все же ставить ;
return result //эквивалентно return result;
return //эквивалентно return;
result //эквивалентно result;
JavaScript
Переменные
• Переменной можно присвоить любой значение.
• Имена переменных чувствительны к регистру.
• Переменная объявляется с использванием
ключевого слова var
var variable = 100;
Директива var при объявлении переменной делает
ее локальной, т.е. видимой только внутри текущей
функции
Переменные объявленные без ключевого слова var
попадают в глобальную область видимости window
JavaScript
Операторы
• Арифметические (+ - * / %).
• Логические (&&, ||, !).
• Операторы сравнения ( == != < > <= >= ===
!== ?: ).
• Строгое сравнение – без приведения
типов.
• Приоритеты операторов (http://goo.
gl/wUpvww).
JavaScript
Примитивные типы
• Boolean
var f = true;
var f = new Boolean('someting'); //=> true
• Number
var a = 5;
var a = new Number('5');
• String
var str = 'Hello';
var str = new String('Hello');
• undefined
typeof b == undefined
• null
• Приведение типов: http://learn.javascript.ru/types-conversion
JavaScript
Массивы
• Массивы с числовыми индексами.
var arr = new Array("my", "array");
var arr = [ "my", "array" ];
• Ассоциативные массивы.
var obj = {   n: 1,  str: "Вася" }
JavaScript
Функции
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
Объекты
• Все в JS является объектом
• Объекты создаются функциями-
конструкторами при помощи директивы new.
var date = new Date();
console.log(date.getDate());
• Доступ к методам и параметрам объекта
через точку .
• Функция - это встроенный объект, у которого
есть метод call
JavaScript
this
• Оператор this возвращает ссылку на объект,
являющийся текущим контекстом вызова.
• Текущий объект не является жестко
фиксированным и зависит от контекста вызова
функции.
• Варианты передачи
– неявно, через вызов метода: object.method(...)
– явно, через call: function.call(object,...)
– явно, через apply: function.apply(object,...)
– неявно, через вызов new: new constructor(...)
– иначе – window
JavaScript
Объект window
• Объект window сочетает два в одном:
глобальный объект js и окно браузера.
• Для обращения к свойствам и методам
window не обязательно указывать объект.
var a = 123;
console.log(a);
console.log(window.a);
JavaScript
Объект 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
Объект window
Глобальные методы
• alert
• clearInterval
• clearTimeout
• confirm
• decodeURI
• decodeURIComponent
• encodeURI
• encodeURIComponent
• eval
• isFinite
• isNaN
• parseFloat
• parseInt
• prompt
• setInterval
• setTimeout
JavaScript
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
Объект document
• document.getElementById
• document.getElementsByTagName
• document.createTextNode
• Node.removeChild
• Node.appendChild
• https://developer.mozilla.org/en-
US/docs/Web/API/document
JavaScript
DOM Events
• Позволяют с помощью JS регистрировать
различные обработчики, которые будут
выполняться при возникновении событий
(например, нажатие на кнопку).
• Event Object (http://goo.gl/Skpn4x)
• Bubbling
• http://goo.gl/Pn1aYV
JavaScript
DOM Events: Регистрация
обработчиков
• HTML атрибут
<button onclick="alert('Hello world!')">
• DOM свойство
myButton.onclick = function(event){alert
('Hello world');};
• EventTarget.addEventListener
myButton.addEventListener('click', function()
{alert('Hello world');}, false);
JavaScript
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
jQuery. Готовность документа
$(document).ready(function() {
// выполняется, когда DOM загрузился
alert("document is ready");
});
$(window).load(function() {
/* выполняется, когда страница полностью
загрузилась, включая фреймы и картинки */
alert("window is loaded");
});
JavaScript
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
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
jQuery. События
• on() добавить обработчик события
– $("input").on('blur', function (event) {});
• off() удалить обработчик события
– $("input").off('blur', function (event) {});
• trigger() вызвать событие
– $("input").trigger('blur‘)
JavaScript
jQuery. События
Документация: http://api.jquery.com/category/events/
• blur - элемент теряет фокус
• focus – элемент получает фокус (мышью или по Tab)
• change – элемент теряет фокус ввода и при этом
изменилось значение элемента с момента получения фокуса
• click – нажатие на элемент. (~ mousedown + mouseup на
одном и том же участке экрана)
• keydown – нажатие клавиши на клавиатуре
• keyup – отжатие клавиши на клавиатуре
• resize – изменение размеров области просмотра документа
• submit – отправка формы
• и многое другое ☺
JavaScript
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
JSON
JSON (JavaScript Object Notation) — текстовый формат
обмена данными, основанный на JavaScript.
{
"firstName": "Иван",
"lastName": "Иванов",
"address": {
"streetAddress": "Московское ш., 101, кв.101",
"city": "Ленинград",
"postalCode": 101101
},
"phoneNumbers": [
"812 123-1234",
"916 123-4567"
]
}
JavaScript
AJAX
AJAX, 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
Функции. Callback
function foo(str, cb){
var big_str = str + "some data";
cb(big_str);
}
function bar(data){
console.log(data);
}
foo('i am ', bar);
JavaScript
Функции. Замыкания
Если говорить просто, то замыкание - это внутренняя
функция. И эти функции имеют доступ к переменным
внешней функции.
function makeShout() {
var phrase = "Старт!";
var shout = function() {
alert(phrase);
}
phrase = "Готово!";
return shout;
}
shout = makeShout();
shout();
JavaScript
Функции. Замыкания
Неправильное
использование
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
Инструменты
• Chrome developers tools
• Advanced REST client
• console.log(), console.error()
JavaScript
Чтиво
• jqfundamentals.com/chapter/javascript-basics
• slideshare.net/guestceb98b/the-javascript-
programming-language
• shamansir.github.io/JavaScript-Garden/
• slideshare.net/danwrong/metaprogramming-
javascript
• slideshare.net/rudevich/javascript-intro-17192262
• es5.javascript.ru/
• codecademy.com/
• http://javascript.ru/
JavaScript

More Related Content

What's hot

2014 Jeeconf - Geb Spock
2014 Jeeconf - Geb Spock2014 Jeeconf - Geb Spock
2014 Jeeconf - Geb SpockBohdan Danyliuk
 
I tmozg js_school
I tmozg js_schoolI tmozg js_school
I tmozg js_schoolITmozg
 
Приложения для Windows Phone: как мы это делаем #codefest
Приложения для Windows Phone: как мы это делаем #codefestПриложения для Windows Phone: как мы это делаем #codefest
Приложения для Windows Phone: как мы это делаем #codefestActis Wunderman
 
LvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.jsLvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.jsMax Klymyshyn
 
JavaScript-библиотека
JavaScript-библиотекаJavaScript-библиотека
JavaScript-библиотекаVasya Petrov
 
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Timur Shemsedinov
 
Selenium: начало работы
Selenium: начало работыSelenium: начало работы
Selenium: начало работыPaul Stashevsky
 
Windows Azure and node js
Windows Azure and node jsWindows Azure and node js
Windows Azure and node jsAlex Tumanoff
 
ES2015+: давно пора!
ES2015+: давно пора!ES2015+: давно пора!
ES2015+: давно пора!Vitebsk Miniq
 
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Vasya Petrov
 
Паттерны быстрой разработки WPF MVVM бизнес-приложений
Паттерны быстрой разработки WPF MVVM бизнес-приложенийПаттерны быстрой разработки WPF MVVM бизнес-приложений
Паттерны быстрой разработки WPF MVVM бизнес-приложенийGoSharp
 
Web осень 2012 лекция 9
Web осень 2012 лекция 9Web осень 2012 лекция 9
Web осень 2012 лекция 9Technopark
 
CodeFest 2013. Никонов Г. — Как мы разрабатываем приложения для Windows Phone...
CodeFest 2013. Никонов Г. — Как мы разрабатываем приложения для Windows Phone...CodeFest 2013. Никонов Г. — Как мы разрабатываем приложения для Windows Phone...
CodeFest 2013. Никонов Г. — Как мы разрабатываем приложения для Windows Phone...CodeFest
 
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...it-people
 
HTML 5: будущее уже сегодня, Сергей Байдачный, Microsoft Ukraine
HTML 5: будущее уже сегодня, Сергей Байдачный, Microsoft UkraineHTML 5: будущее уже сегодня, Сергей Байдачный, Microsoft Ukraine
HTML 5: будущее уже сегодня, Сергей Байдачный, Microsoft UkraineVolha Banadyseva
 
basis.js - почему я не бросил разрабатывать свой фреймворк
basis.js - почему я не бросил разрабатывать свой фреймворкbasis.js - почему я не бросил разрабатывать свой фреймворк
basis.js - почему я не бросил разрабатывать свой фреймворкRoman Dvornov
 
FPUG Dzyga presentation
FPUG Dzyga presentationFPUG Dzyga presentation
FPUG Dzyga presentationIvan Filimonov
 
Selenium: приемы работы
Selenium: приемы работыSelenium: приемы работы
Selenium: приемы работыPaul Stashevsky
 
"Жизнь без интернета" Кувалдин Артём, Яндекс
"Жизнь без интернета" Кувалдин Артём, Яндекс"Жизнь без интернета" Кувалдин Артём, Яндекс
"Жизнь без интернета" Кувалдин Артём, Яндексit-people
 

What's hot (20)

2014 Jeeconf - Geb Spock
2014 Jeeconf - Geb Spock2014 Jeeconf - Geb Spock
2014 Jeeconf - Geb Spock
 
I tmozg js_school
I tmozg js_schoolI tmozg js_school
I tmozg js_school
 
Приложения для Windows Phone: как мы это делаем #codefest
Приложения для Windows Phone: как мы это делаем #codefestПриложения для Windows Phone: как мы это делаем #codefest
Приложения для Windows Phone: как мы это делаем #codefest
 
LvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.jsLvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.js
 
JavaScript-библиотека
JavaScript-библиотекаJavaScript-библиотека
JavaScript-библиотека
 
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
 
Selenium: начало работы
Selenium: начало работыSelenium: начало работы
Selenium: начало работы
 
Windows Azure and node js
Windows Azure and node jsWindows Azure and node js
Windows Azure and node js
 
ES2015+: давно пора!
ES2015+: давно пора!ES2015+: давно пора!
ES2015+: давно пора!
 
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1
 
Паттерны быстрой разработки WPF MVVM бизнес-приложений
Паттерны быстрой разработки WPF MVVM бизнес-приложенийПаттерны быстрой разработки WPF MVVM бизнес-приложений
Паттерны быстрой разработки WPF MVVM бизнес-приложений
 
Web осень 2012 лекция 9
Web осень 2012 лекция 9Web осень 2012 лекция 9
Web осень 2012 лекция 9
 
CodeFest 2013. Никонов Г. — Как мы разрабатываем приложения для Windows Phone...
CodeFest 2013. Никонов Г. — Как мы разрабатываем приложения для Windows Phone...CodeFest 2013. Никонов Г. — Как мы разрабатываем приложения для Windows Phone...
CodeFest 2013. Никонов Г. — Как мы разрабатываем приложения для Windows Phone...
 
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
DUMP-2013 Frontend - Возможности последних WEB-стандартов в API Яндекс.Карт -...
 
HTML 5: будущее уже сегодня, Сергей Байдачный, Microsoft Ukraine
HTML 5: будущее уже сегодня, Сергей Байдачный, Microsoft UkraineHTML 5: будущее уже сегодня, Сергей Байдачный, Microsoft Ukraine
HTML 5: будущее уже сегодня, Сергей Байдачный, Microsoft Ukraine
 
basis.js - почему я не бросил разрабатывать свой фреймворк
basis.js - почему я не бросил разрабатывать свой фреймворкbasis.js - почему я не бросил разрабатывать свой фреймворк
basis.js - почему я не бросил разрабатывать свой фреймворк
 
FPUG Dzyga presentation
FPUG Dzyga presentationFPUG Dzyga presentation
FPUG Dzyga presentation
 
Selenium: приемы работы
Selenium: приемы работыSelenium: приемы работы
Selenium: приемы работы
 
BlueEyes russian
BlueEyes russianBlueEyes russian
BlueEyes russian
 
"Жизнь без интернета" Кувалдин Артём, Яндекс
"Жизнь без интернета" Кувалдин Артём, Яндекс"Жизнь без интернета" Кувалдин Артём, Яндекс
"Жизнь без интернета" Кувалдин Артём, Яндекс
 

Viewers also liked

Android - 09 - Fragments
Android - 09 - FragmentsAndroid - 09 - Fragments
Android - 09 - FragmentsNoveo
 
Android - 13 - Database
Android - 13 - DatabaseAndroid - 13 - Database
Android - 13 - DatabaseNoveo
 
Android - 04 - Internship project introduction
Android - 04 - Internship project introductionAndroid - 04 - Internship project introduction
Android - 04 - Internship project introductionNoveo
 
Web-02-Intermediate PHP
Web-02-Intermediate PHPWeb-02-Intermediate PHP
Web-02-Intermediate PHPNoveo
 
Android - 16 - QR
Android - 16 - QRAndroid - 16 - QR
Android - 16 - QRNoveo
 
Дополненная реальность в "серьезных играх"
Дополненная реальность в "серьезных играх"Дополненная реальность в "серьезных играх"
Дополненная реальность в "серьезных играх"EligoVision
 
Android - 14 - Geodata
Android - 14 - GeodataAndroid - 14 - Geodata
Android - 14 - GeodataNoveo
 
Web-01-Basic PHP
Web-01-Basic PHPWeb-01-Basic PHP
Web-01-Basic PHPNoveo
 
AR открытки: дополненная реальность к 8 марта
AR открытки: дополненная реальность к 8 мартаAR открытки: дополненная реальность к 8 марта
AR открытки: дополненная реальность к 8 мартаEligoVision
 
Web Internship - PHP and MySQL
Web Internship - PHP and MySQLWeb Internship - PHP and MySQL
Web Internship - PHP and MySQLNoveo
 
Разработка мобильных приложений ДЛЯ ДЕТЕЙ
Разработка мобильных приложений ДЛЯ ДЕТЕЙРазработка мобильных приложений ДЛЯ ДЕТЕЙ
Разработка мобильных приложений ДЛЯ ДЕТЕЙEligoVision
 
Database (Lecture 14 – database)
Database (Lecture 14 – database)Database (Lecture 14 – database)
Database (Lecture 14 – database)Noveo
 
Введение в Android-разработку (Lecture 06 – basics)
Введение в Android-разработку (Lecture 06 – basics)Введение в Android-разработку (Lecture 06 – basics)
Введение в Android-разработку (Lecture 06 – basics)Noveo
 
Web internship Yii Framework
Web internship  Yii FrameworkWeb internship  Yii Framework
Web internship Yii FrameworkNoveo
 
Android - 07 - User Interface
Android - 07 - User InterfaceAndroid - 07 - User Interface
Android - 07 - User InterfaceNoveo
 
Что нужно знать начинающему разработчику на Android
Что нужно знать начинающему разработчику на AndroidЧто нужно знать начинающему разработчику на Android
Что нужно знать начинающему разработчику на AndroidIlya Blokh
 
Android - 10 - Graphics
Android - 10 - GraphicsAndroid - 10 - Graphics
Android - 10 - GraphicsNoveo
 
iOS-05_1-UIKit
iOS-05_1-UIKitiOS-05_1-UIKit
iOS-05_1-UIKitNoveo
 
Android - 06 - Gradle
Android - 06 - GradleAndroid - 06 - Gradle
Android - 06 - GradleNoveo
 
Android - 08 - Action bar
Android - 08 - Action barAndroid - 08 - Action bar
Android - 08 - Action barNoveo
 

Viewers also liked (20)

Android - 09 - Fragments
Android - 09 - FragmentsAndroid - 09 - Fragments
Android - 09 - Fragments
 
Android - 13 - Database
Android - 13 - DatabaseAndroid - 13 - Database
Android - 13 - Database
 
Android - 04 - Internship project introduction
Android - 04 - Internship project introductionAndroid - 04 - Internship project introduction
Android - 04 - Internship project introduction
 
Web-02-Intermediate PHP
Web-02-Intermediate PHPWeb-02-Intermediate PHP
Web-02-Intermediate PHP
 
Android - 16 - QR
Android - 16 - QRAndroid - 16 - QR
Android - 16 - QR
 
Дополненная реальность в "серьезных играх"
Дополненная реальность в "серьезных играх"Дополненная реальность в "серьезных играх"
Дополненная реальность в "серьезных играх"
 
Android - 14 - Geodata
Android - 14 - GeodataAndroid - 14 - Geodata
Android - 14 - Geodata
 
Web-01-Basic PHP
Web-01-Basic PHPWeb-01-Basic PHP
Web-01-Basic PHP
 
AR открытки: дополненная реальность к 8 марта
AR открытки: дополненная реальность к 8 мартаAR открытки: дополненная реальность к 8 марта
AR открытки: дополненная реальность к 8 марта
 
Web Internship - PHP and MySQL
Web Internship - PHP and MySQLWeb Internship - PHP and MySQL
Web Internship - PHP and MySQL
 
Разработка мобильных приложений ДЛЯ ДЕТЕЙ
Разработка мобильных приложений ДЛЯ ДЕТЕЙРазработка мобильных приложений ДЛЯ ДЕТЕЙ
Разработка мобильных приложений ДЛЯ ДЕТЕЙ
 
Database (Lecture 14 – database)
Database (Lecture 14 – database)Database (Lecture 14 – database)
Database (Lecture 14 – database)
 
Введение в Android-разработку (Lecture 06 – basics)
Введение в Android-разработку (Lecture 06 – basics)Введение в Android-разработку (Lecture 06 – basics)
Введение в Android-разработку (Lecture 06 – basics)
 
Web internship Yii Framework
Web internship  Yii FrameworkWeb internship  Yii Framework
Web internship Yii Framework
 
Android - 07 - User Interface
Android - 07 - User InterfaceAndroid - 07 - User Interface
Android - 07 - User Interface
 
Что нужно знать начинающему разработчику на Android
Что нужно знать начинающему разработчику на AndroidЧто нужно знать начинающему разработчику на Android
Что нужно знать начинающему разработчику на Android
 
Android - 10 - Graphics
Android - 10 - GraphicsAndroid - 10 - Graphics
Android - 10 - Graphics
 
iOS-05_1-UIKit
iOS-05_1-UIKitiOS-05_1-UIKit
iOS-05_1-UIKit
 
Android - 06 - Gradle
Android - 06 - GradleAndroid - 06 - Gradle
Android - 06 - Gradle
 
Android - 08 - Action bar
Android - 08 - Action barAndroid - 08 - Action bar
Android - 08 - Action bar
 

Similar to Web internship java script

Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPITimur Shemsedinov
 
Web весна 2013 лекция 9
Web весна 2013 лекция 9Web весна 2013 лекция 9
Web весна 2013 лекция 9Technopark
 
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПЧуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПKirill Chebunin
 
Behat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и MinkBehat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и Minktyomo4ka
 
Общая архитектура Yii2
Общая архитектура Yii2Общая архитектура Yii2
Общая архитектура Yii2Paul Klimov
 
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полнойОмские ИТ-субботники
 
Take more from Jquery
Take more from JqueryTake more from Jquery
Take more from JqueryMagento Dev
 
Ember.js ответ на почти все вопросы - java script frameworks day 2014
Ember.js   ответ на почти все вопросы - java script frameworks day 2014Ember.js   ответ на почти все вопросы - java script frameworks day 2014
Ember.js ответ на почти все вопросы - java script frameworks day 2014Andrey Listochkin
 
automation is iOS development
automation is iOS developmentautomation is iOS development
automation is iOS developmentIvan Trifonov
 
Александр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEBАлександр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEBDataArt
 
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Andrey Rebrov
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyRegn
 
Convert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorConvert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorDevGAMM Conference
 

Similar to Web internship java script (20)

Javascript 1
Javascript 1Javascript 1
Javascript 1
 
Jsfwdays 2013-2
Jsfwdays 2013-2Jsfwdays 2013-2
Jsfwdays 2013-2
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
Web весна 2013 лекция 9
Web весна 2013 лекция 9Web весна 2013 лекция 9
Web весна 2013 лекция 9
 
Асинхронный JavaScript
Асинхронный JavaScriptАсинхронный JavaScript
Асинхронный JavaScript
 
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПЧуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОП
 
Behat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и MinkBehat в PHP с использованием Behat и Mink
Behat в PHP с использованием Behat и Mink
 
Общая архитектура Yii2
Общая архитектура Yii2Общая архитектура Yii2
Общая архитектура Yii2
 
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
 
Take more from Jquery
Take more from JqueryTake more from Jquery
Take more from Jquery
 
JavaScript как объектно-ориентированный язык программирования
JavaScript как объектно-ориентированный язык программированияJavaScript как объектно-ориентированный язык программирования
JavaScript как объектно-ориентированный язык программирования
 
Ember.js ответ на почти все вопросы - java script frameworks day 2014
Ember.js   ответ на почти все вопросы - java script frameworks day 2014Ember.js   ответ на почти все вопросы - java script frameworks day 2014
Ember.js ответ на почти все вопросы - java script frameworks day 2014
 
automation is iOS development
automation is iOS developmentautomation is iOS development
automation is iOS development
 
Александр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEBАлександр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEB
 
course js day 1
course js day 1course js day 1
course js day 1
 
Js fuckworks
Js fuckworksJs fuckworks
Js fuckworks
 
Devcamp nodejs-2010
Devcamp nodejs-2010Devcamp nodejs-2010
Devcamp nodejs-2010
 
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
 
Convert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorConvert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at Vizor
 

More from Noveo

Гуманитарные специальности в IT-индустрии
Гуманитарные специальности в IT-индустрииГуманитарные специальности в IT-индустрии
Гуманитарные специальности в IT-индустрииNoveo
 
Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)Noveo
 
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Noveo
 
Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Noveo
 
Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)Noveo
 
Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)Noveo
 
Структура HTML документа (HTML5 тема 01 - структура html документа)
Структура HTML документа (HTML5 тема 01 - структура html документа)Структура HTML документа (HTML5 тема 01 - структура html документа)
Структура HTML документа (HTML5 тема 01 - структура html документа)Noveo
 
Yii2
Yii2Yii2
Yii2Noveo
 
Сессии и авторизация
Сессии и авторизацияСессии и авторизация
Сессии и авторизацияNoveo
 
Rest
RestRest
RestNoveo
 
PHP basic
PHP basicPHP basic
PHP basicNoveo
 
PHP Advanced
PHP AdvancedPHP Advanced
PHP AdvancedNoveo
 
PHP and MySQL
PHP and MySQLPHP and MySQL
PHP and MySQLNoveo
 
MySQL
MySQLMySQL
MySQLNoveo
 
Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Noveo
 
RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)Noveo
 
Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Noveo
 
Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)Noveo
 
Animations (Lecture 17 – animations)
Animations (Lecture 17 – animations)Animations (Lecture 17 – animations)
Animations (Lecture 17 – animations)Noveo
 
Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Noveo
 

More from Noveo (20)

Гуманитарные специальности в IT-индустрии
Гуманитарные специальности в IT-индустрииГуманитарные специальности в IT-индустрии
Гуманитарные специальности в IT-индустрии
 
Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)Box model, display and position (HTML5 тема 07 - box model, display position)
Box model, display and position (HTML5 тема 07 - box model, display position)
 
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
 
Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)
 
Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)
 
Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)Основы CSS (HTML5 тема 02 - основы CSS)
Основы CSS (HTML5 тема 02 - основы CSS)
 
Структура HTML документа (HTML5 тема 01 - структура html документа)
Структура HTML документа (HTML5 тема 01 - структура html документа)Структура HTML документа (HTML5 тема 01 - структура html документа)
Структура HTML документа (HTML5 тема 01 - структура html документа)
 
Yii2
Yii2Yii2
Yii2
 
Сессии и авторизация
Сессии и авторизацияСессии и авторизация
Сессии и авторизация
 
Rest
RestRest
Rest
 
PHP basic
PHP basicPHP basic
PHP basic
 
PHP Advanced
PHP AdvancedPHP Advanced
PHP Advanced
 
PHP and MySQL
PHP and MySQLPHP and MySQL
PHP and MySQL
 
MySQL
MySQLMySQL
MySQL
 
Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)
 
RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)RxJava+RxAndroid (Lecture 20 – rx java)
RxJava+RxAndroid (Lecture 20 – rx java)
 
Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)
 
Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)Работа с геоданными (Lecture 18 – geolocation)
Работа с геоданными (Lecture 18 – geolocation)
 
Animations (Lecture 17 – animations)
Animations (Lecture 17 – animations)Animations (Lecture 17 – animations)
Animations (Lecture 17 – animations)
 
Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)Toolbar (Lecture 16 – toolbar)
Toolbar (Lecture 16 – toolbar)
 

Web internship java script

  • 2. План • Области применения • Добавление на страницу и особенности синтаксиса • Переменные и операторы • Примитивные типы • Массивы, функции, объекты • this • window • DOM • События • jQuery • JSON & AJAX • Замыкания • Полезное JavaScript
  • 3. Области применения • Web-приложения • Мобильные приложения • Серверные приложения • Виджеты • Браузерные плагины JavaScript
  • 4. Добавление JS-кода на страницу <script type="text/javascript"> // js code here </script> <script type="text/javascript " src="script.js "></script> JavaScript
  • 5. Особенности синтаксиса • Комментарии – Однострочный // комментарий – Многострочный /* комментарий */ • Точка с запятой. В JS точку с запятой после операторов можно ставить, но не обязательно. Перевод строки подразумевает точку с запятой. Лучше все же ставить ; return result //эквивалентно return result; return //эквивалентно return; result //эквивалентно result; JavaScript
  • 6. Переменные • Переменной можно присвоить любой значение. • Имена переменных чувствительны к регистру. • Переменная объявляется с использванием ключевого слова var var variable = 100; Директива var при объявлении переменной делает ее локальной, т.е. видимой только внутри текущей функции Переменные объявленные без ключевого слова var попадают в глобальную область видимости window JavaScript
  • 7. Операторы • Арифметические (+ - * / %). • Логические (&&, ||, !). • Операторы сравнения ( == != < > <= >= === !== ?: ). • Строгое сравнение – без приведения типов. • Приоритеты операторов (http://goo. gl/wUpvww). JavaScript
  • 8. Примитивные типы • Boolean var f = true; var f = new Boolean('someting'); //=> true • Number var a = 5; var a = new Number('5'); • String var str = 'Hello'; var str = new String('Hello'); • undefined typeof b == undefined • null • Приведение типов: http://learn.javascript.ru/types-conversion JavaScript
  • 9. Массивы • Массивы с числовыми индексами. var arr = new Array("my", "array"); var arr = [ "my", "array" ]; • Ассоциативные массивы. var obj = {   n: 1,  str: "Вася" } JavaScript
  • 10. Функции 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
  • 11. Объекты • Все в JS является объектом • Объекты создаются функциями- конструкторами при помощи директивы new. var date = new Date(); console.log(date.getDate()); • Доступ к методам и параметрам объекта через точку . • Функция - это встроенный объект, у которого есть метод call JavaScript
  • 12. this • Оператор this возвращает ссылку на объект, являющийся текущим контекстом вызова. • Текущий объект не является жестко фиксированным и зависит от контекста вызова функции. • Варианты передачи – неявно, через вызов метода: object.method(...) – явно, через call: function.call(object,...) – явно, через apply: function.apply(object,...) – неявно, через вызов new: new constructor(...) – иначе – window JavaScript
  • 13. Объект window • Объект window сочетает два в одном: глобальный объект js и окно браузера. • Для обращения к свойствам и методам window не обязательно указывать объект. var a = 123; console.log(a); console.log(window.a); JavaScript
  • 14. Объект 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
  • 15. Объект window Глобальные методы • alert • clearInterval • clearTimeout • confirm • decodeURI • decodeURIComponent • encodeURI • encodeURIComponent • eval • isFinite • isNaN • parseFloat • parseInt • prompt • setInterval • setTimeout JavaScript
  • 16. 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
  • 17. Объект document • document.getElementById • document.getElementsByTagName • document.createTextNode • Node.removeChild • Node.appendChild • https://developer.mozilla.org/en- US/docs/Web/API/document JavaScript
  • 18. DOM Events • Позволяют с помощью JS регистрировать различные обработчики, которые будут выполняться при возникновении событий (например, нажатие на кнопку). • Event Object (http://goo.gl/Skpn4x) • Bubbling • http://goo.gl/Pn1aYV JavaScript
  • 19. DOM Events: Регистрация обработчиков • HTML атрибут <button onclick="alert('Hello world!')"> • DOM свойство myButton.onclick = function(event){alert ('Hello world');}; • EventTarget.addEventListener myButton.addEventListener('click', function() {alert('Hello world');}, false); JavaScript
  • 20. 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
  • 21. jQuery. Готовность документа $(document).ready(function() { // выполняется, когда DOM загрузился alert("document is ready"); }); $(window).load(function() { /* выполняется, когда страница полностью загрузилась, включая фреймы и картинки */ alert("window is loaded"); }); JavaScript
  • 22. 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
  • 23. 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
  • 24. jQuery. События • on() добавить обработчик события – $("input").on('blur', function (event) {}); • off() удалить обработчик события – $("input").off('blur', function (event) {}); • trigger() вызвать событие – $("input").trigger('blur‘) JavaScript
  • 25. jQuery. События Документация: http://api.jquery.com/category/events/ • blur - элемент теряет фокус • focus – элемент получает фокус (мышью или по Tab) • change – элемент теряет фокус ввода и при этом изменилось значение элемента с момента получения фокуса • click – нажатие на элемент. (~ mousedown + mouseup на одном и том же участке экрана) • keydown – нажатие клавиши на клавиатуре • keyup – отжатие клавиши на клавиатуре • resize – изменение размеров области просмотра документа • submit – отправка формы • и многое другое ☺ JavaScript
  • 26. 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
  • 27. JSON JSON (JavaScript Object Notation) — текстовый формат обмена данными, основанный на JavaScript. { "firstName": "Иван", "lastName": "Иванов", "address": { "streetAddress": "Московское ш., 101, кв.101", "city": "Ленинград", "postalCode": 101101 }, "phoneNumbers": [ "812 123-1234", "916 123-4567" ] } JavaScript
  • 28. AJAX AJAX, 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
  • 29. Функции. Callback function foo(str, cb){ var big_str = str + "some data"; cb(big_str); } function bar(data){ console.log(data); } foo('i am ', bar); JavaScript
  • 30. Функции. Замыкания Если говорить просто, то замыкание - это внутренняя функция. И эти функции имеют доступ к переменным внешней функции. function makeShout() { var phrase = "Старт!"; var shout = function() { alert(phrase); } phrase = "Готово!"; return shout; } shout = makeShout(); shout(); JavaScript
  • 31. Функции. Замыкания Неправильное использование 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
  • 32. Инструменты • Chrome developers tools • Advanced REST client • console.log(), console.error() JavaScript
  • 33. Чтиво • jqfundamentals.com/chapter/javascript-basics • slideshare.net/guestceb98b/the-javascript- programming-language • shamansir.github.io/JavaScript-Garden/ • slideshare.net/danwrong/metaprogramming- javascript • slideshare.net/rudevich/javascript-intro-17192262 • es5.javascript.ru/ • codecademy.com/ • http://javascript.ru/ JavaScript

Editor's Notes

  1. Несколько способов добавления JS на страницу. Место включения скриптов. Блокировка загрузки страницы. Возможность непосредственного включения в HTML и минусы этого подхода.
  2. Область видимости переменных задаётся функцией, а не блоком кода
  3. Оператор "+" делает конкатенацию, если хотя бы один операнд - строка, причем, не обязательно первый Оператор && возвращает последний операнд, если все операнды верны. Если хоть один из операндов неверен, то возвратит первый неверный операнд, причем дальнейшие – не вычисляются. Оператор && обычно используется, чтобы избежать ошибок при получении вложенных свойств объекта. Оператор || возвращает первое верное значение. А если верных значений вообще нет, то последнее неверное. Операторы больше-меньше также работают со строками, сравнивая их лексикографически.
  4. Все примитивные типы имеют объектные обертки Undefined отличается от null тем, что обозначает совсем неопределенное значение (его еще никто нигде не определил), а не пустое значение. Неявное приведение типов - задачка
  5. Лучше заключать ключи массива в кавычки. Также IE ругается на использование в качестве ключей встроенных слов.
  6. Оператор new делает из любой функции - функцию конструктор
  7. Пример про bubbling
  8. jQuery обертка Самый быстрый селектор Возвращается – массив
  9. prop() например, для установки checked
  10. Затрагивает только существующие элементы Неймспейсы событий Несколько вариантов off
  11. Change на input Осторожно с resize
  12. Cross-domain restrictions.