Рубрики
Без рубрики

JS Интервью за 2 минуты / var ⚔️ Пусть ⚔️ const

Давайте постараемся выяснить, как ответить на общие вопросы JS в интервью. Tagged с JavaScript, Teamscript, начинающими, карьерой.

Вопрос: Какие различия между объявлением переменных с использованием VAR, пусть и Const?

✨ Бонус: Что такое поднимание?

Краткий ответ: Это все способы объявления переменных. var это наследие, Пусть и Const Новые, где Пусть предназначен для соревновательной переменной ссылки и Const для неизменной ссылки.

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

Дольше ответ: Давайте начнем с var Отказ Синтаксис довольно простой.

var x = 1, y = 2;
console.log(x, y) // 1, 2

Как вы можете догадаться, это наследие по какой-то причине. И вы были правы, есть даже несколько причин.

Например, var Декларация происходит до Любое выполнение кода, поэтому вы можете в основном использовать переменную в коде и объявить его позже.

x = 2
var y = x + 1
console.log(y) // 3
var x;

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

var y = x + 1
console.log(x) // undefined
console.log(y) // NaN
var x = 2;

Итак, когда вы используете переменную до определения, называется Подъем ✨ (не используйте это. Действительно.)

Реальная проблема с var Это сфера применения. var Объявите переменную для текущей области функции, но не для блока. Здесь.

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

Угадай, что. Вывод – 5,5,5,5,5 .

🤯🤯🤯.

Хорошо, хорошо, это было темные времена, и вы сейчас в безопасности (почти).

Пусть и Const вступают в игру. Они будут работать именно так, как вы ожидаете (почти). Вернуться к предыдущему примеру.

// Notice let
for (let i = 0; i < 5; i++) {
  setTimeout(() => console.log(i))
}

Вывод в порядке, это 0,1,2,3,4 Отказ

Итак, в чем разница между позволять и конститут ? В основном Пусть для переменных, которые вы хотите иметь возможность обновить и Const для статических.

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

let a = 1
a = 2 // 👌

const b = 1
b = 2 // Error: Assignment to constant variable.

Но Const не делает сложные типы в качестве массивов или объектов неизменными.

const y = [1]
y.push(2) // 👌
console.log(y) // [1,2]

🤷 Жизнь странная, да 🤷

Реальные приложения:

Так что касается реальных приложений, существует полезное разрушительное задание.

let [a, b] = [1,2,3]
console.log(a, b) // 1, 2

let [c, ...d] = [1,2,3]
console.log(c, d) // 1, [2,3]

let { e, f } = { a: 1, e: 2, f: 3 }
console.log(e, f) // 2, 3

let { g, ...h } = { a: 1, g: 2 }
console.log(g, h) // 2, { a: 1 } 

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

let { password, ...safeUser } = user
return safeUser 

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

Ресурсы: MDN/var MDN/Пусть MDN/Const.

Другие сообщения:

  • JS Интервью за 2 минуты/воспоминания 💭
  • Скрытая сила
  • а также &&

Кстати, я опубликую более веселые вещи здесь и на Twitter Отказ Давайте будем друзьями 👋

Оригинал: “https://dev.to/kozlovzxc/js-interview-in-2-minutes-var-let-const-39p1”