Головна‎ > ‎JavaScript‎ > ‎Додатково‎ > ‎

ECMAScript

European Computer Manufacturers Association - асоціація, що займається стандартизацією інформаційних та комунікаційних технологій

ECMAScript (ES) - стандарт мови програмування

JavaScrip - найпопулярніша реалізація стандарту
  • JScript - InternetExplorer
  • ActionScript - Adobe Flash Player



Mo - 1995 Mocha (Мокха) - мова, яка підтримує різні стилі програмування
LS - 1995 LiveScript - красиво
JS - 1995 JavaScript  - брат найкрутішої мови того часу, заманює програмістів у ВЕБ
ES1 - 1997 - JS стандартизувався і відкрилися світу, через конкуренцію з JScript 
ES2 - 1998
ES3 - 1998
  • ===
  • regex
  • try/catch

ES4(E4X) Атаки Майкрософта 

ES5 - 2009
  • Директива "use strict";  - не об'явленні змінні та небезпечні функції будуть виводитися в консолі...
  • String.trim("   А Б В  ") = "А Б В"
  • Array.isArray(Array) = true 
  • Array.forEach(F) function F(value){txt += value + "<br>";};
  • Array.map(F) function F(value, index, array) {return value*2;};
  • Array.filter(F) function F(value) {return value > 10;}
  • Array.reduce(F) function F(total, value, index, array) {return total + value;}
  • Array.reduceRight(F) function F(total, value) {return total + value;}
  • Array.every(F) true (усі) function F(value, index, array) {return value > 18;} 
  • Array.some(F) true (хоч 1) function F(value) {return value > 18;}
  • Array.indexOf("Андрій") = 3
  • Array.lastIndexOf() = 3
  • obj = JSON.parse('{"name":"Андрій", "age":30}'obj. name = "Андрій";
  • JSON.stringify(obj- перетворити в рядок усі поля
  • Date.now();  1585905670681 мілісекунд з 1.01.1970
  • get lang() {return this.language}
  • set lang(value) {this.language = value}
  • var person = {Name: "Андрій", language : "NO",}  - змінити властивість  
  • Object.defineProperty(person, "language", {value: "UKR", writable : true, enumerable : true, configurable : true})

ES6 - 2015
  • let, const
  • ES5var x = function(x, y) {return x * y;}
  • ES6const x = (x, y) => x * y;  // з const більш безпечно
  • Об'явлення класу в звичний спосіб                                                                                                                     class Car { constructor(brand) {this.carname = brand;} }                                                                                      mycar = new Car("Tesla");
  • function F(x, y = 10) - типове значення 
  • Array.find(F); function F(value, index, array) {return value > 18;} повертає перше число, яке більше 18
  • Array.findIndex(F); function F(value, index, array) {return value > 18;} повертає індекс, дек число більше 18
  • Number.EPSILON
  • Number.MIN_SAFE_INTEGER
  • Number.MAX_SAFE_INTEGER
  • Number.isInteger(1.5) false  Number.isSafeInteger(1) true
  • isFinite(10/0) false  
  • isFinite(10/1) true
  • isNaN("Hello"false

ES7 - 2016
  • 5 ** 2 = 25  (як Math.pow(5,2))
  • Array.includes(2) true

ES8 - 2017
  • async/await
  • доповнення до RegExp
  • F1(a,b,c,)
  • 'abc'.padStart(10) = '          abc'
  • 'abc'.padEnd(10)  =  'abc          '
  • const object1 = {property1: 42};                                                                                                                  const descriptors1 = Object.getOwnPropertyDescriptors(object1);                                              descriptors1.property1.writable = true                                                                                          descriptors1.property1.value) = 42
  • Об'єкт Atomics для роботи в потоках