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

«Давай мне быть« постоянной), а не «переменной)!

Srishti Gupta ‘Давай мне быть «Const» (Ant), а не «VAR» (OITIVE)! var, пусть и const – это ключевые слова, которые используются для объявления переменных в JavaScript. VAR поступает под Ecmascript 5-е издание (aka es5), тогда как пусть и const упадут под категорию Ecmascript 6-е издание (aka

Автор оригинала: FreeCodeCamp Community Member.

Srishti Gupta

var , Пусть и Const являются ключевыми словами, которые используются для объявления переменных в JavaScript. var Поставляется под Ecmascript 5-е издание (AKA ES5), тогда как Пусть и Const Подпадайте под категорию Ecmascript 6-е издание (AKA ES6 и ES2015).

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

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

«Давай» против «Const»:

Изменение стоимости в будущем

Рассмотрим пример, указанный ниже:

let iChange = 11;iChange = 12;
console.log(iChange);

Выход:

12

На первой строке переменная iChange объявлен с использованием Пусть Ключевое слово и инициализируется со значением 11. Когда вы приходите к следующей строке, переменная я меняю снова присваивается новое значение, которое составляет 12. Изменение значений переменных, объявленных с использованием Пусть ключевое слово разрешено. Когда на последней строке вы пытаетесь распечатать значение переменной iChange Вы правильно получаете обновленное значение 12.

const PI = 3.14;PI = 22/7;
console.log(PI);

Выход:

Uncaught TypeError: Assignment to constant variable

Здесь переменная ПИ объявлен с использованием Const Ключевое слово и инициализируется со значением 3.14 на первой строке. Когда вы приходите к следующей строке, переменная PI обновляется с новым значением 22/7 Отказ Изменение значений переменных, объявленных с использованием Const Ключевое слово не допускается. Вот почему вторая строка бросает ошибку, показанную на выходе, потому что вы пытаетесь назначить новое значение для постоянной переменной. Поэтому помните, что переменные объявлены с использованием Const Ключевое слово только для чтения и не может быть переназначена любое значение.

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

const PI;

Выход:

Uncaught SyntaxError: Missing initializer in const declaration

Вы знаете, что вы не можете обновить постоянную в будущем. Если вы не инициализируете постоянную во время своей декларации, вы не сможете назначить какое-либо значение для этого! Вот почему вы получаете SyntaxError Когда вы оставляете постоянный неинициализированный.

Как вы думаете, будет выходной код, приведенный ниже?

const passengerBus = {wheels: 8, passengers: 40}passengerBus.passengers = 50;
console.log(passengerBus);

Как вы думаете, ошибка будет брошена ошибка? Давайте проверим вывод. Вот так.

Выход:

{ wheels: 8, passengers: 50 }

До сих пор вы узнали, что переменные объявлены с использованием Const Ключевое слово не может быть назначено какое-либо другое значение. Хотя это правда, есть другая сторона истории тоже. Несомненно, вы не можете назначить новое значение константу, но вы можете манипулировать существующим значением, если это объект или массив.

В указанном выше коде вы не изменяете все значение, назначенное для константы пассажирский пункт Но вы манипулируете недвижимостью внутри него. Вы можете добавить/удалить/обновить свойство внутри объекта, объявленного с помощью Const ключевое слово.

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

const android = ['Marshmallow', 'Noughat', 'Oreo'];arr[3] = 'Pie'; // adding new version
console.log(android);

Выход:

['Marshmallow', 'Noughat', 'Oreo', 'Pie']

Теперь, учитывая, что ключевые слова Пусть и Const Принадлежите к той же категории, следующие пункты зарубеют различия между переменными, объявленными с использованием Пусть / Const Ключевые слова и переменные, объявленные с использованием var ключевое слово:

«Пусть» (или «const ‘) против’ var ‘:

Сфера

Рассмотрим следующий пример:

function foo() {   for (let i = 0; i < 3; i++) {      console.log(i); // statement 1   }   console.log(`All eyes here please: ${i}`); // statement 2}
foo();

Выход:

012Uncaught ReferenceError: i is not defined

Переменная Я объявлен с использованием Пусть Ключевое слово внутри блока для петли. Это означает, что когда заканчивается блок для петли, переменная Я теряет свой объем и больше не доступен за пределами фигурных скобок блока для петли. Таким образом, когда вы пытаетесь получить доступ к переменной Я и распечатайте его значение в соответствии с заявлением 2, вы получите ShareError: я не определяется , как показано на выходе.

Рассмотрим еще один пример объявления переменной с использованием Const ключевое слово:

function placeOrder(status) {   if (status) {      const message = "Order placed successfully!";      console.log(message); // statement 1   }   console.log(message); // statement 2}
placeOrder(true);

Выход:

Order placed successfullyUncaught ReferenceError: message is not defined

Переменная сообщение объявлен с использованием Const ключевое слово внутри IF-блока. Это означает, что когда IF-Block заканчивается, переменная сообщение теряет свой объем и больше не доступен за пределы фигурных скобок IF-блока. Вот почему, когда вы пытаетесь получить доступ к переменной сообщение и распечатайте его значение в соответствии с заявлением 2, вы получите Справочник: сообщение не определено , как показано на выходе.

Рассмотрим пример, который мы обсуждали ранее, где вместо использования Пусть , вы используете вар Ключевое слово для объявления переменной Я :

function foo() {   for (var i = 0; i < 3; i++) {      console.log(i); // statement 1   }   console.log(`All eyes here please: ${i}`); // statement 2}
foo();

Выход:

012All eyes here please: 3

Переменная Я объявлен с использованием вар ключевое слово внутри блока питания. Потому что переменные объявлены с использованием var Ключевое слово функционирует, переменная Я не выходит из охвата, когда заканчивается блок для петли и доступен в любом месте внутри объема функции фюра . Таким образом, на выступление 2, когда вы пытаетесь получить доступ к переменной Я и распечатайте его значение, вы получаете правильный вывод как 3 (увеличенное значение переменной Я После выполнения оператора приращения на петли выполнено), как показано на выходе.

Редитарство

Как вы думаете, что будет выходом следующего кода?

let avengers = 'Infinity War';let avengers = 'Endgame';
console.log(avengers);

Выход:

Uncaught SyntaxError: Identifier 'avengers' has already been declared

В приведенном выше коде вы объявили переменную с именем Мстители используя Пусть ключевое слово И тогда вы объявили его снова на следующей строке. Таким образом, вторая строка бросает SyntaxError Как упоминалось на выходе.

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

var avengers = 'Infinity War';var avengers = 'Endgame';
console.log(avengers);

Выход:

Endgame

Как видно из вывода, вы можете Redeclare переменные, имеющие одно и то же имя в том же объеме, используя var ключевое слово. Значение, содержащееся в переменной, будет окончательным значением, которое вы его назначили.

Подъемник

Это важный момент, который забыт многие, и вы не найдете его во всех статьях. Чтобы понять, что означает этот момент, рассмотрим пример, указанный ниже:

console.log(x);let x = 10;

Выход:

Uncaught ReferenceError: x is not defined

Обратите внимание, что на первой строке в указанном выше коде вы пытаетесь получить доступ к переменной х , который объявлен и назначен значение на следующей строке. По сути, вы пытаетесь получить доступ к переменной, которая еще не была выделена памятью (объявлена). С момента переменной х объявлен с использованием Пусть ключевое слово и переменные, объявленные с использованием Пусть / Const Ключевые слова не поднимаются, это бросает ShareError: X не определен , как показано на выходе.

console.log(x);var x = 10;

Выход:

undefined

Все декларации перемещаются на вершину объема. Обратите внимание, что на первой строке вы пытаетесь получить доступ к переменной х , который объявлен и назначен значение на следующей строке. Теперь, поскольку переменная х объявлен с использованием var Ключевое слово и переменные объявлены с использованием var Ключевое слово поднимается в верхней части их объема в JavaScript, код преобразован в тот, который приведен ниже:

var x;console.log(x);x = 10;

Здесь переменная х объявляется в строке 1 и не назначается никакого значения. Все переменные в JavaScript инициализируются со значением по умолчанию неопределенный , если пользователю не назначается другой ценности. Таким образом, х присваивается значение undefined Что напечатано на второй строке (до X обновляется до 10).

Более крупный вопрос – что предпочитать?

ES6 (AKA ES2015) поддерживается практически всеми браузерами сегодня. Если вы можете следовать этому синтаксису, рекомендуется использовать позволять и Const Ключевые слова для объявления всех переменных в вашем коде.

Теперь, какой выбирать среди позволять и Const ? Название говорит все это.

Оригинал: “https://www.freecodecamp.org/news/let-me-be-a-const-ant-not-a-var-iable-1be52d153462/”