ES5 (ECMAScript 5) представил несколько новых функций для JavaScript, в том числе:
- Строгий режим: способ подписаться на лучшую и более безопасную версию 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