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

Что случилось с VAR, пусть и const

Что случилось с VAR, пусть и const? Давайте посмотрим на различия и выясним, что использовать. С тегом JavaScript, WebDev, начинающих, подъема.

Предполагая, что вы знаете некоторые основы JS

Начнем с ключевого слова «старое» var для объявления переменных. var это высший уровень (он же глобальный уровень). Позвольте мне показать вам, что это значит с примером.

function logName(setName){
  if(setName){
    var name = 'Dennis';
    console.log(name);
  } else {
    console.log(name);
  }
}
logName(true); // 'Dennis'

Возвращает Деннис как и ожидалось.

logName(false); // Undefined (?)

Почему это неопределенно? Разве это не должно вернуть Ссылкаерр ? Это называется подъемным. Что делает JavaScript, он ставит VAR на верхнем уровне, поэтому, сказать, в верхней части вашего кода. Вы можете прочитать это следующим образом:

function logName(setName){
  var name;
  if(setName){
    name = 'Dennis';
    console.log(name);
  } else {
    console.log(name);
  }
}

Имеет смысл сейчас, верно? Если вы читаете это так, мы ожидаем, что это будет не определен.

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

~ W3Schools

Так вот где пусть и const Приходите в игру.

пусть и const являются блок -уровнем. Блок – это что -то между открытием { и закрытие }

function logName(setName){
  if(setName){
    let name = 'Dennis';
    console.log(name);
  } else {
    console.log(name);
  }
}
logName(true); // 'Dennis'

Возвращает Деннис как и ожидалось.

logName(false); // Uncaught ReferenceError: name is not defined

Справочная ошибка! Это то, что мы хотим:), потому что мы не ожидаем, что имя переменной будет существовать вообще.

Конст .. против .. позволять

A const Не может быть переназначен, но не является неизменным. Например, вы все еще можете изменить его: взять массив, вы все равно можете подтолкнуть и заплеснуть, но не переназначать новое массив. Давайте посмотрим на то, что происходит.

Повторное согласование константа:

const names = ['Dennis', 'Daan'];

names = ['Harry', 'Faye'];

console.log(names);
Uncaught TypeError: Assignment to constant variable

Это не работает. Мы получаем ошибку типа. Мы не можем переназначить констант.

Но только начальное назначение неизбежно. Мы все еще можем изменить значения массива.

Обновление значения постоянной:

const names = ['Dennis', 'Daan'];

names.push('Harry');
names.push('Faye');

console.log(names);

(4) ["Dennis", "Daan", "Harry", "Faye"]

Больше нет причин использовать VAR?

Если вы пишете правильный код, вы, вероятно, сможете превратить все операторы VAR в операторы LEL без каких -либо семантических изменений. Пусть предпочтительнее, потому что он уменьшает область применения, в которой виден идентификатор. Это позволяет нам безопасно объявлять переменные на месте первого использования. const предпочтительнее позволить. Если вам не нужно мутировать ссылку, используйте объявление Const. Это имеет все преимущества отпуска наряду с уменьшением наличия ненинициализированных переменных и облегчения кода в целом легче. Если вы не уверены, нужно ли вам изменить ссылку, объявите его константом, пока не обнаружите, что вам нужно это сделать.

~ Алуан Хаддад

Когда что использовать что?

Я не говорю, что все должны придерживаться следующей стратегии, но это, кажется, работает для меня:

  • По умолчанию в констант
  • Переключитесь на пусть Если вам нужно изменить значение
  • var можно использовать на верхнем уровне. Но не так полезно, вы также можете положить пусть, если хотите такое поведение.

О, и вы можете использовать: Object.Freeze () → Если вы хотите, чтобы это было неизменным.

Это мой первый блог! Пожалуйста, дайте мне знать, если у вас есть отзывы:)

Оригинал: “https://dev.to/dennisvdalen/what-is-up-with-var-let-and-const-ck9”