Возможно ли в 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());
Комментариев нет:
Отправить комментарий