Жигалов Сергей
разработал JavaScript для Netscape 1995
... он должен был быть написан за 10 дней, а иначе мы бы имели что-то похуже JS...
... В то время мы должны были двигаться очень быстро, т.к. знали, что Microsoft идет за нами...
... JS был обязан «выглядеть как Java», только поменьше, быть эдаким младшим братом-простаком для Java...
Дуглас Крокфорд, 2001
{
"name": "Works",
"cashlessPayment": true,
"capacity": 3,
"barista": [
{
"name": "Лёша",
"favourite": "cappuccino"
},
{
"name": "Лиза",
"favourite": "tea"
}
]
}
Works
true
3
Лёша
cappuccino
Лиза
tea
(Asynchronous JavaScript and XML)
Джеймс Гаррет, 2005
| Версия | Год выпуска |
| node 0.4 | 2011 |
| node 0.10 | 2013 |
| iojs 1.0 | 2015 |
| node 0.12 | 2015 |
| iojs 3.0 | 2015 |
| node 6.0 | 2016 |
123 // 123
12.3 // 12.3
0x11 // 17
0b11 // 3
0o11 // 9
64 бит
2^64 = 18446744073709552000
Number.MAX_SAFE_INTEGER
// 9007199254740991
2.998e8
// 2.998 × 10^8
// 299800000
Infinity
-Infinity
Infinity - 1 === Infinity // true
NaN
0/0 // NaN
Infinity - Infinity // NaN
'один' / 'два' // NaN
'строка текста'
"строка текста"
'中文 español русский \' '
true
false
undefined
null
var a;
console.log(a); // undefined
typeof 0;
// 'number'
typeof '0';
// 'string'
var studentsCount;
studentsCount = 98;
var studentsCount = 98;
var studentsCount = 98,
language = 'JavaScript';
oneMoment a-z _ $1moment
soSo A-Z a-z 0-9 _ $so-so
// Переменная
var currentTime;
// Константа
var MILLISECONDS_IN_DAY;
break do try while
case else new with
catch finally return
continue for switch
debugger function this
default if throw
delete in instanceof
typeof var void
https://clck.ru/9auhk
class enum extends super
const export import
https://clck.ru/9auhk
// это короткий комментарий
/* а это длинный комментарий
написаный в несколько строк */
/* ах этот длинный комментарий ... */
var weather = 'cold';
console.log(weather); // cold
var weather = 'sunny';
/*/* ах этот длинный комментарий ... */
var weather = 'cold';*/
console.log(weather);
// SyntaxError: Unexpected token *
++ (инкремент)
-- (декремент)
- (унарный минус)
! (логическое НЕ)
var a = 1;
var b = a++; // b === 1, a === 2
var a = 1;
var b = ++a; // b === 2, a === 2
* (умножение)
/ (деление)
% (остаток от деления)
+ (сложение)
- (вычитание)
+ (сложение строк)
2 + 3 = 5
'«JavaScript — это простой, но ' +
'изящный язык, который является ' +
'невероятно мощным для решения ' +
'многих задач» © Джон Резиг'
< (меньше)
<= (меньше или равно)
> (больше)
>= (больше или равно)
== (проверка на равенство)
!= (проверка на неравенство)
=== (проверка на идентичность)
!== (проверка на неидентичность)
&& (И)
|| (ИЛИ)
= (присваивание)
*=, /=, +=, -=, &=, ^=, |=
(присваивание с операцией)
var a = 1;
a += 1;
a = a + 1;
if (language === 'JavaScript') {
likes = likes + 1;
} else {
likes = likes - 1;
}
likes = language === 'JavaScript' ?
likes + 1 :
likes - 1;
switch (language) {
case 'JavaScript':
likes++;
break;
case 'C++':
case 'Java':
break;
default:
likes--;
}
a = b * 2;
a = b * 2;
// 2 - это выражение литерала
// b - это выражение переменной
// b * 2 - это арифметическое выражение
// a = b * 2 - это выражение присвоения
function getTrue() {
return true;
}
getTrue(); // true
function getTrue() {
return
true;
}
getTrue(); // undefined
'use strict';
// этот код будет работать
// по современному стандарту ES5
console.log('Hello, world!');
// Ctrl + Alt + J
console.log('Hello, world!');
// index.js
console.log('Hello, world!');
$ node index.js
Подать заявку можно здесь
$ apt-get install git
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew install git
# Клонируем репозиторий
git clone https://github.com/login/demo-task-1.git
# Решаем задачу в любимом редакторе
# Посмотреть список измененных файлов
git status
git add math.js
git status
# Правим код в любимом редакторе
git status
# Клонируем репозиторий
git clone https://github.com/login/demo-task-1.git
# Решаем задачу в любимом редакторе
# Добавляем измененные файлы
git add math.js
# Фиксируем изменения
git commit -m 'Сложение двух чисел'
# Представляемся git
git config --global user.email "sergey@zhigalov.com"
git config --global user.name "Zhigalov Sergey"
# Клонируем репозиторий
git clone https://github.com/login/demo-task-1.git
# Решаем задачу в любимом редакторе
# Добавляем измененные файлы
git add math.js
# Фиксируем изменения
git commit -m 'Сложение двух чисел'
# Публикуем изменения в удалённый репозиторий
git push origin master
# Вводим логин и пароль
Username for 'https://github.com': zhigalov-sergey
Password for 'https://zhigalov-sergey@github.com':
# Правим код в любимом редакторе
# Добавляем все измененные файлы
git add math.js
# Фиксируем изменения
git commit -m "Добавил преобразование типов"
# Отправляем изменения в удалённый репозиторий
git push origin master