JavaScript е една от модерните технологии, които имат много голяма популярност в индустрията. И JavaScript е широко използван скриптов език, базиран на ECMA скриптове, това е основата на JavaScript. Без значение върху коя част от софтуера работим, като отговорен софтуерен инженер или разработчик ние трябва да познаваме Java Script.

Можем да разгледаме модерния Java Script от наскоро, когато пуснаха стека MEAN (MongoDB, Express, Angular, Node). От този момент нататък Java Script има прекрасен жизнен цикъл. След новата версия от 2015 г. JavaScript преживява най-добрия си период.

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

Хайде да копаем...

ключови думи var, let и const

Преди декларирахме променливи в JavaScript с помощта на променлива var. И не получава никакви грешки, въпреки че използваме тази декларирана променлива извън обхвата. Когато се опитаме да оставим тази променлива извън дефинирания обхват, тя става глобална променлива и можем да я модифицираме, както ни е необходимо, тя създава променлива с глобален обхват. И очевидно успяхме да използваме тази променлива, дефинирана от var във функциите.

Да вземем пример и да видим...

Както виждаме тук, имаме основен for цикъл и той ни дава стойностите за i и k променливи. И те се извикват от външната страна на обхвата. Когато се опитаме да изпълним това, той ни дава изхода по-долу, без да прави никакви проблеми. Тук последната стойност i е 10, а вътрешната стойност k е 9, защото е вътре в цикъла.

Ами ако var k се промени на let k?

Дава ни грешка, че k не е дефинирано, но ние дефинирахме k като let??

Ако дефинираме променлива с помощта на ключова дума letтова означава, че не можем да дефинираме тази променлива извън нейния обхват. Не се вижда извън неговия обхват. В този случай дефинирахме k вътре в for цикъла, така че не можем да получим достъп до него извън for a цикъла.

Как това може да бъде полезно, въпреки че генерира малко сложност и грешки?

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

Така че трябва да проверим и за константната ключова дума. Нека направим промени в кода.

Както виждаме, дава същия изход, както наблюдавахме в ключовата дума let. Същото ли е като ключова дума let? Не, има малки разлики…

Промених скрипта, както виждаме по-долу, сега k се дефинира като константна променлива и се инициализира като 0.

Но дава грешка,

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

cosnt защитава само само ако променливата не е обект или масив. Ако това е масив или обект, все още можем да променим стойността на променливата const.

Функции със стрелки

В JavaScript можем да имаме градски типове функции, нормалните (първата в примера) и функциите със стрелки. С тази функция със стрелка кодът е съставен, за да бъде по-четим и надежден. Можем да избегнем къдрави скоби, ако искаме във функциите със стрелки.

Ето изхода и отново специалността е, че ако имаме само един аргумент, не е необходимо да имаме скоби и фигурни скоби.

Има разлики между нормалните функции и функциите със стрелки, ако използваме ключовата дума „this“ в нормалните функции, тя представлява извикващия функцията. Но когато става дума за функцията със стрелка, ключовата дума „this“ не представлява повикващия. Вижте примера по-долу.

Обекти

Нека обсъдим как съвременният JavaScript обработва обекти с тези примери,

В този пример превозното средство е стандартен обект. Вътре в този обект имаме две ключови стойности, една функция и функция със стрелка. И не е необходимо да добавяме SQRT2 = SQRT2 вътре в обекта, тъй като сме го дефинирали в горната част.

Това е изходът, който получаваме за горния код, когато стартираме и кодът трябва да има част console.log.(vehicle) (в случай, че сте объркани).

Когато активираме динамично свойство, трябва да дефинираме и динамичното свойство, тъй като в горния код не сме го активирали, имаме грешка.

Ето как да дефинирате динамично свойство,

Динамично свойство:Можем да имаме заместител като ключ, ако не знаем ключа по време на изпълнение.

Като пример тук, по време на изпълнение не знаем какво състояние е готово, това може да е състояние на поръчка, състояние на ремонт, състояние на доставка или каквото и да идва от другата услуга. Но тук няма значение каквото и да идва от тази страна, ще се присвои динамично и ще се приложи към нашия динамичен статус и ще работи перфектно.

Замразяване

Когато извикаме Object.freeze() на обект, той ще замрази обекта #. Използва се, за да направи обект неизменен. следователно не можем да добавяме, премахваме или модифицираме компоненти на замразения обект.

Това е много полезно, когато искаме да използваме някои обекти, които не правят никакви промени, функция за функция.

Нека вземем пример тук, както можем да видим по-долу, замразяването не се извиква, то е коментирано и обектът прави промени в себе си.

Нека замразим това и да видим какво ще се случи,

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

Само в freeze() той замразява първо ниво на обекти, но не може да замразява второ ниво на обекти. Нека проверим и това.

Ако извикаме console.log.(цвете); накрая ето изхода, който ще получим,

Както можем да видим тук freeze() е приложим само за обекти от първо ниво.