Добро пожаловать в JavaScript 2.0

JavaScript доминирует в сети и ECMAScript, ядро ​​языка растет. Новая спецификация (ES6 или JS2), появление которой ожидается в середине этого года, принесет с собой многочисленные инновации, которые можно опробовать уже сегодня. Firefox в настоящее время имеет лучшую поддержку , но также возможны полифиллы через так называемые транспилеры, такие как Google Traceur. Ниже приводится краткий обзор новых возможностей ES6.


Новое ключевое слово let работает намного лучше, чем var : Scoping теперь ведет себя точно так же, как и в других языках (C / C ++, Java), поэтому if-блоки теперь также имеют свою собственную область видимости. Подъем, то есть перенос объявлений переменных (не присвоения значений) в соответствующей области, также исправляется.:

console.log(x);
var x = 'foo'; 
// undefined

console.log(y);
let y = 'bar';
// not initialized

Ряд других нововведений велик: константы (const), значения по умолчанию для функций (function pow (a, b = 2) {return Math.pow (a, b);}), новая нотация для функций (пусть pow = (a, b = 2) => Math.pow (a, b);), множество новых функций (repeat (), contains (), startWith (), find (), findIndex ()), новая конструкция цикла для ... из.

Также следует упомянуть новый набор типов данных, карту, прокси и символ, импорт (частей других) файлов JavaScript с импортом и новый интуитивно понятный синтаксис для классов и наследования. Но часто бывают и мелкие, но долгожданные вещи вроде возможности разрывов строк в строковых литералах (обратите внимание на специальные кавычки):

`foo

bar`

JavaScript уже давно является гораздо большим, чем просто инструментом для небольших хитростей веб-сайтов - он создает мощные, высокопроизводительные веб-приложения, которые ни в чем не уступают своим настольным аналогам. Благодаря большому количеству полезных нововведений и поддержке, уже доступной со стороны ES6, программирование становится вдвойне увлекательнее.

Кому не всегда хотелось проверять равенство двух чисел с помощью новой константы Number.EPSILON , значение которой представляет собой разницу между 1 и следующим более высоким значением с плавающей запятой?

let cmp = (a,b) => Math.abs(a-b) 
Назад