Значения типа спецификации ECMAScript 5.1 и 6

Я читаю спецификацию ECMAScript 5.1, но застрял со следующим предложением:

Значения типа спецификации-это артефакты спецификации, которые не обязательно соответствуют какой-либо конкретной сущности в реализации ECMAScript.

Если они не обязательно соответствуют какой-либо конкретной сущности, то чему они соответствуют? Я имею в виду, что значение типа спецификации принадлежит набору значений типа спецификации (очевидно), так что хочет сказать это предложение?

1 ответ

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

    Первая часть этого предложения важна для контекста здесь:

    Тип спецификации соответствует мета-значениям, которые используются в алгоритмах для описания семантики конструкций языка ECMAScript и типов языка ECMAScript. Типы спецификаций: справочник, список, завершение, дескриптор свойства, идентификатор свойства, лексическая среда и запись среды.

    Таким образом, «тип спецификации» в размещенном предложении:

    Значения типа спецификации-это артефакты спецификации, которые не обязательно соответствуют какой-либо конкретной сущности в реализации ECMAScript.

    является одним из таких типов, как «ссылка» или «идентификатор свойства».

    Смысл, который это пытается донести, заключается в том, что ваша реализация свободна реализовать эти концепции, как ей заблагорассудится. Не требуется, чтобы ваша реализация имела какой-то объект, представляющий «ссылочный» тип, или какой-то объект, представляющий «завершение» или любой другой. До тех пор, пока с точки зрения скрипта, работающего на вашей реализации, все выглядит правильно, вы можете реализовать язык так, как вам нравится.