Объяснение распространенного вопроса на собеседовании

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

Вы используете let, var и const в javascript для объявления переменных. До ES6 можно было использовать только var. Теперь при использовании этих объявлений и назначении переменной стало больше функциональности и гибкости.

Если var используется внутри функции, то он доступен только внутри этой функции. Если он не используется в функции, это глобальная переменная, которая будет распознаваться в любом месте вашего кода. Var также поднимается, что означает, что не имеет значения, где вы определяете эту переменную в своем коде в глобальной области, она все равно будет распознана и доступна для использования в коде до вашего фактического объявления. С помощью var вы также можете объявить его и не присваивать ему значение, если вы не захотите позже. Использование var в глобальной области видимости привяжет его к ключевому слову «this», относящемуся к объекту окна.

function printCoins(){
     console.log(numberOfCoins)
}
printCoins()
var numberOfCoins;
numberOfCoins = 5

В приведенном выше примере. Мы выполняем printCoins (), но numberOfCoins объявляется, а затем ему присваивается значение ПОСЛЕ выполнения. В этом случае printCoins () по-прежнему будет печатать «5».

Let и const были введены в ES6, потому что с var слишком много экземпляров, подверженных ошибкам. Var можно легко переназначить значение в любом месте кода, и отлаживать его становилось все труднее. Let решает эту проблему, имея доступ к переменной только в блоке кода, в котором она определена. Let не поднимается, и вы должны присвоить ему значение при его объявлении.

Const аналогичен let. Единственная разница в том, что вы не можете переназначить никакую переменную, объявленную с помощью const. Это гарантирует, что вы случайно не переназначаете ее значение, если это переменная, которую вы хотите оставить постоянной на протяжении всей программы. Однако вы можете редактировать и строить переменные, объявленные с помощью const, например, когда вы управляете массивом с помощью .push () или .shift () или вставляете ключи и значения в объект.

const numberArray = [1, 2, 3, 4, 5]
const numberArray = [5, 4, 3, 2, 1]

Выше так не пойдет. Это вызовет и ошибку. Тем не мение :

const numberArray = [1, 2, 3, 4, 5]
numberArray.push(numberArray[4] + 1)
console.log(numberArray)
//output
numberArray = [1, 2, 3, 4, 5, 6]

Способность объяснять различия между этими тремя объявлениями переменных в javascript-интервью имеет важное значение для его прохождения. Мне задавали этот вопрос почти на каждом техническом собеседовании, которое я давал до сих пор. Я надеюсь, что этот пост поможет немного лучше понять var, let и const.