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

357
22 августа 2017, 15:30

Возможно ли в JavaScript проверить, поддерживает ли браузер spread operator? Будет ли в этом браузере работать следующая конструкция?

var array = [...arg];
Answer 1

в данном случае поможет 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());

READ ALSO
Слежение за изменениями DOM в iframe

Слежение за изменениями DOM в iframe

Родительская страница и iframe лежат на одном доменеКаким образом можно установить в documentElement iframe MutationObserver?

282
приём multipart/mixed в angularjs

приём multipart/mixed в angularjs

Не найду в документации и в поиске такой сценарий работыКлиент отправляет одну или несколько команд в одном запросе, а сервер отвечает по мере...

273
Как удалить id у елемента?

Как удалить id у елемента?

Подскажите, как можно реализовать скрипт, функционал которого позволяет удалить id у элемента при размере дисплея менее 992px?

257
Вставить Blob файл в input[type=“file”]. Jquery.

Вставить Blob файл в input[type=“file”]. Jquery.

На даний момент я работаю над GUI для админки и столкнулся с такой проблемойЯ принимаю через ajax обьект в таком json(image-масив байтов картинки):

279