Когато започнах своето пътуване в уеб разработката, JavaScript със сигурност изглеждаше като много управляем език в сравнение с някои други. Разбира се, както при всички езици, има много предизвикателства, сложности и нюанси. Трябва да кажа обаче, че JS има повече от тях, отколкото си представях на пръв поглед. Много от неговите тънкости водят до редица често срещани проблеми — 2 от които обсъждам тук — които е важно да знаете и избягвате в стремежа си да станете майстор разработчик.

Злоупотреба с оператори за равенство

Този е толкова често срещан. Има = отделно от == отделно от === ; те са доста сходни, но означават много различни неща в същото време. Един знак за равенство се използва като оператор за присвояване, което означава, че може да изчисли присвоената стойност. Той обаче не прави сравнение между стойностите. Ето един пример:

променлива a = 2;
променлива b = 3;
променлива c = a + b;

console.log(c); //връща 5

Много като основна математика, нали? Наистина. Без сравнения, нищо допълнително.

При другите два оператора нещата са малко по-различни. И двете се наричат ​​оператори за сравнение.

Двойният знак за равенство сравнява две променливи, но игнорира типа данни на променливите. Ще върне истина, ако двата операнда са равни. Ако не, се връща false. По-долу е даден пример:

const num = 123
const stringNum = ‘123’

console.log(num == stringNum); //връща true

true се връща, защото променливите са еднакви или може да се каже, че операндите са равни. Това не трябва да се бърка с типа данни на операндите.

Тройният знак за равенство сравнява две променливи и взема предвид техния тип данни. Ще върне истина, ако двата операнда и техните типове данни са еднакви. Ако не, се връща false. Нека използваме константите, видяни по-горе за този пример:

const num = 123
const stringNum = ‘123’

console.log(num === stringNum); //връща false

false се връща, защото въпреки че променливите са еднакви, техните типове данни не са. num има тип данни число, докато stringNum има тип данни низ.

Неправилно поставяне на модификатори

Някои операции променят оригиналния елемент, други не. Не забравяйте, че първият елемент, който се появява в масива, има индекс 0, а не 1. Например в примера по-долу константата плодове е масив от 3 елемента; индексът на първия елемент („ябълка“) е 0, а не 1. Известно е, че тази често срещана грешка отблъсква начинаещите и дори опитни програмисти правят подобни грешки. И така, кой елемент има индекс 1? Ако сте познали „оранжево“, значи сте абсолютно прави!

Освен това има няколко метода като филтър, при които модифицираният елемент е много неочакван. За повече контекст вижте по-долу:

Какво мислите, че връща тази функционалност? С един поглед човек може да си помисли, че се връща

плодове = [„ябълка“, „слива“]

но в действителност „портокал“ не се премахва от плодове. Филтърният метод тук връща нов масив. (Знам! Странно, нали?) Според мен най-добрият метод за премахване на елемент от масив като примера по-горе е методът splice, а не филтърът.

Всички тези грешки и някои от тях са това, което трябва да направим, за да се научим. Колкото и досадно да е в началото, в крайна сметка ще разберете всичко. Когато го направите, умолявам ви да продължите да практикувате, докато не стане втора природа, и след това практикувайте още малко! Ако обичате това толкова, колкото и аз, наградите от това ще подсладят труда ви. Продължавайте!