В момента ES7 е най-предпочитаната версия на разработчиците на JavaScript. Но проблемът е, че все още не се поддържа напълно във всички браузъри. Повечето от функциите обаче се поддържат сега. Но дори и тогава, тъй като не се поддържа напълно, трябва да сте много внимателни при използването му. От време на време с помощта на транспойлер кодът на ES6 трябва да бъде пренесен в ES5. Нека обсъдим нещо за ES6 с чаша кафе.

Повдигане

Повдигането е поведение по подразбиране на JavaScript. Обикновено JavaScript отведе цялата ни декларация към Top, това е поведение по подразбиране и извикването му е Hoisting.

Ето защо можем да извикаме функция преди нейната декларация. Пример:

add();
function add(){
   var a = 5;
   var b = 10;
   var sum = a + b;
console.log(sum);

Основно това е повдигане, но защо работи, ще обясня подробности в следващия блог.

ОБХВАТ

Трябва да имате ясни познания относно ОБХВАТ. SCOPE означава къде можете да използвате вашата декларирана променлива. Ако искате да направите вашата променлива частна или отворена, тогава трябва да знаете за нея.

Основно Обхватът е 2 вида

  1. Локален обхват

2. Глобален обхват

// Local Scope
function bio() {
   var bioText = 'I am javascript learner';
   console.log(bioText);
}
bio();
it will return I am javascript learner

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

// Global Scope
var target = 'make a web application';
function goal(){
  console.log(target);
};
goal();
console.log(goal);
//Both are work fine

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

БЛОКИРАНЕ

Блокът е съставен израз, който има фиксирани граници или ограничения в скоби. Но това е въпрос на let и var. Пример:

var a= 1;
{
  var a= 2;
}
console.log(a); 
it will return you 2;

не 1, но защо? Защото Това регистрира 2, тъй като операторът var x в блока е в същия обхват като оператора var x преди блока.

друг пример:

let b= 1;
{
  let b= 2;
}
console.log(b); 
it will return 1;

Странно? Не, Блокирайте правилата за обхват с декларация let const в строг режим, така че ако декларирате променлива с let извън блока, JavaScript взема първия.

БЛОКИРАНЕ В ЦИКЛ

Обикновено променлива, декларирана извън цикъла, е израз. Обикновено се използва за инициализиране на променлива на брояча. Този израз може по избор да декларира нови променливи с ключови думи var или let. Пример:

let text = '';
for (let i = 0; i < 9; i++) {
  text = text + i;
}
console.log(text);
it will return 012345678

Използва се текстова променлива извън цикъла за променлива let.

ДОБРА ПРАКТИКА ЗА ПИСАНЕ НА КОД

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

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

if (n === 0) {alert('this is an alert');}

Това е напълно погрешна практика. дали,

if (n < 0) { 
  alert('this is an alert');
 }

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

ПАРАМЕТЪР ПО ПОДРАЗБИРАНЕ ВЪВ ФУНКЦИЯ

Параметърът по подразбиране във функцията предава стойности на параметър вътре в параметъра. Инициализира се със стойности по подразбиране, ако няма стойност или се декларира undefined.

Обикновено стойността по подразбиране на параметъра на функциите е недефинирана, независимо дали стойността по подразбиране може да помогне. Пример:

function add (a, b){
  return a + b;
}
add(10, 5);
it will return 15;

но ако не подадете стойността на b, тя ще ви върне недефинирано.

function add (a, b){
  return a + b;
}
add(10);
it will return undefined;

защото не сте предали стойността на b. Сега стойността по подразбиране може да помогне. Пример:

function add (a, b = 3){
  return a + b;
}
add(10, undefined);
it will return 13;

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

ПАРАМЕТЪР ЗА ПОЧИВКА

Друго полезно допълнение към ES6 на JavaScript е параметърът rest. Това позволява параметърът за недефинирана сума да бъде прекаран през функция. Когато дефинираме функция с параметри, ако не е известно колко аргумента могат да бъдат предадени, ние използваме този остатъчен параметър в тази ситуация или използваме обекта аргументи на ES5. Този обект на аргументи на JavaScript ES5 основно работи по същия начин, но този параметър за почивка на ES6 е малко прекалено умен. Останалата част от точката се използва в същия параметър като оператора за разширяване на шева. И така, като разгледате тези три точки (...) места, трябва да разберете кога се използват за параметри на почивка и кога се използват като оператори за разпространение.

function team(...player) {
   for(var i = 0; i < player.length; i++) {
      console.log(player[i]);
   }
}
team('Shakib', 'Tamim', 'Mashrafee')
it will return 
Shakib
Tamim
Mashrafee

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

Оператор на разпространение (...)

Друго умно нещо в оператора за разпространение ES6. Изглежда като сложно. Но ако забележите малко или след като го използвате няколко пъти, ще разберете колко е полезно. И честно казано, това също е вид синтактична захар.

Истинската задача на оператора за разпространение е да раздели всички повтарящи се данни като масиви или низове в тяхната собствена позиция. Точно като бенгалското значение на разпространение. Операторът за разпространение всъщност са тези три точки (…).

let arr = [1,2,3];
let arr2 = [4,5];
arr = [...arr,...arr2];
console.log(arr);
it will return [1,2,3,4,5]

ФУНКЦИЯ СТРЕЛКА

Друго ново допълнение към ES6 е функцията стрелка. Също известна на мнозина като функцията Fat Arrow. Не е наистина ново, просто синтактично приятно за гледане и много по-чисто. Има една поговорка в света на езиците за програмиране, наречена Синтактична захар. Което означава, че е на път да бъде и най-измамното време на годината. Въпреки че функционалността на функцията Arrow е почти същата като тази на традиционния Javascript, има някои разлики.

const name = () => console.log('Im Javascript');
name();
it will return Im Javascript

Лично аз обичам този Дебелак.......

НЕЗАБАВНО ИЗВИКАН ФУНКЦИОНАЛЕН ИЗРАЗ

Ако искате да запазите поверителността или ако не искате да излагате данните във функция, тогава EIFI може да бъде много полезен. Пример:

(function aDemoFunc() {
   var msg = 'Hello ES6';  
   console.log(msg);
})();
it will return Hello ES6

Ще се видим в следващия блог…….