Javascript стал моим основным языком программирования как нового разработчика. Он мощный и предоставляет разработчикам различные типы данных для работы. Здесь мы углубимся в две категории типов данных в JavaScript.
Примитивы
Самый простой тип данных в JavaScript — это примитивы. Они включают в себя числа, строки, логические значения, неопределенные, пустые значения и символы. Они хранят отдельные значения, которые нельзя изменить. Вот примеры использования примитивов.
const number = 100; const string = "JavaScript is awesome!" const boolean = true; const undefinedValue; const null = null; const sym = Symbol('symbol');
Концепция, которую важно знать, заключается в том, что примитивы передаются по значению, о чем я подробнее расскажу здесь. В основном это означает, что при назначении примитива переменной или передаче его в качестве аргумента в функцию создается копия значения. Изменения значения в одном месте не влияют на его значение в другом.
Объекты
Теперь объекты немного сложнее, чем примитивы. Они могут хранить наборы данных и иметь свойства и методы, которые мы можем с ними связать. В отличие от примитивов они передаются по ссылке, что означает, что при присвоении объекта переменной или передаче его в качестве аргумента в функцию создается ссылка на исходный объект.
Мы можем создавать объекты в JavaScript, используя литералы объектов, конструктор объектов или создавая собственные объекты. Вот пример использования литералов объектов:
const house = { developer: "Ocean Breeze", yearBuilt: 2017, currentListingPrice: 750,000, bedrooms: 4, bathrooms: 2, hasPool: true, calculateDiscountedPrice: function(discountPercentage) { return this.currentListingPrice - (this.currentListingPrice * (discountPercentage / 100)); } }
В этом примере мы создали объект house
со свойствами developer
, yearBuilt
, currentListingPrice
, bedrooms
, bathrooms
, hasPool
, а также метод calculateDiscountedPrice
, который возвращает цену со скидкой текущей цены листинга после передачи ему числа (discountPercentage
).
Также важно отметить, что в JavaScript массивы и функции также считаются объектами! Другими словами, они также имеют свойства и методы, как и объекты.
Например, вот массив участников группы The Beatles.
const theBeatles = ["John Lennon", "Paul McCartney","George Harrison", "Ringo Starr"]; console.log(theBeatles.length); // -> 4 theBeatles.pop(); console.log(theBeatles) // -> ["John Lennon", "Paul McCartney","George Harrison"]
В этом примере массив theBeatles
имеет свойство length
, возвращающее количество элементов в массиве, которое будет равно 4. Мы можем использовать метод pop()
для массива, чтобы удалить последний элемент в массиве, и наш результат оставит нам только остальные участники группы.
Вот пример использования функции
function sayJoke(name) { return `Why did ${name}'s code break? Because it had too many bugs!`; } console.log(sayJoke.name) // -> "sayJoke" console.log(sayJoke("Sean")); // -> Why did Sean's code break? Because it had too many bugs!
В этом примере функция sayJoke
также имеет свойство name
, возвращающее имя функции.
Заключение
Понимание различий между этими двумя типами данных важно для того, чтобы стать лучшим программистом. Примитивы — это типы данных, которые хранят отдельные значения, в то время как объекты хранят наборы данных и имеют свойства и методы, которые позволяют нам манипулировать данными, которые они хранят, и взаимодействовать с ними.