Что нового планируется в JavaScript на 2019 год

Что нового планируется в JavaScript на 2019 год

От автора: в течение последних нескольких лет JavaScript постоянно развивался благодаря новым функциям. Если вам интересно узнать, что ждет нас в следующей версии JavaScript 2019, этот пост для вас!

Прежде чем начать разговор о последних функциях, важно понять, как новые идеи становятся частью языка JavaScript.

Процесс введения новых функций языка JavaScript

Если коротко, спецификация языка, которая управляет JavaScript, называется ECMAScript. Группа Ecma International, которая рассматривает и принимает изменения в спецификации языка — Технический комитет 39 или TC39. Изменения в спецификации ECMAScript проходят стандартизированный процесс, включающий этапы.

Этап 0: идеи

Этап 1: официальные предложения

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Этап 2: проекты

Этап 3: кандидаты

Этап 4: утверждено

Пока функция языка не достигнет стадии 4, нет никаких гарантий, что она станет частью официальной спецификации языка ECMAScript. Однако реализации движка JavaScript, такие как V8 (используется Chrome и Node.js) и Firefox SpiderMonkey, могут добавлять экспериментальную поддержку предложенных функций до достижения 4-го уровня, чтобы разработчики могли тестировать и предоставлять обратную связь.

Текущие кандидаты ES2019

На момент написания этой статьи новых предложений ТК39 на Этапе 4 не было. Однако есть несколько кандидатов на Этапе 3.

Отказ от ответственности: поскольку они являются кандидатами на Этапе 3, окончательная спецификация языка ES2019 может не включать все эти предложения. Фактически, некоторые из этих предложений рассматриваются годами. Кроме того, окончательные реализации могут выглядеть или вести себя иначе, чем текущие кандидаты.

Изменения в классах JavaScript

Предложено несколько изменений в классах, включая объявления полей, частные методы и поля, а также статические методы и поля. Вот пример того, как эти изменения могут выглядеть.

Лично мне не нравится, как выглядит синтаксис хеша для частных членов. Я бы предпочел, чтобы спецификация языка JavaScript использовала для этой цели ключевое слово private, как и в других языках.

trimStart() и trimEnd() для строк

Тип String имеет метод trim(), который удаляет пробел как с начала, так и с конца строки. Предложенные методы trimStart() и trimEnd() позволят дополнительно контролировать удаление пробелов.

Интересная деталь — эта функция уже реализована во многих движках JavaScript. Это один из многих случаев, когда браузеры помогают продвигать язык.

Большие числа с помощью BigInt

Мы можем увидеть примитив BigInt для целых чисел, превышающих текущее максимальное значение 253. A BigIntможет быть объявлено несколькими различными способами.

Узнайте больше о случаях использования и ошибках BigInt.

Сглаживание массивов с помощью flat() и flatMap()

Если вы изучали функциональное программирование, вы можете знать о flat() и flatMap(). flat() предназначен для получения массива значений, когда некоторые из этих значений могут быть больше массивов, и возвращает новый одномерный массив.

flatMap() аналогичен map(), но обратный вызов может возвращать массив, и конечный результат будет сглаживать одномерный массив вместо вложенных массивов.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Другие предлагаемые кандидаты ES2019

Вот список дополнительных кандидатов на Стадию 3 на момент написания этой статьи.

Стандартизированный объект globalThis

Динамический import()

Функции Наследования RegExp

import.meta

Строка matchAll()

Object.fromEntries()

Хорошо сформированный JSON.stringify

Стандартизированный Hashbang для приложений с интерфейсом командной строки (CLI)

Когда ожидать ES2019

В течение последних нескольких лет TC39 последовательно выпускала новые редакции спецификации языка ECMA-262 ECMAScript в июне. Очень вероятно, что мы увидим спецификацию ES2019 в июне этого года.

Попробуйте возможности ES2019 сегодня

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

Протестируйте последнюю версию Node.js

Node.js использует движок Chrome V8 JavaScript. Некоторые из кандидатов могут быть использованы в последней версии Node.js, потому что V8 уже поддерживает их (например, Array.prototype.flat и String.prototype.trimEnd).

Вы можете включить другие функции языка, используя параметры командной строки —harmony-{feature-flag}. Чтобы увидеть, какие флаги поддерживает ваша версия Node.js, используйте параметр —v8-options, чтобы получить их список. Некоторые из кандидатов помечены как «в процессе».

macOS / Linux

Windows

Например, чтобы запустить приложение Node.js, которое содержит класс, который использует объявления полей и статические методы, вы можете использовать следующие параметры CLI.

Тестирование с Babel 7.0+

Babel — это утилита JavaScript, которая позволяет использовать новейшие функции языка, которые еще могут не поддерживаться во всех браузерах и средах. Когда вы пишете «современный» JavaScript, Babel переводит ваш код в эквивалентный синтаксис, совместимый со старыми движками.

Babel поддерживает функции экспериментального языка с помощью плагинов. Babel ведет список поддерживаемых предложений ECMAScript в своем официальном репозитории.

Автор: David Neal

Источник: https://developer.okta.com/

Редакция: Команда webformyself.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Получить

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий