SlideShare a Scribd company logo
1 of 54
JavaScript
Georgy Grigoryev, Auriga, Inc.
2
Состав вебинаров:
Вводный: история JS, реализации и стандарты.
Операторы и типизация.
Основные конструкции языка, как они используются.
ООП и контекст
JS+HTML: BOM, DOM, события и свойства, AJAX
JS фреймворки: jQuery, AngularJS, CoffeeScript, Node.js
3
Javascript – Появился в 1995 году
JavaScript – создали в компании Netscape
Navigator
Автор языка – Брендан Айк
4
Брендан Айк
Работал в Mozzilla
Foundation с момента
её основания, в 2014
проработал несколько
дней в качестве CEO
5
LiveScript JavaScript ECMAScript
LiveScript появился в
Netscape Navigator
Позже, LiveScript
переименовали в JavaScript
И после выпуска Jscript,
Netscape инициировала
стандартизацию в ECMA
6
JScript
Microsoft , спустя год, выпустил свою версию
JavaScript, назвав её JScript.
Брендан Айк: «Считайте, что JavaScript
(пожалуйста, только не Jscript) спас вас от
VBscript»
7
msn.com
Появился раньше чем JavaScript
8
Использование JavaScript
Web
Windows
Embedded language
Server
Client
9
FirefoxOS, Windows Phone
10
Node.js, ActionScript
11
Стандарты
• ECMAScript – актуальная версия 5.
• Последняя версия 6
• Используются версии 5 и 3
• Таблица реализации ECMAScript 6
http://kangax.github.io/compat-table/es6/
12
JavaScript vs JScript
Подсистема ввода-вывода
ActiveX
13
IDE
WebStorm
Visual Studio 2008/201x
Sublime text 2/3
14
WebStorm
15
Visual Studio
16
Sublime text 2/3
17
Запуск JS в браузере
Через строку адреса
Используя скрипт на странице
Запустив консоль отладки
18
Запуск js через строку адреса
javascript:alert(“hello world!”);
19
Запуск скрипта через закладку в браузере
 javascript:var el=document.getElementById("tRSSREADER@911621291");
el.parentNode.removeChild(el);
20
Встраивание скрипта на страницу
<script type="text/javascript">
function button_click()
{
alert("Great!");
}
</script>
<script type="text/javascript" src="javascript_test.js"></script>
21
Подключение скрипта из CDN
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
22
Средства разработки/отладки
Просмотр кода страницы
Дебаггер скриптов
Консоль отладки
Средства отслеживания запросов (не везде)
23
Средства отслеживания запросов Chrome
24
Средства отслеживания запросов IE11
25
Консоль браузера
Практически во всех браузерах(точно нет в IE6)
Выполняет произвольный код
Контекстом служит текущая страница
Доступны все объекты со страницы и сама
страница
Стандартная горячая клавиша F12
26
Консоль в Chrome
27
Консоль в IE11
28
Проверка консоли
 alert(“console test”);
 console.log(“function foo”)
29
Jscript в Windows
Встроенный интерпретатор wscript.exe и
консольный интерпретатор cscript.exe
30
Работа с файлами JScript
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:testfile.txt", true);
a.WriteLine("This is a test.");
a.Close();
wscript "d:jscript_write_to_file.js"
JScript
Запуск js через командную строку
31
Операторы в JavaScript
 Комментарии и кавычки
//однострочный комментарий
/*
многострочкый комментарий
*/
alert("comment") //можно двойные использовать
alert('comment') // можно одинарные
alert("It's comment") // можно оба типа сразу
32
Операторы в JavaScript
Присваивание значений:
var a = "value";
b = "what?";
33
Операторы в JavaScript
Условный оператор:
var a = 1;
var b = 2;
if (a == b) {
console.log("equal");
} else {
console.log('not equal');
}
34
Операторы в JavaScript
Цикл while
var i = 0
while (i < 10) {
console.log(i)
i++;
}
35
Операторы в JavaScript
Цикл for
for(var i = 0; i <10;i++){
console.log(i);
}
36
Операторы в JavaScript
Оператор switch
var a = 't';
switch(a){
case 't':
console.log("it's equal t");
break;
case 'y':
console.log("it's equal y");
break;
default:
console.log("empty");
break;
}
37
Операторы в JavaScript
Арифметические операторы
var a = 2;
var b = 3;
console.log(a+b);
console.log(a-b);
console.log(a*b);
console.log(a/b);
console.log(a%b); // остаток от деления
38
Операторы в JavaScript
Инкремент, декремент. Операторы доступны как пост- так и пре-.
var b = 15;
for(var i = 1; i < 10 ; i++)
{
console.log(i);
console.log(--b);
}
39
Операторы в JavaScript
Тернарный условный оператор:
console.log(1==2?"matrix":"not matrix");
40
Операторы в JavaScript
Запятая
var a,b,c;
for (a = 1, b = 3, c = a*b; a < 10; a++) {
console.log(a);
console.log(b);
console.log(c);
}
41
Операторы в JavaScript
Точка с запятой
var a = 1;
a++; var t = a*2;
42
Операторы меняющие смысл при переводе строки
Пост- инкремент
Пост- декремент
continue
break
return
throw
43
Операторы меняющие смысл
Не заработает:
function GetPerson() {
return
{
"name":"John Doe",
"age": 30
}
}
44
Область видимости
Всегда используйте var!
function ShowTip(){
message = "debug info";
console.log(message);
}
message = "Hello user!";
console.log(message);
ShowTip();
console.log(message);
45
Область видимости
Область видимости создают только методы
if(message!="")
{
var counter = 1;
}
console.log(counter);
46
4 типа данных
Number
String
Boolean
Object
47
Number
8 байт, плавающая точка
Специальные значения: NaN, Infinity
48
String
Иммутабельная
Имеет встроенные методы работы со строками
var str = "".concat("Embeded ", "string ", "functions! ");
console.log(str.trim().substr(0, 18));
var str = "Embeded string functions!";
console.log(str.substr(-10));
substr, substring
49
Преобразование типов
Преобразование в строку
document.title = 1 > 0;
var a = "2";
var b = 1;
var c = a + b;
console.log(c);
50
Преобразование типов
Преобразование в число
var a = "123";
if (Number(a) == 123) {
console.log("is true");
}
var a = "123";
if (+a == 123) {
console.log("is true");
}
51
Преобразование типов
Преобразование в число
console.log(Number(true)); // 1
console.log(Number(false)); // 0
console.log(Number(null)); // 0
console.log(Number(undefined))// NaN
52
Преобразование типов
Преобразование в булевый тип
console.log(!!1); // true
console.log(!!0); // false
console.log(!!"foo"); // true
console.log(!!""); // false
console.log(!!NaN); // false
console.log(!!Infinity);// true
53
Бонус
Гарри Бернхард - Wat?
https://www.destroyallsoftware.com/talks/wat
54
Contacts
Thank You and
We Look Forward to Working with You
Auriga, USA
92 Potter Rd, Ste 1
Wilton, NH 03086, USA
Phone: +1 (866) 645-1119
Fax: +1 (603) 386-6097
info@auriga.com
www.auriga.com
Auriga, Russia
125 Varshavskoe Shosse, Unit 16A
Moscow, 117587
Tel:+7 (495) 713-9900
Fax:+7 (495) 939-0300
info@auriga.com
www.auriga.com

More Related Content

What's hot

Многопоточное программирование на C#, путевые заметки
Многопоточное программирование на C#, путевые заметкиМногопоточное программирование на C#, путевые заметки
Многопоточное программирование на C#, путевые заметкиDotNetConf
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиАвтоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиSQALab
 
Практика Lock-free. RealTime-сервер
Практика Lock-free. RealTime-серверПрактика Lock-free. RealTime-сервер
Практика Lock-free. RealTime-серверPlatonov Sergey
 
Эльдар Марков
Эльдар МарковЭльдар Марков
Эльдар Марковalarin
 
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Andrey Rebrov
 
Асинхронность и сопрограммы
Асинхронность и сопрограммыАсинхронность и сопрограммы
Асинхронность и сопрограммыPlatonov Sergey
 
Юлия Ковалёва. Fscheck — альтернативный путь для unit тестов
Юлия Ковалёва. Fscheck — альтернативный путь для unit тестовЮлия Ковалёва. Fscheck — альтернативный путь для unit тестов
Юлия Ковалёва. Fscheck — альтернативный путь для unit тестовMskDotNet Community
 
Павел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаПавел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаSergey Platonov
 
ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3it-people
 
Основы и нюансы параллельного тестрования
Основы и нюансы параллельного тестрованияОсновы и нюансы параллельного тестрования
Основы и нюансы параллельного тестрованияbearoff
 
Антон Полухин, Немного о Boost
Антон Полухин, Немного о BoostАнтон Полухин, Немного о Boost
Антон Полухин, Немного о BoostSergey Platonov
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»WrikeTechClub
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй этоRoman Dvornov
 
Testing dojo. Вступительная презентация
Testing dojo. Вступительная презентацияTesting dojo. Вступительная презентация
Testing dojo. Вступительная презентацияtkurnosova
 
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полнойОмские ИТ-субботники
 
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Sergey Platonov
 
Разбор некоторых технических моментов нового .NET
Разбор некоторых технических моментов нового .NETРазбор некоторых технических моментов нового .NET
Разбор некоторых технических моментов нового .NETCUSTIS
 
Модульная структура
Модульная структураМодульная структура
Модульная структураDenis Tsvettsih
 

What's hot (20)

Многопоточное программирование на C#, путевые заметки
Многопоточное программирование на C#, путевые заметкиМногопоточное программирование на C#, путевые заметки
Многопоточное программирование на C#, путевые заметки
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиАвтоматизация тестирования многопоточности
Автоматизация тестирования многопоточности
 
Цена ошибки
Цена ошибкиЦена ошибки
Цена ошибки
 
Практика Lock-free. RealTime-сервер
Практика Lock-free. RealTime-серверПрактика Lock-free. RealTime-сервер
Практика Lock-free. RealTime-сервер
 
Эльдар Марков
Эльдар МарковЭльдар Марков
Эльдар Марков
 
Groovy
GroovyGroovy
Groovy
 
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
 
Асинхронность и сопрограммы
Асинхронность и сопрограммыАсинхронность и сопрограммы
Асинхронность и сопрограммы
 
Юлия Ковалёва. Fscheck — альтернативный путь для unit тестов
Юлия Ковалёва. Fscheck — альтернативный путь для unit тестовЮлия Ковалёва. Fscheck — альтернативный путь для unit тестов
Юлия Ковалёва. Fscheck — альтернативный путь для unit тестов
 
Павел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаПавел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладка
 
ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3
 
Основы и нюансы параллельного тестрования
Основы и нюансы параллельного тестрованияОсновы и нюансы параллельного тестрования
Основы и нюансы параллельного тестрования
 
Антон Полухин, Немного о Boost
Антон Полухин, Немного о BoostАнтон Полухин, Немного о Boost
Антон Полухин, Немного о Boost
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй это
 
Testing dojo. Вступительная презентация
Testing dojo. Вступительная презентацияTesting dojo. Вступительная презентация
Testing dojo. Вступительная презентация
 
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
 
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++ Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
Юрий Ефимочев, Компилируемые в реальном времени DSL для С++
 
Разбор некоторых технических моментов нового .NET
Разбор некоторых технических моментов нового .NETРазбор некоторых технических моментов нового .NET
Разбор некоторых технических моментов нового .NET
 
Модульная структура
Модульная структураМодульная структура
Модульная структура
 

Similar to course js day 1

Алексей Андросов - Debugger: Отладка кода
Алексей Андросов - Debugger: Отладка кодаАлексей Андросов - Debugger: Отладка кода
Алексей Андросов - Debugger: Отладка кодаYandex
 
Отладка и профилирование JavaScript/Ajax
Отладка и профилирование JavaScript/AjaxОтладка и профилирование JavaScript/Ajax
Отладка и профилирование JavaScript/AjaxAlexander Shurkayev
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPITimur Shemsedinov
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012InTRUEdeR
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаSQALab
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5Provectus
 
Фундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел ТайкалоФундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел ТайкалоStanfy
 
Web internship java script
Web internship   java scriptWeb internship   java script
Web internship java scriptNoveo
 
Froglogic Squish
Froglogic Squish Froglogic Squish
Froglogic Squish SQALab
 
Автоматизация тестирования iOS приложений: от идеи к готовому решению
Автоматизация тестирования iOS приложений: от идеи к готовому решениюАвтоматизация тестирования iOS приложений: от идеи к готовому решению
Автоматизация тестирования iOS приложений: от идеи к готовому решениюSQALab
 
Java осень 2012 лекция 5
Java осень 2012 лекция 5Java осень 2012 лекция 5
Java осень 2012 лекция 5Technopark
 
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложенийОлег Винников
 
PVS-Studio. Статический анализатор кода. Windows/Linux, C/C++/C#
PVS-Studio. Статический анализатор кода. Windows/Linux, C/C++/C#PVS-Studio. Статический анализатор кода. Windows/Linux, C/C++/C#
PVS-Studio. Статический анализатор кода. Windows/Linux, C/C++/C#Andrey Karpov
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationAndrii Dzynia
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковCodeFest
 
Ввведение в java
Ввведение в javaВвведение в java
Ввведение в javaUnguryan Vitaliy
 
Введение в язык программирования «Java»
Введение в язык программирования «Java»Введение в язык программирования «Java»
Введение в язык программирования «Java»Unguryan Vitaliy
 
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...Rinat Shaikhutdinov
 

Similar to course js day 1 (20)

Алексей Андросов - Debugger: Отладка кода
Алексей Андросов - Debugger: Отладка кодаАлексей Андросов - Debugger: Отладка кода
Алексей Андросов - Debugger: Отладка кода
 
Отладка и профилирование JavaScript/Ajax
Отладка и профилирование JavaScript/AjaxОтладка и профилирование JavaScript/Ajax
Отладка и профилирование JavaScript/Ajax
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщика
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Фундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел ТайкалоФундаментальные основы разработки под iOS. Павел Тайкало
Фундаментальные основы разработки под iOS. Павел Тайкало
 
Web internship java script
Web internship   java scriptWeb internship   java script
Web internship java script
 
Froglogic Squish
Froglogic Squish Froglogic Squish
Froglogic Squish
 
Автоматизация тестирования iOS приложений: от идеи к готовому решению
Автоматизация тестирования iOS приложений: от идеи к готовому решениюАвтоматизация тестирования iOS приложений: от идеи к готовому решению
Автоматизация тестирования iOS приложений: от идеи к готовому решению
 
JavaScript Intro
JavaScript IntroJavaScript Intro
JavaScript Intro
 
Java осень 2012 лекция 5
Java осень 2012 лекция 5Java осень 2012 лекция 5
Java осень 2012 лекция 5
 
Java 9 - кратко о новом
Java 9 -  кратко о новомJava 9 -  кратко о новом
Java 9 - кратко о новом
 
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложений
 
PVS-Studio. Статический анализатор кода. Windows/Linux, C/C++/C#
PVS-Studio. Статический анализатор кода. Windows/Linux, C/C++/C#PVS-Studio. Статический анализатор кода. Windows/Linux, C/C++/C#
PVS-Studio. Статический анализатор кода. Windows/Linux, C/C++/C#
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test Automation
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
 
Ввведение в java
Ввведение в javaВвведение в java
Ввведение в java
 
Введение в язык программирования «Java»
Введение в язык программирования «Java»Введение в язык программирования «Java»
Введение в язык программирования «Java»
 
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...
 

course js day 1