Самая хорошая точка (IMO) автоматизированных модульных тестов - то, что, когда Вы изменяетесь (улучшаются, осуществить рефакторинг) существующий код, легко протестировать это, Вы не повредили его. Это было бы утомительно для тестирования всего вручную снова и снова.
Что вы подразумеваете под «ограниченным кодом»? Какую спецификацию, использующую этот язык, вы смотрите? (Я не могу найти таких.)
Если вы говорите о суррогатах, тогда да: JavaScript почти ничего не знает (*) о суррогатах и рассматривает все кодовые точки UTF-16 в любой последовательности как действительные. JSON, ограниченный тем, что поддерживает JavaScript, делает то же самое.
*: единственная часть JS, о которой я могу думать, которая делает что-то особенное с суррогатами, - это функция encodeURIComponent, поскольку она использует кодировку UTF-8, в которой попытка закодировать недопустимую суррогатную последовательность не получится. Если вы попытаетесь:
encodeURIComponent('\ud834\udd1e'.substring(0, 1))
, вы получите исключение.
(Угу! SO, похоже, не разрешает размещать символы из-за пределов Базового Многоязычного Уровня. Тск.)
Когда вы декодируете, кажется, что это было бы подходящим использованием для символа замены юникода , U + FFFD
.
Из базы данных символов Unicode :