Методы записи переменных и функций ES6 простое объяснение
Блочные привязки
Объявление переменной — важный метод в языке javascript. При объявлении переменной наиболее важно, какой тип переменной вы хотите объявить и где вы хотите ее объявить. ES6 предоставляет новый способ объявления переменных, чтобы вам было проще управлять областью видимости переменных.
Объявления Var и поднятие
Когда переменная поднимается вверху функции, ее можно применять. Кроме того, его можно рассматривать как глобальную область видимости, если он объявлен вне функции.
Пример
function getCity(condition) { var value; if (condition) { value = "Sylhet"; return value; } else { // value doesn’t exist here return null; } // value doesn’t exist here }
Мы видим, что переменная объявлена в начале функции. Для этого значение в переменной может быть доступом из условия else, но доступ является неопределенным значением, потому что его значение не инициализируется в блоке в else, оно инициализируется только в предложении If.
Объявления блочного уровня
Объявления на уровне блока означают, что объявленная переменная недоступна за пределами области блока. Создаются области блока:
- Внутри функции
- Внутри блока (обозначается символами
{
и}
)
Пусть декларации
Синтаксис объявления let и var одинаков. Вы можете использовать let вместо объявления var. И если вы сделаете это, вы должны помнить, что область действия переменной останется в текущем блоке, потому что var поднимается вверху функции, а let не поднимается. Пример-
function getCity(condition) { if (condition) { let value = "Sylhet"; return value; } else { // value doesn’t exist here return null; } // value doesn’t exist here }
Константные объявления
Когда мы объявили переменную с const, мы не можем изменить это значение, что означает, что это значение никогда не менялось, поскольку оно является постоянным значением.
const maxItems = 5; maxItems = 6; // throws error
Здесь он выдает ошибки, потому что const не может быть изменен.
Связывание блоков в циклах:
В JavaScript чаще всего разработчики хотят, чтобы область видимости переменных на уровне блоков находилась внутри циклов for. Для этого мы должны использовать let, а не var, потому что var поднимается. Следуйте двум приведенным ниже примерам:
for (var i=0; i < 10; i++) { process(items[i]); } // i is still accessible here console.log(i); // 10
Здесь, вне цикла, я доступен, потому что мы используем var
for (let i=0; i < 10; i++) { process(items[i]); } // i is not accessible here - throws an error console.log(i);
Здесь, вне цикла, i недоступен, потому что мы используем let. Таким образом, это выдаст ошибку.
Глобальные привязки блоков
Мы знаем, что let и const отличаются от var. Когда var используется в глобальной области видимости, к глобальному объекту (окну в браузерах) добавляется новое свойство. Это означает, что вы можете перезаписать существующую глобальную переменную, например:
// in a browser var greeting = ‘Hello, Bangladesh’; console.log(window.greeting); // Hello, Bangladeshvar person = ‘Hello there’; console.log(window.person); // Hello there
Если вы используете let или const в глобальной области, в глобальной области создается новая привязка, но к глобальному объекту не добавляется никаких свойств. Итак, здесь вы также не можете перезаписать глобальную переменную с помощью let или const. Пример:
// in a browser var greeting = ‘Hello, Bangladesh’; console.log(window.greeting === greeting); // falsevar person = ‘Hello there’; console.log(window.person); // Hello there console.log(person in window); // false
Параметры функции по умолчанию
В ES5 и более ранних версиях мы должны формально устанавливать значения всех параметров функций. Если мы каким-то образом забываем установить какое-либо значение параметра, функция тут же останавливается и показывает ошибку. Эта проблема решена в версии ES6. Здесь мы можем установить значение по умолчанию в параметре. В этом случае, если мы не устанавливаем значение этого параметра, функция выполняет значение по умолчанию в качестве своего параметра. Пример-
function add(x, y = 5) { //here, 0 is default parameter value return x+ y; } console.log(add(10, 7)); // 17 console.log(add(20)); // 25
Работа с безымянными параметрами
В более ранней версии JavaScript не было возможности использовать безымянный параметр в функции, но ES6 вводит параметр rest, чтобы упростить работу с безымянными параметрами.
Параметр rest допускает любое количество аргументов в виде массива.
function add(…args) { // args is the name for the array return args.reduce((accumulator, current) => accumulator + current, 0); }console.log(add(3)); // 3 console.log(add(3, 3)); // 6 console.log(add(5, 2, 3)); // 10
Функции блочного уровня
ES6 позволяет использовать функции блочного уровня, которые поднимаются поверх функции или поднимаются в глобальную область. Например:
if (true) { console.log(typeof doWork); // “function”function doWork() { // some code }doWork(); }console.log(typeof doWork); // function
Оператор спреда
Оператор расширения позволяет расширить выражение в местах, где ожидается несколько аргументов (для вызовов функций) или несколько элементов (для литералов массива).
Вот некоторые примеры кода:
//In function function myFunction(x, y, z) { } let args = [0, 1, 2]; myFunction(...args);//In array let parts = ['shoulders', 'knees']; let lyrics = ['head', ...parts, 'and', 'toes']; // ["head", "shoulders", "knees", "and", "toes"]
Стрелочные функции
В ES6 мы можем написать функцию в виде сортировщика, который называется стрелочной функцией. Кроме того, его легче читать и писать, чем обычный вызов функций. Например:
//have no parameter const give5 = () => 5;//have single parameter const doubleIt = num => num * 2;// have multiple parameter const add = (x, y) => x + y; console.log(add(20, 10)); // 30
Их должен знать каждый разработчик JavaScript, потому что вы всегда будете сталкиваться с ситуациями, когда вам нужно будет их использовать.
Спасибо, что прочитали эту статью. Я надеюсь, что вы сочли полезным.