`JSON.stringify` Bem-formado
JSON.stringify
anteriormente era especificado para retornar strings Unicode malformadas se a entrada contivesse algum surrogate solitário:
JSON.stringify('\uD800');
// → '"�"'
A proposta “JSON.stringify
Bem-formado” altera JSON.stringify
para que ele gere sequências de escape para surrogates solitários, tornando sua saída Unicode válido (e representável em UTF-8):
JSON.stringify('\uD800');
// → '"\\ud800"'
Observe que JSON.parse(stringified)
ainda produz os mesmos resultados de antes.
Este recurso é uma pequena correção que já era há muito necessária no JavaScript. É uma preocupação a menos para os desenvolvedores JavaScript. Em combinação com JSON ⊂ ECMAScript, ele permite a incorporação segura de dados transformados por JSON-stringify como literais em programas JavaScript, além de possibilitar gravar o código gerado em disco em qualquer codificação compatível com Unicode (por exemplo, UTF-8). Isso é extremamente útil para casos de uso de metaprogramação.