Javascript уже давно является очень популярным языком и широко используется в сообществе.

Вот краткое изложение некоторых полезных расширенных концепций.

Давайте начнем.

1. Подъем

Подъем означает вытягивание чего-либо, javascript также делает то же самое.

В JavaScript есть механизм, который перемещает все объявления переменных и функций в верхнюю часть их области видимости перед выполнением кода.

Вы можете использовать var или function перед его объявлением. Полезно, когда вы знаете требования, но не знаете, как их реализовать?

Подъем выполняется по-разному для var, let и const.

Для вар,

Он работает успешно и записывает 5 в качестве вывода, поскольку объявление x перемещается поверх этого блока.

Кроме того, еще один пример var

Он регистрирует undefined, так как мы инициализировали (присвоили значение) x во время объявления, то есть после печати его значения.

Для пусть и const

Подъем выполняется так же в случае let и const .

Рассмотрим тот же пример, что и var

let и const не объявляются и не инициализируются перед выводом, это дает Reference Error, как в приведенном выше коде.

Для функций,

Подъем можно использовать и для функций

2. var vs let vs const

Мы все обычно используем var, let и const для инициализации переменных в javascript. Давайте узнаем разницу между ними.

До модуля ES6 для объявления переменных повсеместно использовалось var. Но из-за некоторых минусов var в Javascript определен другой способ — let. И const используются для поддержания постоянных значений.

Мы можем различать их следующим образом.

Объем

  • var имеют global (если они объявлены глобально) или functional (если они объявлены внутри функций).
  • let имеет блочную область видимости. Блок означает все, что находится в фигурных скобках {} . Это может быть function или if condition или switch случай.
  • const имеет блочную область действия так же, как let. Мы можем определить const, как показано ниже.
const x = "hello from x";

Декларация

  • var можно обновить или переобъявить, как показано ниже.
  • let можно обновить, но нельзя повторно объявить
  • const не может быть обновлен или объявлен

Вариант использования для использования let вместо var

Рассмотрим следующий пример с использованием var

В приведенном выше примере, если вы намеренно хотите изменить значение x , проблем с кодом не возникнет.

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

вот тот же пример с использованием let ,

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

3. Параметры покоя функции

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

function myFunc(var1, var2)

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

4. Закрытие

Мы знаем, что переменные доступны только внутри областей видимости, но что, если мы хотим, чтобы переменные с блочной областью видимости находились вне этой области видимости??

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

  • Основной пример закрытия,

В этом случае вывод будет hello.

  • Его можно записать и другими способами,

В этом случае вы не можете выполнить myFunc() напрямую, так как он возвращает insideMyFunc. Вы должны назначить его другой переменной myFunc1, которая может выполнить myFunc1() позже.

output: hello
  • Расширенный пример закрытия,

myFunc принимает Hi как x и возвращает insideMyFunc в func1. func1 принимает there как y и, наконец, печатает Hi there .

Вывод будет выглядеть так,

output of func1 : Hi there
output of func2 : Hello there

5. Символы

Символы используются для определения уникальных имен, даже если они совпадают.

let x = Symbol("id");
let y = Symbol("id");
console.log(x == y) //false

Это новые примитивные типы, такие как Number, String и Boolean, обслуживающие свойства объектов. Он используется для создания полностью уникального идентификатора.

Предположим, вы используете стороннюю библиотеку, которая возвращает какой-то случайный пользовательский объект, и вы хотите добавить к этому объекту уникальный id, но он не должен быть доступен за пределами объекта, тогда вы можете использовать Symbol .

Вот пример использования символа и того, как он может быть доступен:

Вы можете узнать больше о символах из этой статьи.

6. Итерации и итераторы

Javascript определяет два протокола iterables и iterators для итераций структуры данных в цикле for…of. Вместо for for…of уменьшает сложность индексов при использовании вложенных циклов.

итерации

Такие структуры данных, как array, string и Sets, имеют метод symbol.iterator(). Они известны как итерируемые объекты.

Результат должен быть,

1
2
3

итераторы

Это объекты, возвращаемые методом symbol.iterator().

Они используют метод next(), который возвращает следующий элемент в последовательности. Он содержит в основном два свойства,

  1. значение:может быть значением следующего элемента
  2. готово:указывает, завершена ли итерация или нет

Выше приведен итератор по умолчанию, но его также можно определить вручную, как показано ниже.

Пример просто варьируется от index до end, увеличиваясь на step значение. Как только итерация завершится, она установит done в true и завершит цикл. Доступ к нему можно получить, как показано ниже

7. Функции генератора

Генераторы возвращают несколько значений, используя yield. Они соответствуют протоколам iterators и iterables, но в отличие от них нам не нужно поддерживать внутреннее состояние переменных с помощью генераторов.

Функции-генераторы можно писать с помощью function*. Они изначально не выполняют свой код. Вместо этого они возвращают специальный тип итератора. Когда мы вызываем встроенный метод генератора next(), функция генератора выполняется до тех пор, пока не встретит ключевое слово yield.

Вот пример функции генератора,

Результат этого,

1
2
3
4

Это все на сегодня. Надеюсь, это даст вам интересные сведения о переменных, функциях и концепциях Javascript. Как всегда, отзывы и предложения более чем приветствуются, пожалуйста, добавляйте комментарии в раздел ответов.

Спасибо за вашу поддержку!

Если вам нравится то, что вы читаете, обязательно 👏 👏👏 это ниже — как писатель это означает мир!

Подпишитесь на Canopasилисвяжитесь с нами в Twitter, чтобы получать новости об интересных статьях!