В своем последнем посте я упомянул, как быстро развивается JavaScript, и перечислил все функции, которые будут стандартизированы в языке в следующем выпуске этого года.

Сегодня я хочу поговорить о надмножестве JSON, так что просто чтобы отследить то, о чем я говорил до сих пор, вот список функций ES2019 (или ES10):

  • ̶O̶p̶t̶i̶o̶n̶a̶l̶ ̶C̶a̶t̶c̶h̶ ̶b̶i̶n̶d̶i̶n̶g̶
  • Суперсет JSON
  • Объект.fromEntries
  • Символ.прототип.описание
  • Ревизия Function.prototype.toString
  • Правильно сформированный JSON.stringify
  • String.prototype.{trimStart,trimEnd}
  • Массив.прототип.{flat,flatMap}
  • String.prototype.matchAll

Суперсет JSON

Мы все знаем JSON как легкий формат для обмена данными. Он широко используется, так как его очень просто читать и анализировать, помимо поддержки типов, объектов и массивов.

По сути, JSON задумывался как подмножество inJSON.parse (как утверждает ECMAScript), но это неверно, поскольку строки JSON могут содержать неэкранированные символы U+2028 LINE SEPARATOR и U+2029 PARAGRAPH SEPARATOR, в то время как строки ECMAScript не могут.

Это предложение направлено на решение этой проблемы, поэтому нам больше не нужно использовать escape-последовательность для помещения этих «специальных символов» в строку.

До этого следующий код выдавал ошибку:

Теперь эта проблема исчезнет!

По сути, они расширили производство DoubleStringCharacter и SingleStringCharacter ECMA-262, чтобы разрешить неэкранированные символы U+2028 LINE SEPARATOR и U+2029 PARAGRAPH SEPARATOR. Вот и все! Довольно просто, правда?