Страницы

Поиск по вопросам

вторник, 21 мая 2019 г.

Как проверить поддержку браузером spread operator'а?

Возможно ли в JavaScript проверить, поддерживает ли браузер spread operator? Будет ли в этом браузере работать следующая конструкция?
var array = [...arg];


Ответ

в данном случае поможет eval и try..catch
при попытке выполнить код с использованием spread оператора в браузере, который его не поддерживает будет кинуто исключение об ошибке синтаксиса, поэтому проверяющая функция может выглядеть так:
function checkSpread() { try { return eval('[...[]]==""'); } catch (e) { return false; } } console.log(checkSpread());
Текущий сниппет, например в IE11 вернет false, а в Chrome - true
Вместо eval так же можно использовать конструктор Function
function checkSpread() { try { var func = new Function('return [...[]]'); return func() == ''; } catch (e) { return false; } } console.log(checkSpread());

Комментариев нет:

Отправить комментарий