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

Когда извлечь выгоду из своих постоянных JavaScript

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

Автор оригинала: Brandon Wozniewicz.

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

Как мы определим термин «постоянный»?

В программировании постоянная ей что-то не меняется.

Итак, JavaScript дает нам способ объявить значение, которое не может быть изменено? Прежде чем мы ответим на это, давайте посмотрим на корни настоящей Конвенции.

Конвенция о капитализации имеет корни в C

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

JavaScript, с другой стороны, это интерпретированный язык. Переводчик читает ваш код, строка, как он работает.

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

В C, я могу объявить переменную, как это:

int;

Или, постоянная, как это:

#define toughinday 24.

Второй пример называется Символическая константа Отказ Символические константы могут быть последовательностью символов, числовой постоянной или строкой. Они также называют примитивными значениями. Примитивные значения в JavaScript представляют собой строки, цифры, логические, ноль, не определенные, символ (не путать с символическими константами) и Big Int.

Теперь давайте пересмотрим компиляцию.

Перед компиляцией существует фаза предварительной компиляции. Здесь предварительно компилятор заменяет все экземпляры символических констант с соответствующим значением. Компилятор никогда не знает, что программист написал ЧАСЫ ЛИНИДЕР Отказ Только это видит номер 24 Отказ

Капитализация помогает программисту увидеть эти действительно постоянные ценности.

#define ers_in_day 24.

Константы JavaScript отличаются, чем символические константы

Перед ES6 мы сохранили большинство значений в переменных, даже те значения, которые вы хотели оставаться постоянными.

Капитализация помогла нам увидеть ценности, которые мы хотели оставаться постоянными.

var HOURS_IN_DAY = 24;
var hoursRemaining = currentHour - HOURS_IN_DAY;
var MY_NAME = 'Brandon';
MY_NAME = ... // oops don't want to do this.

ES6 представила декларацию Const который не является «постоянным» в чистом смысле.

ES6 добавил условия Const и Пусть Как способы создавать переменные с различными намерениями.

С помощью этих двух терминов вы можете подумать, что мы либо:

  1. Не нужно использовать что угодно, так как мы можем четко видеть, какие переменные предназначены для того же, что остаются прежними
  2. Мы должны использовать все, что мы объявляем с Const Отказ

По определению, Const Создает постоянную ссылку только на чтение на значение. Это не означает, что ценность, которое он обладает неизменным. Только это говорит о том, что Идентификатор переменной не может быть переназначен Отказ

Другими словами, некоторые Const Ссылки могут измениться.

const firstPerson = {
  favoriteNumber: 10,
};
const secondPerson = firstPerson;
console.log(secondPerson.favoriteNumber); //10
firstPerson.favoriteNumber +=1;
console.log(secondPerson.favoriteNumber); //11

Приведенный выше пример показывает, что декларация Const не гарантирует, что переменная неизменяется.

Const только мешает нам попытаться переназначить имя переменной. Это не останавливает свойство объекта от меняется. ПОМНИТЕ: Объекты проходят передачу.

// "TypeError: Assignment to constant variable."secondPerson = 'something else';
const secondPerson = 'Me'
secondPerson = 'something else';

Итак, для JavaScript мы должны выйти за рамки просто искать Const Декларация. Нам нужно задать два вопроса, чтобы определить, является ли переменная постоянной:

  1. Это значение переменной примитивы?
  2. Намеряем ли мы сохранить имя переменной, указывающей на то же значение нашей программы?

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

Обратите внимание, что я сказал: «Мэй». Дух настоящей Конвенции происходит с разных языков, которые имели актуальные константы. JavaScript не. По крайней мере, в чистом смысле. Это может быть, почему вы видите эту конвенцию реже, чем можно ожидать. Airbnb имеет отличный раздел в своем руководстве в стиле с их взять здесь.

Ключ на вынос Чтобы распознать определение определения постоянной в JavaScript должна включать намерения программиста.

Кроме того, не каждая конвенция от одного языка имеет смысл на другом языке. Наконец, я могу только представить, что многие конвенции были использованы задолго до того, как IDes имели возможности, которые у них есть сегодня. Я убежден, что мой IDE с удовольствием рассказывает мне, что я не прав. Это происходит много.

Спасибо за чтение!

ворота

Следуй за мной на Твиттер

Примечания

  • Вы можете удивить, почему я не использовал PI в любом из этих примеров. Сокращение, особенно двухбуквенные аббревиатуры – имеют тенденцию быть всегда капитализированными, либо всегда строчными по конвенции.