Массив (Array) - это не самостоятельный примитивный тип, а производный от Object.
А привычное нам объявление переменных чаще всего является просто синтаксическим сахаром, например:
И вот методы этих объектов (Array, Object, Number, Math и т.п.) могут быть использованы просто как самостоятельные функции для определенных задач.
К примеру метод Array.isArray(variables) позволяет проверить является ли переменная массивом (typeof нам в этом не поможет, потому что typeof {} === "object" и typeof [] === "object").
А вот метод Object.freeze() вы наверняка недавно встречали в этом уроке: Предотвращение мутации объектов. При этом, как я там писал в замечании, это работает не только с объектами, но и с массивами (что и есть тоже суть объекты).
Так вот, метод Object.keys() - это специальный метод, чтобы взять все ключи объекта и вернуть их в новом массиве. Напомню: суть объекта - это Структура Ключ-Значение. К примеру:
Мы видим здесь у объекта три ключа (имена свойств) и по ним три значения. Вот в результате Object.keys(obj) мы получим массив со всеми этими ключами, то есть ['key1,' 'key2', 'key3'].