Чем отличается переменная от константы
Перейти к содержимому

Чем отличается переменная от константы

  • автор:

Основы javascript

Для хранения данных в программе используются переменные и константы . Переменные предназначены для хранения каких-нибудь временных данных или таких данных, которые в процессе работы могут менять свое значение. Константы, наоборот, предназначены для хранения неизменных данных, значение которых должно оставаться постоянным в течение всей программы.

Объявление переменных

Для создания переменных применяются операторы var и let . Например, объявим переменную username :

var username;

Объявление переменной представляет отдельную инструкцию, поэтому завершается точкой с запятой.

Аналогичное определение переменной с помощью оператора let :

let username;

Каждая переменная имеет имя. Имя представляет собой произвольный набор алфавитно-цифровых символов, знака подчеркивания (_) или знака доллара ($), причем названия не должны начинаться с цифровых символов. То есть мы можем использовать в названии буквы, цифры, подчеркивание и символ $. Однако все остальные символы запрещены.

Например, правильные названия переменных:

$commision someVariable product_Store income2 myIncome_from_deposit

Следующие названия являются некорректными и не могут использоваться:

222lol @someVariable my%percent

Также нельзя давать переменным такие имена, которые совпадают с зарезервированными ключевыми словами. В JavaScript не так много ключевых слов, поэтому данное правило не сложно соблюдать. Например, следующее название будет некорректным, так как for — ключевое слово в JavaScript:

var for;

Список зарезервированных слов в JavaScript:

await, break, case, catch, class, const, continue, debugger, default, delete, do, else, enum, export, extends, false, finally, for, function, if, import, in, instanceof, new, null, return, super, switch, this, throw, true, try, typeof, var, void, while, with, yield

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

Также не рекомендуется объявлять переменные с именем, которые аналогичны уже имеющимся глобальным переменным. Например, для вывода на консоль используется метод console.log() . Здесь console — это имя глобального объекта, и мы можем определить переменную с этим именем.

let console; // определяем переменную console console.log("Hello"); // ! Ошибка

Определение переменной console приведет к тому, что она переопределит одноименный глобальный объект console, и при вызове метода console.log() мы столвнемся с ошибкой.

Подобных глобальных объектов не так много, кроме console это также alert, blur, close, closed, document, focus, frames, location, navigator, open, screen, window .

При названии переменных надо учитывать, что JavaScript является регистрозависимым языком, то есть в следующем коде объявлены две разные переменные:

let username; let userName;

Через запятую можно определить сразу несколько переменных:

var username, age, height; let a, b, c;

Присвоение переменной значения

После определения переменной ей можно присвоить какое-либо значение. Для этого применяется оператор присваивания ( = ):

var username; username = "Tom";

То есть в данном случае переменная username будет хранить строку «Tom». После присвоения переменной значения мы можем что-то сделать с этим значением, например, выведем его на консоль:

    METANIT.COM      

Переменные в JavaScript

Можно сразу присвоить переменной значение при ее определении:

var username = "Tom"; let userage = 37;

Процесс присвоения переменной начального значения называется инициализацией .Можно обратить внимание, что одна переменная определена с помощью let , а другая — с помощью var . Конкретно в данном случае это не имеет значения, и мы могли бы определить обе переменных либо с помощью let , либо с помощью var . Но в целом между let и var , есть различия, которые будут рассмотрены в одной из следующих статьях.

Можно сразу инициализировать несколько переменных:

let name1 = "Tom", name2 = "Bob", name3 = "Sam"; console.log(name1); // Tom console.log(name2); // Bob console.log(name3); // Sam

JavaScript позволяет некоторые вольности при определении переменной. Так, мы можем НЕ использовать ключевые слова let или var

    METANIT.COM      

Хотя мы можем так делать, но это не самый рекомендуемый подход. В одной из следующих статей мы увидим, с какими проблемами мы можем столкнуться при подобном подходе.

Изменение переменных

Отличительной чертой переменных является то, что мы можем изменить их значение:

    METANIT.COM      

Изменение переменных в JavaScript

Константы

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

const username = "Tom";

Если мы попробуем изменить ее значение, то мы столкнемся с ошибкой:

const username = "Tom"; username = "Bob"; // ошибка, username - константа, поэтому мы не можем изменить ее значение

Константы const в JavaScript

Также стоит отметить, что поскольку мы не можем изменить значение константы, то она должна быть инициализирована, то есть при ее определении мы должны предоставить ей начальное значение. Если мы этого не сделаем, то опять же мы столкнемся с ошибкой:

const username; // ошибка, username не инициализирована

Когда использовать переменные, а когда константы? Если вы уверены, что значение в процессе программы не будет изменяться, тогда это значение определяется в виде константы. Если неизвестно, будет ли значение меняться или нет, то рекомендуется определить значение как константу. А в случае если в далее потребуется его изменить, то просто можно изменить определение значения с const на var / let .

  • Глава 1. Введение в JavaScript
    • Что такое JavaScript
    • Первая программа на JavaScript
    • Выполнение кода javascript
    • Подключение внешнего файла JavaScript
    • Консоль браузера и console.log
    • Переменные и константы
    • Типы данных
    • Арифметические операции
    • Поразрядные операции
    • Условные выражения
    • Условные операторы ?: и ??
    • Преобразование данных
    • Введение в массивы
    • Условные конструкции
    • Циклы
    • Отладка и отладчик
    • Функции
    • Параметры функции
    • Результат функции
    • Стрелочные функции
    • Область видимости переменных
    • Замыкания
    • Функции IIFE
    • Рекурсивные функции
    • Переопределение функций
    • Hoisting
    • Передача параметров по значению и по ссылке
    • Объекты
    • Ключевое слово this
    • Вложенные объекты и массивы в объектах
    • Копирование и сравнение объектов
    • Проверка наличия и перебор методов и свойств
    • Объекты в функциях
    • Функции-конструкторы объектов
    • Расширение объектов. Прототипы
    • Функция как объект. Методы call и apply
    • Функция Object.create. Конфигурация свойств объектов
    • Наследование прототипов
    • Наследование прототипов конструкторов
    • Инкапсуляция свойств. Геттеры и сеттеры
    • Деструктуризация
    • Оператор ?.
    • Константные объекты. Запрет изменения объекта
    • Классы
    • Приватные поля и методы
    • Статические поля и методы
    • Свойства и методы доступа
    • Наследование
    • Создание массива и объект Array
    • Массивы и spread-оператор
    • Операции с массивами
    • Наследование массивов
    • Строки и объект String
    • Шаблоны строк
    • Объект RegExp. Регулярные выражения
    • Синтаксис регулярных выражений
    • Квантификаторы в регулярных выражениях
    • Поиск в строке
    • Группы в регулярных выражениях
    • Регулярные выражения в методах String
    • Конструкция try..catch..finally
    • Генерация ошибок и оператор throw
    • Типы ошибок
    • Обработка ошибок и стек вызова функций
    • Объект Date. Работа с датами
    • Объект Math. Математические операции
    • Объект Number
    • Символы
    • Proxy
    • Итераторы
    • Генераторы
    • Множества Set
    • Map
    • WeakSet
    • WeakMap
    • Введение в DOM
    • Свойства объекта document
    • Поиск элементов на веб-странице
    • Объект Node. Навигация по DOM
    • Элементы
    • Создание, добавление и удаление элементов
    • Управление атрибутами элементов
    • Управление стилем и классами элементов
    • Создание своего элемента HTML
    • Введение в обработку событий
    • Обработчики событий
    • Передача данных в обработчик события. Объект Event
    • Распространение событий
    • События мыши
    • События клавиатуры
    • Программный вызов событий
    • Определение своих событий
    • Формы и их элементы
    • Кнопки
    • Текстовые поля
    • Флажки и радиокнопки
    • Список select
    • Validation API. Валидация элементов формы
    • Управление валидацией форм
    • Browser Object Model и объект window
    • Диалоговые окна и поиск на странице
    • Открытие, закрытие и позиционирование окон
    • История браузера. History API
    • Объект location
    • Объект navigator. Получение информации о браузере
    • Таймеры
    • Работа с JSON
    • Работа с XML
    • Куки
    • Web Storage
    • Асинхронные функции и коллбеки
    • Введение в промисы
    • Получение результата операции в Promise
    • Обработка ошибок в Promise
    • Создание цепочек промисов
    • Функции Promise.all, Promise.allSettled, Promise.any и Promise.race
    • Async и await
    • Асинхронные итераторы
    • Асинхронные генераторы
    • XMLHttpRequest и отправка ajax-запросов
    • Загрузка HTML с помощью XMLHttpRequest
    • Загрузка XML с помощью XMLHttpRequest
    • Загрузка JSON с помощью XMLHttpRequest
    • Отправка данных в ajax-запросе
    • Отправка форм в ajax-запросе
    • Promise в Ajax-запросах
    • Функция fetch
    • Объект Response и его свойства
    • Получение данных из ответа
    • Настройка параметров запроса. Отправка данных
    • Создание клиента для REST API
    • Web Socket API
    • Server-Sent Events
    • Введение в Internationalization API
    • Локализация списков и Intl.ListFormat
    • Локализация дат и времени
    • Локализация названий и Intl.DisplayNames
    • Форматирование чисел и Intl.NumberFormat
    • Int.Collator и сравнение строк
    • Введение в модули
    • Импорт модуля
    • Экспорт и импорт компонентов модулей
    • Экспорт и импорт по умолчанию
    • Использование псевдонимов при экспорте и импорте
    • Динамическая загрузка модулей
    • Canvas и его контекст. Рисование прямоугольников
    • Настройка рисования
    • Фоновые изображения
    • Создание градиента
    • Рисование текста
    • Рисование фигур
    • Рисование изображений
    • Добавление теней
    • Редактирование пикселей
    • Трансформации
    • Рисование мышью
    • Сохранение и восстановление состояния canvas
    • Анимация на canvas
    • Создание, открытие и удаление базы данных
    • Управление базой данных в IndexedDB
    • Выполнение запросов к базе данных
    • Добавление объектов в хранилище
    • Получение данных из IndexDB
    • Обновление объектов хранилища
    • Получение количества объектов
    • Удаление данных из хранилища
    • Курсоры
    • Перетаскивание элементов с помощью Drag-and-Drop API
    • Установка и послучение перетаскиваемых данных с помощью DataTransfer
    • Загрузка файлов
    • Чтение файлов с FileReader
    • Отслеживание процесса загрузки файла
    • Определение и выполнение веб-воркера
    • Обмен сообщениями между веб-воркером и основным потоком
    • Geolocation API
    • Battery Status API
    • Web Speech API. Синтез речи
    • Web Speech API. Распознавание речи
    • Web Animation API
    • Паттерн пространство имен
    • Паттерн Модуль
    • JavaScript в CSS

    Помощь сайту
    410011174743222
    Перевод на карту
    Номер карты:
    4048415020898850

    Copyright © metanit.com, 2024. Все права защищены.

    Чем отличается переменная от константы

    Константа, переменная — это базовые понятия в любом языке программирования. Дадим им определения.

    Константа — это величина, которая при выполнении программы остаётся неизменной.

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

    Описание и инициализация переменных

    Прежде чем использовать в программе какую-то переменную, надо дать ей описание , то есть сказать, какое имя имеет переменная и каков её тип. Вначале указывается тип переменной, а затем её имя. Например:

    int k; // это переменная целого типа int

    double x; // это переменная вещественного типа удвоенной точности

    Если имеется несколько переменных одного типа, то допускается их описание через запятую в одном операторе, например:

    После описания переменной её можно использовать, но возникает вопрос: а какое значение имеет переменная сразу же после её описания? Ответ таков: в программе на языке C или C++ переменная после описания имеет произвольное значение , то есть ей просто выделяется свободный участок памяти и на этом всё заканчивается. В переменной хранится та последовательность двоичных цифр, которая была там до выделения памяти под эту переменную. Такой подход таит определённую опасность: можно по ошибке использовать в выражении переменную, которой не было присвоено ни какое значение:

    Так как переменная x ни как не была определена, т. е. имела произвольное значение (чаще всего — это очень большое число или наоборот — очень маленькое), то и переменная y получит явно не то значение, на которое рассчитывал пользователь.

    Чтобы избежать такой ошибки, Бьерн Страуструп рекомендует инициализировать переменные , то есть не просто выделять память под переменные, но и задавать им при этом необходимые значения. Например:

    double a=3, b=4, c=5;

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

    Задание и использование констант

    Выше было дано определение констант. Теперь рассмотрим работу с константами более подробно.

    Все константы вне зависимости от типа данных можно подразделить на две категории: именованные константы и константы, которые не имеют собственного имени. Например:

    25 — константа целого типа;

    3.14 — вещественная константа;

    ‘A’ — символьная константа.

    Все три приведённые здесь константы не имеют имени, они заданы своим внешним представлением и используются в программе непосредственно, например так:

    int k=25; // переменная k инициализирована константой — целым числом 25.

    В ряде случаев константе удобнее дать имя и использовать её далее по имени. Обычно это делается для математических или физических констант.

    В языке C был единственный способ создания именованных констант — с помощью директивы препроцессора #define , например:

    t = PI * 2; // здесь использована именованная константа PI, заданная выше

    В языке C++ появился ещё один способ — использование константных переменных , то есть переменных, которые нельзя изменять после инициализации. Рассмотрим на том же примере:

    const double PI=3.14; // здесь PI — константная переменная

    В чём преимущество от использования константных переменных вместо задания констант с помощью директивы препроцессора #define ? Всё очень просто: при использовании константной переменной компилятор проверяет правильность задания константы, и если она будет задана неверно, то будет выдана ошибка именно в операторе, в котором дано определение константной переменной.

    Если использована именованная константа, заданная директивой препроцессора #define , то ошибка будет показана только там, где используется константа. Например:

    // в директиве препроцессора сделаем ошибку:

    t = PI * 2; // в этой строке компилятор выдаст ошибку,

    // хотя на самом деле ошибка допущена гораздо раньше!

    Чем отличается переменная от константы

    Константа, переменная — это основополагающие понятия в любом языке программирования. Дадим определения этим понятиям.

    Константа — это величина, которая при выполнении программы остаётся неизменной.

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

    Описание и инициализация переменных

    Прежде чем использовать в программе какую-то переменную, надо обязательно дать её описание , то есть сказать, какое имя имеет переменная и каков её тип. Вначале указывается тип переменной, а затем её имя. Например:

    int k; // это переменная целого типа int

    double x; // это переменная вещественного типа удвоенной точности

    Если имеется несколько переменных одного типа, то допускается их описание через запятую в одном операторе, например:

    После описания переменной её можно использовать, но возникает вопрос: а какое значение имеет переменная сразу же после её описания? Ответ таков: в программе на языке C# значение переменной после описания не определено. Такая переменная может использоваться в левой части оператора присваивания, но её нельзя использовать в выражении или в правой части оператора присваивания. Например:

    y=z+1; // а так нельзя! Переменная z не определена

    Для последнего оператора компилятор языка C# выдаст сообщение об ошибке. Этим свойством ( нельзя использовать переменную, которая не получила ни какого значения ) язык C# выгодно отличается от своих предшественников — языков С и С++.

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

    double x=3, y=4, z=5;

    Инициализация переменных выполняется один раз на этапе компиляции и ни как не сказывается на скорости работы программы.

    Задание и использование констант

    Выше было дано определение констант. Теперь рассмотрим работу с константами более подробно.

    Все константы вне зависимости от типа данных можно подразделить на две категории: именованные константы и константы, которые не имеют собственного имени. Например:

    25 — константа целого типа;

    3.14 — вещественная константа;

    ‘A’ — символьная константа.

    Все три приведённые здесь константы не имеют имени, они заданы своим внешним представлением и используются в программе непосредственно, например так:

    int k=25; // переменная k инициализирована константой — целым числом 25.

    В ряде случаев константе удобнее дать имя и использовать её далее по имени. Это делает текст программы более наглядным. Обычно применяется для математических или физических констант.

    В языке C# определить именованную константу очень просто Для этого используют ключевое слово const , например:

    const double PI=3.14; // здесь PI — константа

    Константы и переменные

    Понятия «константа» и «переменная» рассматриваются в одном разделе, потому что эти понятия очень близки по своей сущности.

    Понятие константы

    Константа — это составная часть программы; объект, имеющий значение.

    Понятие «константа» в программе аналогично тому же понятию, используемому в математических уравнениях. Это — неизменная величина. Для более полного описания сущности константы, используемой в алгоритмическом языке, обратимся к известным физическим и математическим константам.

    Человечеством открыты такие константы, значение которых от нас не зависит. К ним в физике относится, например, ускорение свободного падения, равное 9,8 м/с/с, а в математике — число пи = 3,14. Константы такого рода не могут быть признаны аналогией константы в алгоритмическом языке.

    В математических уравнениях также используется понятие константы. Например, в уравнении Y = 3 * X + 7 числа 3 и 7 являются константами. Значение таких констант в полной мере зависит от воли человека, составившего уравнение. Это — ближайшая аналогия констант, используемых в программах на MQL4.

    Константа (в виде значения) заносится программистом в код на этапе его создания. Константа характеризуется только своим значением, поэтому термины «константа» и «значение константы» являются полными синонимами.

    Примеры констант:

    37, 3.14, true, "Kazan"

    Рис. 4. Константа в памяти компьютера.

    Свойства констант

    Свойством константы является её способность удерживать значение, заданное программистом, в течение времени работы программы и сообщать это значение программе при запросах программы (рис. 5). Для каждой константы, содержащейся в программе, компьютер отводит часть памяти необходимого размера. Значение константы не может быть изменено во время исполнения программы ни программистом, ни компьютером (рис. 6).

    Значение константы всегда остаётся неизменным.

    Рис. 5. Состояние ячейки памяти константы при сообщении значения программе.

    Значение константы не может быть изменено в процессе работы программы.

    Рис. 6. Изменение значения константы во время работы программы невозможно.

    Понятие переменной

    Переменная — это составная часть программы, имеющая значение и название.

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

    Термин «идентификатор переменной» является полным синонимом терминов «имя переменной» и «название переменной». Переменная заносится создателем кода в его текст на этапе программирования в виде имени переменной. Имя переменной (идентификатор) может состоять из букв, цифр, знака подчёркивания. Однако начинаться оно должно с буквы. Язык MQL4 чувствителен к регистру букв, т.е. S и s — не одно и то же.

    Примеры идентификаторов переменных: Alpha, alFa, beta, NuMbEr, Num, A_37, A37, qwerty_123
    Следующие идентификаторы представляют названия разных переменных: a_22 и А_22; Massa и MASSA.
    Примеры значений переменных: 37, 3.14, true, «Kazan».

    Свойства переменной

    Свойством переменной является её способность получать некоторое значение от программы, удерживать его в течение времени работы программы и сообщать это значение программе при запросах программы. Для каждой переменной в программе компьютер отводит часть памяти необходимого размера. Обратимся к рис. 7 и проследим, как устроены переменные.

    Рис. 7. Переменная в памяти компьютера.

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

    Если на пути выполнения программы встречается имя переменной, то программа обращается к этой переменной, чтобы получить для обработки её значение. Если программа обратилась к переменной, последняя сообщает программе своё значение. При этом значение переменной остаётся неизменным. Программа же получает в своё распоряжение копию значения, содержащегося в ячейке памяти, выделенной для этой переменной (рис. 8).

    При сообщении значения переменной программе оно остаётся неизменным. Название (имя) переменной никогда не изменяется.

    Рис. 8. Состояние ячейки памяти переменной при сообщении значения программе.

    В течение некоторого времени переменная не имеет отношений с исполняемой программой. В это время программа может обращаться к другим переменным или производить необходимые вычисления. В период между случаями общения с программой переменная удерживает своё значение, т.е. сохраняет его неизменным.

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

    Значение переменной может быть изменено в результате воздействия программы. Название (имя) переменной остаётся неизменным всегда.

    Рис. 9. Состояние ячейки памяти переменной при получении значения от программы.

    Примеры констант и переменных в программе

    В программе константы и переменные встречаются в операторах. В данном тексте программы А и В являются переменными, а 7 и 3 — константами:

    A = 7; // Строка 1
    B = A + 3; // Строка 2

    Проследим, как программа работает с константами и переменными. Исполняя эти строки, программа выполнит следующие шаги:

    1. Константа 7 сообщает своё значение программе.
    2. Переменная А получает значение 7 от программы.
    1. Программа обнаружила выражение справа от знака равенства и стремится его вычислить.
    2. Константа 3 сообщает своё значение программе.
    3. Программа обращается к переменной А по имени.
    4. Переменная А сообщает своё значение (7) программе.
    5. Программа производит вычисления (7 + 3).
    6. Переменная В получает значение 10 от программы.

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

    В = 33; // Строка 3

    В этом случае при исполнении программы будет выполнено следующее:

    1. Константа 33 сообщает своё значение программе.
    2. Переменная В получает (новое) значение 33 от программы.

    Легко заметить, что на некотором этапе выполнения программы переменная В получает значение 10, а в ходе дальнейших вычислений — значение 33. В результате этих событий название переменной В остаётся неизменным, а значение переменной изменяется.

    На рис. 10 показаны константы и переменные в тексте программы:

    Рис. 10. Константа и переменная в программе.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *