нека и const
Нека започнем с най-основната концепция. Въпреки че не е специфично за или се използва конкретно повече в React като някои от другите концепции, които ще видите по-долу. Все още е важно да знаете за let и const.
let и const се използват вместо var. Те бяха въведени за първи път в ES6 и основно заместват var. Вече не е необходимо да използваме ключова дума var за деклариране/инициализиране на променливи. ура!
let и const са с блоков обхват. Блокът е част от код във къдрави скоби „{}“. Така че, ако някоя променлива е декларирана в блок, тогава тя е достъпна само вътре в него.
Нека да видим как можем да инициализираме променливи с let и const.
function variableInitialisation(){ let var1 = "variable1"; const var2 = "variable2"; }
В горния кодов фрагмент и двете променливи са налични само във функцията variableInitialisation()
.
Да видим някои характеристики на let и const.
let
Променливите, декларирани с ключова дума let, могат да бъдат актуализирани.
let var1 = "ABC" var2 = "XYZ" console.log(var2) //XYZ
Ако една и съща променлива е декларирана в два различни обхвата, това е валиден код и не се показва грешка
let var1= "ABC"; if (true) { let var1= "XYZ"; console.log(var1); // XYZ } console.log(var1); //ABC
конст
След като променливата бъде инициализирана, тя не може да бъде актуализирана. Ще изведе грешка при опит за актуализиране на стойността
const var1= "ABC"; var1= "XYZ";// error: Assignment to constant variable.
Докато const обектът не може да бъде актуализиран, свойствата на обекта могат да бъдат актуализирани.
const person= { name: "XYZ", age: 4 } //Not allowed. This will throw an error person= { address: "abc road", phoneNumber: 12345 }
Но свойствата могат да бъдат актуализирани.
const person= { name: "XYZ", age: 4 } //Valid case. person.name = "ABC";
Вижте тази публикация в блог, която включва повече подробности.
Функции на стрелките
Функцията стрелка е алтернативен начин за писане на функция в JavaScript. Това е по-кратка и сбита форма на функция. Можем да го видим много в кода на React.
//Standard way of writing arrow function. if there are no arguments, then just () is fine const addFunc = (arg1, arg2) => { return arg1 + arg2 }
Забележете (arg1, arg2)
. Нарича се като анонимна функция (функция без име). Следвано от ⇒
, което показва, че това е функция със стрелка.
Ако имаме точно един аргумент, който се предава на функцията, тогава можем да пропуснем скобите около аргументите
//Brackets are omitted. const squareFunc = arg1 => { return arg1 * arg1 } //If function doesn't have arguments, then below code is **not a valid syntax**. const alphabet = =>{ return "A" } //For representing no arguments for the function use regular syntax. const alphabet = () => { return "A" }
Освен това, ако единственият оператор във функцията е оператор return, тогава синтаксисът може да бъде съкратен още повече. Тук фигурните скоби, обграждащи израза за връщане и самата ключова дума за връщане, могат да бъдат пропуснати и пак ще бъде валиден синтаксис.
//Original implementation const addFunc = (arg1, arg2) => { return arg1 + arg2 } //Shortened version if the only statement in the function is return statement const addFunc = (arg1, arg2) => arg1 + arg2
Операторите за разпространение и почивка
…
Тези три точки имат силата да променят начина, по който се анализират масивите.
В JavaScript операторите за разпространение и почивка са полезни функции, които ви позволяват да работите с масиви и обекти по-ефективно. Те имат малко различни случаи на употреба, но и двете включват използването на три точки (...
). Нека да разгледаме всеки от тях с примери:
Оператор на разпространение (...
):
Операторът spread се използва за разширяване на итерируем (като масив или низ) в отделни елементи. Може да се използва в извиквания на функции, литерали на масиви или литерали на обекти.
Пример 1: Извиквания на функции
const numbers = [1, 2, 3, 4, 5]; console.log(...numbers); // Output: 1 2 3 4 5 const max = Math.max(...numbers); console.log(max); // Output: 5
Пример 2: Масивни литерали
const array1 = [1, 2, 3]; const array2 = [...array1, 4, 5, 6]; console.log(array2); // Output: [1, 2, 3, 4, 5, 6]
Пример 3: Обектни литерали (плитко копие)
const obj1 = { name: 'John', age: 30 }; const obj2 = { ...obj1, city: 'New York' }; console.log(obj2); // Output: { name: 'John', age: 30, city: 'New York' }
Параметър за почивка (...
):
Операторът rest се използва за представяне на множество елементи като масив. Тя ви позволява да съберете оставащите аргументи на функцията в масив или да заснемете отделни елементи, докато деструктурирате масив.
Пример 1: Функционални параметри
function sum(...numbers) { return numbers.reduce((acc, val) => acc + val, 0); } console.log(sum(1, 2, 3, 4, 5)); // Output: 15
Пример 2: Деструктуриране на масиви
const [first, second, ...rest] = [1, 2, 3, 4, 5]; console.log(first); // Output: 1 console.log(second); // Output: 2 console.log(rest); // Output: [3, 4, 5]
Пример 3: Комбиниране на оператори за почивка и разпространение
const numbers = [1, 2, 3, 4, 5]; const [first, ...rest] = numbers; console.log(first); // Output: 1 console.log(...rest); // Output: 2 3 4 5
Операторът spread разширява елементи, докато операторът rest събира елементи. И двата оператора предоставят мощна функционалност за работа с масиви и обекти в JavaScript.
Унищожаване
Деструктурирането е функция в JavaScript, която ви позволява да извличате стойности от масиви или свойства от обекти в отделни променливи. Той предоставя кратък начин за разопаковане на стойности от структури от данни. Нека проучим как работи деструктурирането с примери:
Деструктуриране на масиви:
Можете да извлечете стойности от масив и да ги присвоите на отделни променливи с помощта на destructurin на масив
Пример 1:
const numbers = [1, 2, 3]; const [a, b, c] = numbers; console.log(a); // Output: 1 console.log(b); // Output: 2 console.log(c); // Output: 3
Пример 2: Пропускане на елементи
const numbers = [1, 2, 3, 4, 5]; const [a, , c] = numbers; console.log(a); // Output: 1 console.log(c); // Output: 3
Пример 3: Елемент за почивка
const numbers = [1, 2, 3, 4, 5]; const [a, ...rest] = numbers; console.log(a); // Output: 1 console.log(rest); // Output: [2, 3, 4, 5]
Разрушаване на обекти:
Можете да извлечете свойства от обект и да ги присвоите на отделни променливи, като използвате деструктуриране на обект.
Пример 1:
const person = { name: 'John', age: 30, city: 'New York' }; const { name, age, city } = person; console.log(name); // Output: 'John' console.log(age); // Output: 30 console.log(city); // Output: 'New York'
Пример 2: Присвояване на имена на различни променливи
const person = { name: 'John', age: 30, city: 'New York' }; const { name: fullName, age: years, city: location } = person; console.log(fullName); // Output: 'John' console.log(years); // Output: 30 console.log(location); // Output: 'New York'
Пример 3: Стойности по подразбиране
const person = { name: 'John', age: 30 }; const { name, age, city = 'Unknown' } = person; console.log(name); // Output: 'John' console.log(age); // Output: 30 console.log(city); // Output: 'Unknown'
Деструктурирането е мощна функция в JavaScript, която ви позволява да извличате стойности от масиви или обекти по удобен начин, което прави кода ви по-сбит и четим.
Методи за масиви (карта, филтър, foreach)
В JavaScript map
, filter
и forEach
са методи за масиви от по-висок ред, които ви позволяват да извършвате операции с масиви по по-сбит и функционален начин. Нека разгледаме всеки от тези методи с примери:
карта:
Методът map
създава нов масив чрез трансформиране на всеки елемент от оригиналния масив въз основа на функция за обратно извикване.
Пример:
const numbers = [1, 2, 3, 4, 5]; const doubledNumbers = numbers.map((num) => num * 2); console.log(doubledNumbers); // Output: [2, 4, 6, 8, 10]
филтър:
Методът filter
създава нов масив чрез филтриране на елементи от оригиналния масив въз основа на условие, дефинирано във функция за обратно извикване.
Пример:
const numbers = [1, 2, 3, 4, 5]; const evenNumbers = numbers.filter((num) => num % 2 === 0); console.log(evenNumbers); // Output: [2, 4]
за всеки:
Методът forEach
итерира всеки елемент в масив и изпълнява функция за обратно извикване за всеки елемент.
Пример:
const numbers = [1, 2, 3, 4, 5]; numbers.forEach((num) => { console.log(num); }); // Output: // 1 // 2 // 3 // 4 // 5
Забележка: За разлика от map
и filter
, forEach
не връща нов масив. Използва се главно, когато искате да извършите страничен ефект (като регистриране) за всеки елемент в масива.
Тези методи предоставят по-функционален и декларативен подход за работа с масиви в JavaScript. Те помагат за опростяване на кода и го правят по-лесен за четене и разбиране.
Благодарим ви, че прочетохте! Надяваме се, че ще намерите тази статия за полезна.