Три крутых трюка для JavaScript

3391

Три крутых трюка для JavaScript

Шаг #1

Определение того, является переменная примитивным или не примитивным типом данных.

В Javascript есть примитивные и не примитивные типы данных. Примитивные типы это: булевый тип (boolean), строки (string), числа (number), BigInt, null, Symbol и undefined. Не примитивный тип включает в себя только объекты (Objects).

Зачастую нам надо определить какой тип значения хранится в переменной — примитивный или не примитивный?

Создадим для примера переменную val:

var val; // переменная содержит примитивное или не примитивное значение

Определить какой тип значения хранится в переменной можно с помощью всего нескольких строк кода:

function isPrimitive(val) {
    return Object(val) !== val;
}

Мы используем конструктор объектов чтобы создать объект-обертку для значения переменной.

Если значение переменной относится к примитивному типу данных, то конструктор объектов создаст новый объект-обертку для этого значения.

Если значение не является примитивным типом данных, то это может быть только объект и конструктор объектов вернет его.

Следовательно, строгая проверка (!== или ===) может помочь нам проверить каким типом является значение переменной, примитивным или не примитивным.

Шаг #2

Создание чистого объекта на javascript

Перед созданием чистого объекта, давайте разберемся «Что же такое чистый объект?»

Чистый объект в Javascript — это объект который не содержит в своем прототипе никаких функций.

Обычный объект создается со следующим синтаксисом:

var obj = {};

После проверки obj.__proto__ мы получаем много функций содержащихся внутри него:

Три крутых трюка для JavaScript
Три крутых трюка для JavaScript

А что если мы хотим создать объект, который не имеет внутри себя ни одной функции-прототипа?

Мы можем сделать это используя метод create для конструктора объектов.

var obj = Object.create(null);

После проверки прототипа объекта мы получаем следующий результат:

Объект без прототипов, следовательно мы создали чистый объект.

Шаг #3

Удаление дубликатов из массива

Рассмотрим следующий массив:

var arr = [1, 2, 3, 3, 4, 5, 6, 6, 7, 7, 7, 7];

Как вы заметили в нем множество дублирующихся элементов. Чтобы удалить дубликаты элементов, мы можем использовать Set.

Объекты Set позволяют вам сохранять уникальные значения любого типа, как примитивы, так и другие типы объектов. В Set не может быть повторяющегося значения. Почитать про это больше можно на MDN Web Docs.

Для удаления дубликатов из массива, мы напишем вот такой код:

const newArr = [...new Set(arr)];

Мы создали новый Set содержащий в себе только уникальные значения массива, затем разместили их внутри нового массива.

Символ «…» — это спред-оператор. Почитать про них больше можно на MDN Web Docs.

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

источник