Я пишу скрипты, которые хочу разбить на несколько модулей. «Базовые» модули будут поддерживать старые браузеры, которые не поддерживают новый синтаксис, такой как === и обещания.
«Расширенные» модули будут загружены, если браузер пройдет проверку функций.
Мой вопрос: как мне проверить, поддерживает ли браузер синтаксис оператора ===
и обещания .then(function(){})
, не используя их сначала и вызывая синтаксическую ошибку в старых браузерах?
if (/*what goes here*/) {
var script = document.createElement('script');
script.src = '/advanced.js';
script.async = false;
document.head.appendChild(script);
}
===
??? - person Charlie Fish   schedule 19.01.2020===
в JS с самого начала, а промисы требуют только полифилла — у них нет специального синтаксиса - person Bergi   schedule 19.01.2020===
к обещаниям - довольно большой скачок. Это одна из причин, по которой этот вопрос был очень плохо написан. Скорее всего, если вы беспокоитесь о поддержке===
, у вас гораздо больше проблем и вещей, о которых вам следует подумать, прежде чем поддерживать Promise. Так что, хотя это забавная мелочь, я не уверен, насколько это актуально для вопроса. Кроме того, простое задание (=
) было добавлено только в 3-м издании. Таким образом, код, изначально написанный OP, даже не будет работать там. - person Charlie Fish   schedule 20.01.2020===
и обещаний. Дата появления оператора '===' в спецификации является подходящим фактом, на основании которого можно оценить, оправдано ли это беспокойство. Этот факт также исправляет небольшое преувеличение, сделанное в предыдущем комментарии (что делает его еще более уместным в контексте). Наконец,=
и===
НЕ имеют одну и ту же дату начала в спецификации, как утверждает последняя часть вашего комментария. - person Lonnie Best   schedule 20.01.2020===
и обещания не имеют ничего общего друг с другом в контексте вопроса ОП. Скорее всего, если вас беспокоит поддержка промисов И===
у вас много другого несовместимого кода. Вы правы, хотя согласно (ecma-international.org/publications/files/ECMA-ST-ARCH/), в нем указано=
. Я привык к тому, что в этих документах обсуждаются только наборы изменений, а не вся спецификация. Виноват. - person Charlie Fish   schedule 20.01.2020===
НАМНОГО. Так что сравнивать две вещи, которые разделены почти 2 десятилетиями, мне кажется очень странным по одному вопросу. - person Charlie Fish   schedule 20.01.2020