## Историята - (+0) 1995 - Brendan Eich (Netscape) създава първата версия на езика за 10 дни - (+1) 1996 - Nescape внасят предложение за стандартизация в ECMA (European Computer Manufacturers Association) - (+1) 1997 - Стандарт ECMA-262, първо издание, ECMAScript 1 (ES1) - (+1) 1998 - ECMAScript 2 (ES2) - (+1) 1999 - ECMAScript 3 (ES3) - [ 2003 - Работата по ECMAScript 4 е изоставена поради корпоративни разногласия ] - (+10) 2009 - ECMAScript 5 (ES5), NodeJS - [ 2012 - Появява се езикът Typescript (версия 0.8) ] - (+6) 2015 - ECMAScript 6 (ES6) => ECMAScript2015 (ES2015) - (+1) 2016 - ECMAScript2016 (ES2016) - (+1) 2017 - ECMAScript2017 (ES2017) - (+1) 2018 - ECMAScript2018 (ES2018) - (+1) 2019 - ECMAScript2019 (ES2019)
## Характеристики - Реализация на стандарта ECMA-262 - Интерпретируем език - C-подобен синтаксис (curly bracket syntax) [C++, C#, Java, PHP] - Динамични типове - Функциите са ... обекти (first class functions)
## Примитивни типове данни - `Boolean`: `true`, `false` - `Number`: `1`, `1.5834`, `-100`, `Infinity` - `String`: `"това"`, `'е'`, `` `стринг` ``, `'1'`, `'1.5834'`, `'true'`, `'null'`, `''` (празен стринг) - `null`: единствена стойност `null` - `undefined`: единствена стойност `undefined` - [`Symbol` (по-късно)]
### Операции между еднотипни ### примитивни стойности - `Number`: `2 + 2 => 4`, `8 * 7 => 56`, `10/0 => NaN`, `6 * 8 / 2` - `String`: '2' + '2' => '22' (конкатенация) - `Boolean`: `true && false`, `false || false`
### Преобразуване от един тип в друг - `Boolean(v)`: `undefined`, `null`, `NaN`, `0`, `""`, `false` => `false`, всичко друго => `true` - `Number(v)`: Number('123') => 123, Number(true) => 1 - `String(v)`: `String(2)` => `'2'`, `String(2) + String(2)` => `'22'`, `String(2 + 2)` => `'4'`