Почему String.prototype.substr () выглядит устаревшим? - PullRequest
0 голосов
/ 04 октября 2018

В стандарте ECMAScript упоминается здесь , что:

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

На MDN также имеется красное предупреждение: String.prototype.substr () MDN doc

Кто-нибудь знает, почему (согласно стандарту ECMAScript) программисты не должны использовать или предполагать существование String.prototype.substr?

1 Ответ

0 голосов
/ 04 октября 2018

Потому что это никогда не было частью стандартизированного языка.Его вообще не было в спецификациях ECMAScript 1 или 2, и он появляется только в ECMAScript 3 в разделе B.2 («Дополнительные свойства») (и последующих выпусках в похожих приложениях), в котором говорится:

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

Более того, substr в значительной степени избыточен с substring, но второй аргумент имеет другое значение, а также с slice.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...