4. Что умеет?
- Работать с HTML элементами и их
стилями через DOM
- Взаимодействовать с пользователем
через события браузера
- Посылать/принимать данные с сервера
(AJAX)
- Работать с cookie
5. Что запрещено?
- Нет доступа к файлам на диске
- Нет доступа к соседним вкладкам
- Ограничен доступ к чужим доменам
17. Массивы
- push/pop, shift/unshift, splice – для
добавления и удаления элементов
- join/split – для преобразования строки в
массив и обратно
- slice – копирует участок массива.
- concat – объединяет массивы
- indexOf/lastIndexOf – возвращают
позицию элемента в массиве
19. Массивы
- forEach – для перебора массива
- filter – для фильтрации массива
- every/some – для проверки массива
- map – для трансформации массива в
массив
- reduce/reduceRight – для прохода по
массиву с вычислением значения
20. Дата и время
new Date(2011, 0, 1, 0, 0, 0, 0);
// 1 января 2011, 00:00:00
21. Замыкания
function makeCounter() {
var currentCount = 1;
return function() {
return currentCount++;
};
}
var counter = makeCounter();
// каждый вызов увеличивает счётчик и возвращает результат
console.log(counter()); // 1
console.log(counter()); // 2
// создать другой счётчик, он будет независим от первого
var counter2 = makeCounter();
console.log(counter2()); // 1
22. Методы объектов
var user = {
name: 'Василий',
sayHi: function() {
alert( this.name );
}
};
user.sayHi(); // sayHi в контексте user
23. Отличие this
Значение this называется контекстом вызова
и будет определено в момент вызова
функции.
this – это текущий объект при вызове «через
точку»
24. this без объекта
function func() {
alert( this ); // выведет [object Window] или [object global]
}
func();
function func() {
"use strict";
alert( this ); // выведет undefined (кроме IE9-)
}
func();
25. Потеря контекста
var user = {
name: "Вася",
hi: function() { alert(this.name); },
bye: function() { alert("Пока"); }
};
user.hi(); // Вася (простой вызов работает)
// вызовем user.hi или user.bye в зависимости от имени
(user.name == "Вася" ? user.hi : user.bye)(); // undefined
26. Явный this
func.call(context, arg1, arg2, ...)
// идентичен вызову
func.apply(context, [arg1, arg2]);
// привязывает контекст
var f = func.bind(context);
f(arg1, arg2);