Это похоже на почти более 15 интервью, которые я дал за последние 3 года, и из этого опыта я узнаю некоторые основные общие вопросы (серьезно, слишком базовые 😅), к которым вы должны быть готовы, прежде чем идти на любое интервью JS.

Начнем с каменного века концепций Javascript (объявления переменных) 😜

Q1. Вы работали над ES6?
A1. Да

Q2. Как мы определяем переменные в ES6? 💁‍♂
A2. Мы используем let and constkeywords для определения переменной.

Q3. Есть ли разница между var и let? Если да, объясните 🤔
A3. Да, у let и var есть существенные различия.
1. let имеет область видимости блока, в то время как var имеет функциональную область видимости в Js.
2. Мы не можем повторно объявить переменную, назначенную с помощью let, в то время как мы можем с var, например

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

Q4. Хорошо, вы упомянули об ограничении охвата. Как это работает с точки зрения let и var 😏
A4. У нас есть два основных типа области действия
1. Глобальная область действия - в основном, когда мы объявляем что-то из каждого {}. и каждые function

2. Локальная область действия - когда мы объявляем что-то внутри {} или внутри function, эта переменная становится локальной.

а. Функциональная область. Когда мы объявляем переменную внутри функции, эта переменная ограничивает область действия этой функцией. Мы не можем получить к нему доступ вне функции. Пример

б. Область действия блока - когда мы объявляем переменную внутри {}, область действия этой переменной ограничивается этим блоком. Как в циклах for, if-else и т. Д.

Q5. Скажите мне, что для этого нужно (спрашивают почти в каждом интервью)

for(var count = 0; count< 5; count++){
 setTimeout(() => console.log(count))
}

A5. Вывод будет - ›5 (5 раз), пояснение:

Q6. Можете ли вы сделать вывод вышеуказанного вопроса последовательным, например 0,1,2,3,4 вместо 5 (5 раз)?
A6. Конечно, мы можем использовать let вместо var, поскольку let - это элемент области видимости блока, и его значение обновляется с каждой итерацией блока цикла for.

We can also get same output by using closure. Also there is a concept of Event loop which is being used in this question. Will get back to these concepts in upcoming blogs.

Бонус - переменные, объявленные с помощью let, не поднимаются!

Это лишь большинство общих вопросов, с которыми вы можете столкнуться на собеседовании по JS.
Также, пожалуйста, предложите, если что-то, по вашему мнению, не соответствует сути.

Надеюсь, вы найдете это чтение полезным. Спасибо 😄

Удачи и будьте готовы, потому что JS великолепен ❤️