Дикий Григорий

Full-stack веб-разработчик

JavaScript ES6. Первая часть

Язык JavaScript известен каждому разработчику, даже не заинтересованному в веб-технологиях. Для нас же "строителей" интернета он является чуть ли не единственным языком для программирования client side. В последнее время он повсеместно используется не только в веб-программировании, но также и в других областях деятельности разработчиков. Не так давно появился Node.js, появились куча фраймворков и библиотек, но что более важно - это то, что он становится одним из самых популярных языков программирования в мире. Следуя этой логике, было бы полезно изучить его, чтобы повысить свой вес на рынке труда. Последний стандарт языка ES6 привнес множество изменений, что существенно может сказаться на вашей производительности, как программиста.

Оператор let

В JS(JavaScript) для объявления переменной используется оператор var, но его работа отличается от работы в классических языках. Во-первых, у него нет блочной области видимости, а во вторых переменную можно использовать до ее инициализации, а все дело в том, что переменная объявленная таким образом поднимается вверх и ей присваивается значене undefined. В свою очередь let лишен таких недостатков. За счет того, что let выбрасывает исключение, если использовать переменную до инициализации, то моя рекомендация использовать let в самом начале блока, так мы лишитесь ненужных проблем.

Оператор const

Данный оператор используется для констант. После инициализации константы, она будет доступна только для чтения.


{
    const numb = 2;
    console.log( numb );   // 2
    a = 3;                 // Ошибка!
    const person = {
        name: 'Petr',
        age: 18
    }
    person.age = 25;       // Не ошибка!
}

Стоит учесть, что константа не запрещает к примеру изменять значения массива или свойства объекта, она просто запрещает объекту или массиву получить другую ссылку.

Оператор расширения

Этот оператор позволяет разделить элементы массива (строки, объекта) на самостоятельные значения. Его очень удобно использовать при копировании массивов, при вставке одного массива в другой и т.д


{
    let arrIn = [3, 4];
    let nums = [1, 2, 3, ...arrIn];
}

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


function sum(...values){
  let sum = 0;
  values.forEach(function(value){
    sum += value;
  });
  console.log(sum);
}
sum(1, 2, 3, 4);

for...of

Как известно, оператор for...in делает перебор ключей итерируемого объекта, но он не делает перебор самих значений. Для этих целей в стандарте ES6 появился цикл for...of который перебирает свойства объекта. Этот цикл, в отличае от forEach работает с операторами continue, break, return.


// For ... of
let friends = ['Tudor', 'Anton', 'Ivan'];
for(let friend of friends){
  console.log('Hello,' + friend);
}

Значения по умолчанию

Теперь параметры функции могут принимать значения по умолчанию и больше не надо проверять их при помощи сравнения с undefined.


function hello(name = 'Alex'){
   return 'Hello' + name;
}