ES5 (ECMAScript 5) представил несколько новых функций для JavaScript, в том числе:

  1. Строгий режим: способ подписаться на лучшую и более безопасную версию JavaScript. Например:
"use strict";
x = 3.14; // This will cause an error because x is not declared

2. Поддержка JSON: встроенная поддержка разбора и преобразования JSON в строки. Например:

var jsonString = '{"name":"John", "age":30}';
var jsonObject = JSON.parse(jsonString);
console.log(jsonObject.name);

3. Методы объекта: новые методы, такие как create() и defineProperty() для работы с объектами. Например:

var person = Object.create(null);
person.name = "John";
console.log(person.name);

4. Геттеры и сеттеры: способ определить пользовательское поведение для получения и установки свойств объекта. Например:

var person = {
  _name: "John",
  get name() {
    return this._name;
  },
  set name(value) {
    this._name = value;
  }
};
console.log(person.name); // "John"
person.name = "Bob";
console.log(person.name); // "Bob"

5.Улучшенные регулярные выражения: Объекты RegExp теперь имеют новые свойства и методы для работы с регулярными выражениями. Например:

var regex = /ab+c/;
console.log(regex.test("abc")); // true
console.log(regex.test("ac")); // false
console.log(regex.exec("abc")[0]); // "abc"

6. Улучшена обработка ошибок: оператор try-catch теперь имеет блок finally для выполнения кода независимо от того, было ли выдано исключение. Например:

try {
  // some code here
} catch (error) {
  console.log(error);
} finally {
  console.log("finally block executed");
}

7.Улучшенная обработка даты: новые методы работы с датами, такие как toISOString() и toJSON(). Например:

var date = new Date();
console.log(date.toISOString());
console.log(date.toJSON());

8.Улучшенная обработка функций: новые методы работы с функциями, такими как bind(). Например:

var person = {
  name: "John",
  sayName: function() {
    console.log(this.name);
  }
};
var say = person.sayName;
console.log(say); 
var boundSay = say.bind(person);
console.log(boundSay);

9.String.prototype.trim(): метод удаляет пробелы в начале и в конце строки. Например:

var str = "    hello world   ";
console.log(str.trim()); // "hello world"

10.String.prototype.split(): метод разбивает строку на массив подстрок. Например:

var str = "hello world";
console.log(str.split(" ")); // ["hello", "world"]

11.String.prototype.substr(): метод возвращает символы в строке, начиная с указанного места и заканчивая указанным количеством символов. Например:

var str = "hello world";
console.log(str.substr(3, 2)); // "lo"

12.String.prototype.substring(): метод возвращает символы в строке между двумя индексами в строку. Например:

var str = "hello world";
console.log(str.substring(3, 5)); // "lo"

13.String.prototype.concat(): метод объединяет текст двух или более строк и возвращает новую строку. Например:

var str1 = "hello ";
var str2 = "world";
console.log(str1.concat(str2)); // "hello world"

14.String.prototype.charAt(): метод возвращает символ по указанному индексу в строке. Например:

var str = "hello world";
console.log(str.charAt(0)); // "h"

15.String.prototype.indexOf(): метод возвращает индекс в вызывающем объекте String первого вхождения указанного значения или -1, если он не найден. Например:

var str = "hello world";
console.log(str.indexOf("world")); // 

16.String.prototype.lastIndexOf(): метод возвращает индекс в вызывающем объекте String последнего вхождения указанного значения или -1, если не найдено. Например:

var str = "hello world, world";
console.log(str.lastIndexOf("world")); // 13

17.String.prototype.replace(): метод возвращает новую строку, в которой некоторые или все совпадения шаблона заменены заменой. Например:

var str = "hello world";
console.log(str.replace("world", "Bob")); // "hello Bob"

18.String.prototype.search(): метод выполняет поиск соответствия между регулярным выражением и этим объектом String. Например:

var str = "hello world";
console.log(str.search(/world/)); // 6

19.Array.isArray(): метод возвращает логическое значение, указывающее, является ли переданное значение массивом. Например:

console.log(Array.isArray([1, 2, 3])); // true
console.log(Array.isArray({})); // false

20.Array.prototype.indexOf(): метод возвращает первый индекс, по которому данный элемент может быть найден в массиве, или -1, если он отсутствует. Например:

var arr = [1, 2, 3, 4, 5];
console.log(arr.indexOf(3)); // 2

21.Array.prototype.lastIndexOf(): метод возвращает последний индекс, по которому данный элемент может быть найден в массиве, или -1, если он отсутствует. Например:

var arr = [1, 2, 3, 4, 3];
console.log(arr.lastIndexOf(3)); // 4

22.Array.prototype.forEach(): метод выполняет предоставленную функцию один раз для каждого элемента массива. Например:

var arr = [1, 2, 3, 4, 5];
arr.forEach(function(element) {
  console.log(element);
});
// Output: 1 2 3 4 5

23.Array.prototype.map(): метод создает новый массив с результатами вызова предоставленной функции для каждого элемента в этом массиве. Например:

var arr = [1, 2, 3, 4, 5];
var newArr = arr.map(function(element) {
  return element * 2;
});
console.log(newArr); // [2, 4, 6, 8, 10]

24.Array.prototype.filter(): метод создает новый массив со всеми элементами, прошедшими проверку, реализованную предоставленной функцией. Например:

var arr = [1, 2, 3, 4, 5];
var newArr = arr.filter(function(element) {
  return element % 2 === 0;
});
console.log(newArr); // [2, 4]

25.Array.prototype.reduce(): метод применяет функцию к аккумулятору и каждому значению массива (слева направо), чтобы уменьшить его до одного значения. Например:

var arr = [1, 2, 3, 4, 5];
var sum = arr.reduce(function(acc, current) {
  return acc + current;
}, 0);
console.log(sum); // 15

26.Array.prototype.every(): метод проверяет, все ли элементы в массиве проходят тест, реализованный предоставленной функцией. Например:

var arr = [1, 2, 3, 4, 5];
var allGreaterThanZero = arr.every(function(element) {
  return element > 0;
});
console.log(allGreaterThanZero); // true

27.Array.prototype.some(): метод проверяет, проходит ли хотя бы один элемент в массиве тест, реализованный предоставленной функцией. Например:

var arr = [1, 2, 3, 4, 5];
var someGreaterThanFive = arr.some(function(element){
  return arr > 3
});
console.log(someGreaterThanFive); // false