Es6 или также известный как EcamScript2015 привносит множество интересных и многообещающих функций в старый добрый JavaScript. К вашему сведению: ECMAScript - это спецификация языка. JavaScript - это реализация этого языка.

Es6 предлагает много многообещающих функций, таких как стрелочная функция, строка шаблона, const, let и многие другие. Давайте начнем с простых для понимания функций, а затем перейдем к более сложным функциям.

const и let

const (Константы) имеют блочную область видимости (доступны только в локальной области). Вы не можете переназначить значение переменной const, но свойства const могут быть изменены, например

>> const a = {
namv : "Jhon Doe"
}
>> a = {  // this not allowed
name : "Jen Doe"
}
>> a.name = "Jen Doe" // this allowed

let также имеют область видимости блока, но вы можете переназначить значение переменной let, а также изменить их значение.

Строки шаблона

Строка шаблона или литералы шаблона заключаются в `(обратная галочка). Вы можете вставлять переменные в строку шаблона, просто окружая переменную ${}, многострочными строками и многими другими функциями, но, чтобы не усложнять это руководство для начинающих, я не буду подробно останавливаться на каждой функции шаблонных строк, вместо этого давайте разберемся с большинством функций с помощью сравнение обычной строки со строкой шаблона.

let a = 2
let b = 3
String old = "two plus three is : \n" + (a+b)
>> two plus three is :
>> 5
String new = `two plus three is :
              $(a+b)`
>>two plus three is :
>>5

Для получения дополнительной информации о шаблонных строках перейдите по ссылке this.

Стрелочные функции

Стрелочные функции - это более быстрый и простой способ написать некоторые обычные функции.

например для анонимной функции

function(e){ 
console.log(e)
return 1
}           
(e) => { // same as above
console.log(e)
return 1
}

названная функция

const fun1 = function(name){
console.log(`Hello ${name}`)
}
const fun2 = (name) {
console.log(`Hello ${name}`)
}
>>fun1("Jhon")
>>Jhon
>>fun2("Jhon")
>>Jhon

Аргумент по умолчанию

Es6 предоставляет аргументы по умолчанию для функции. Вы можете установить значение аргумента по умолчанию, и если вы передадите значение этого аргумента, оно будет переопределено, и если вы не передадите значение по умолчанию для этого аргумента, для этого аргумента будет принято значение по умолчанию. Давайте рассмотрим пример для лучшего понимания.

const add = (a, b=5) =>{
      console.log(a+b);
}
>>add(3,4)
>>7
>>add(3)
>>8

Импорт и экспорт

Импорт-экспорт важнее там, где важна модульность. Обычный синтаксис импорта - import module from 'path/to/module'. Точно так же вы можете экспортировать любой модуль. давайте возьмем пример для более ясного понимания. Предположим, есть два файла: один - sum.js, содержащий метод, возвращающий сумму двух чисел, а другой - это index.js, где мы хотим суммировать два числа.

---------------------------sum.js-----------------------------------export default function sum(a,b){
 return a+b
}
---------------------------index.js---------------------------------import sum from './sum' // no need to provide format of file
console.log(sum(4,5))
---------------------------console----------------------------------
>>9

Есть много вещей, которые я здесь не затронул, вы можете посмотреть здесь и здесь для получения дополнительной информации об импорте и экспорте.

Класс

Классы в JavaScript - это не что иное, как «специальные функции». Он не вводит новую объектно-ориентированную модель наследования в JavaScript. Процитируя блог MDN, «классы - это в первую очередь синтаксический сахар по сравнению с существующим наследованием на основе прототипов в JavaScript». Класс придает вашему коду красивую структуру и сохраняет порядок.

-------------------------Class Declaration-------------------------
class Person{
   constructor(name,age){ 
    this.name = name
    this.gender = gender 
    this.age = age
   }
}
const Jhon = new Person("Jhon Doe", "Male", 30)
console.log(Jhon.age) // 30
Jhon.age = 25
console.log(Jhon.age) // 25

Ключевое слово Extend используется для наследования.

class Animal{
....
}
class Dog extends Animal{
....
}

Обещания

Обещания - это способы JavaScript для выполнения асинхронного кода. Promise принимает два аргумента: разрешение и отклонение для обработки сценариев.

const myFirstPromise = new Promise((resolve, reject) => {
  // do something asynchronous which eventually calls either:
  //
  //   resolve(someValue); // fulfilled
  // or
  //   reject("failure reason"); // rejected
});
function myAsyncFunction(url) {
  return new Promise((resolve, reject) => {
    const xhr = new XMLHttpRequest();
    xhr.open("GET", url);
    xhr.onload = () => resolve(xhr.responseText);
    xhr.onerror = () => reject(xhr.statusText);
    xhr.send();
  });
}

Вот - пример кода ожидания Promise. Он ждет 5 секунд, чтобы запустить асинхронный код.

Это все, ребята. Мы не рассмотрели многие функции ES6, чтобы не усложнять задачу. Вы всегда можете найти больше возможностей ES6 в блогах MDN.

Как обычно, вот какой-нибудь случайный юмор по программированию, который подбодрит вам день.