Что будет храниться в переменной a
Перейти к содержимому

Что будет храниться в переменной a

  • автор:

Урок 5. Типы

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

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

Предположим, вам необходимо подсчитать число кошек, проживающих в вашем городе. Для этой цели вам подойдут целые числа (integer), так как трудно представить себе, что вы найдете дробную часть животных, типа 1.5 кошки или 3.14 кота.

Если вы имеете дело с финансами, то удобно использовать десятичные числа (decimal), в которым можно считать рубли и копейки, доллары и центы. У математиков для вычислений часто используются числа с плавающей точкой (floating point).

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

При создании переменной вы придумываете ей какое-то имя, например cats. В операторе объявления вам нужно указать тип переменной, то есть тип числа (или чего-то другого), которой вы хотите присвоить переменной. Конкретная переменная может быть объявлена только один раз.

Для обозначения целого числа язык C# (как и в C++) использует ключевое слово int. Вот как можно объявить переменную cats, в которой содержится число всех кошек в городе:

int cats;

Напоминаю, что вы не можете использовать в качестве имени переменной слово int, хотя можете использовать такие имена как INT, Int, inT.

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

На этом моменте следует остановиться подробнее. Как вы понимаете, память компьютера не бесконечна. Вероятно, вы знаете, что в памяти компьютера числа хранятся в виде последовательностей нулей и единиц. Например, для целочисленных значений берется ряд битов (отдельных цифр, которыми может быть О или 1) и представляется число в двоичном (бинарном) формате. Переменная, способная хранить 2 бита, позволить оперировать следующими числами:

0 = 00 1 = 01 2 = 10 3 = 11

В такую переменную можно записать только четыре числа от 0 до 3. Этого вполне достаточно, чтобы использовать такую переменную для подсчета числа хвостов или ушей у любой кошки. Но, если мы захотим посчитать количество лап у кошки, то от такой переменной толку будет мало. Значить, нам нужно иметь переменную, способную хранить 3 бита (3 бита позволяют хранить числа от 0 до 7). Возникает соблазн создать такие типы, которые могут содержать 2, 3, 4, 5 битов и так далее. Но подобный способ неэффективен для компьютера. Вместо этого договорились использовать строго определенные типы, способные хранить разные диапазоны чисел в заранее оговоренных рамках и занимающие разные объемы памяти. Необходимо сначала выучить самые основные типы, которыми вы будете пользоваться. Потом вы запомните и другие типы. Пока достаточно выучить тип int

Тип int

Добавим еще несколько переменных:

int cats; //число кошек в городе int dogs; //число собак в городе int parrots; //число попугаев в городе cats = 400; dogs = 250; parrots = 38;

Пустая строка в этом примере не обязательна; она только делает код более наглядным.

Вы можете указывать более одной переменной в одном операторе объявления:

int cats, dogs, parrots;

Эта строка эквивалентна трем отдельным операторам объявления. Если вы объявляете более одной переменной в операторе объявления, то переменные необходимо разделять запятыми. При этом все объявленнные переменные относятся к одному типу, в данном случае к типу int.

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

int cats, dogs; int parrots;

Также можно объявлять переменные по мере надобности:

int cats; cats = 400; int dogs; dogs = 250;

Единственное правило — каждая переменная должна быть объявлена до ее использования.

Также можно присвоить переменной значение одновременно с объявлением:

int cats = 400;

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

int cats; cats = 400;

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

int cats, dogs; int totalAnimals; // общее число животных, включая кошек и собак totalAnimals = cats + dogs;

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

Можно в одном операторе объявления инициализировать одни переменные и не инициализировать другие:

int cats, dogs = 260, total;

А можно инициализировать все три переменные в одном операторе объявления:

int cats = 400, dogs = 260, total = cats + dogs;

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

int cats = 400; int dogs = 260; int total = cats + dogs;

Пора закрепить материал и написать простую программу:

class SecondProgram < static void Main() < int cats, dogs, parrots, total; cats = 400; dogs = 260; parrots = 38; total = cats + dogs + parrots; System.Console.WriteLine(total); >>

Основные целочисленные типы

Тип int — наиболее распространенный тип, который вы будете использовать в своей практике. У него есть еще другое название — System.Int32. Первое название является частью языка C#, второе — более универсальное и является частью .NET Framework. Какое имя вы будете использовать, зависит от вашего вкуса. Существуют и другие целочисленные типы.

Тип Псевдоним Допустимые значения
sbyte System.SByte Целое число в диапазоне от -128 до 127
byte System.Byte Целое число в диапазоне от 0 до 255
short System.Intl6 Целое число в диапазоне от -32768 до 32767
ushort System.UIntl6 Целое число в диапазоне от 0 до 65535
int System.Int32 Целое число в диапазоне от -2147483648 до 2147483647
uint System.UInt32 Целое число в диапазоне от 0 до 4294967295
long System.Int64 Целое число в диапазоне от -9223372036854775808 до 9223372036854775807
ulong System.UInt64 Целое число в диапазоне от 0 до 18446744073709551615

Символы u в начале имен некоторых переменных (ushort, uint, ulong) являются сокращением от слова unsigned (без знака), которое указывает на то, что хранить отрицательные числа в переменных этих типов нельзя.

Если вернуться к предыдущему примеру, где мы считали число проживающих в городе котов, собак и попугаев, то можно было бы использовать такое выражения, как short cats вместо int cats. C другой стороны, мы не можем использовать тип sbyte или byte, так как в городе проживает больше котов, чем может хранить переменная указанных типов.

Другие типы данных

Итак, мы использовали в программе переменные типа int, которые могут хранить только целочисленные значения. Для работы с числами с дробной частью нужно использовать типы float и double. Чтобы лучше понять разницу между типами int и double, напишем следующую программу:

class IntDoubleDemo < public static void Main() < int iVar; // объявляем переменную типа int double dVar; // объявляем переменную типа double iVar = 100; // присваиваем переменной iVar значение 100 dVar = 100.0; // присваиваем переменной dVar значение 100,0 // Выводим значения переменных на экран System.Console.WriteLine("Значение переменной iVar: " + iVar); System.Console.WriteLine("Значение переменной dVar: " + dVar); // Делим обе переменные на 3 iVar = iVar / 3; dVar = dVar / 3; // Выводим значения переменных после деления на экран System.Console.WriteLine("Значение переменной iVar после деления: " + iVar); System.Console.WriteLine("Значение переменной dVar после деления: " + dVar); >>

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

Значение переменной iVar: 100 Значение переменной dVar: 100 Значение переменной iVar после деления: 33 Значение переменной dVar после деления: 33,3333333333333

Как видите, после деления значение переменной iVar на 3 получается целое число 33, а дробная часть была отброшена. А при делении значения переменной dVar дробная часть осталась. Таким образом, при необходимости работы с числами с плавающей точкой, ее нужно указать явным образом.

Таким образом мы узнали, что кроме целочисленных переменных, в программах можно использовать переменные трех следующих типов: float, double и decimal.

Практическая работа. Преобразование значений температуры

Мы рассматривали достаточно отвлеченные примеры. Давайте теперь напишем более полезную программу. Например, создадим приложение, которое преобразует значение температуры по шкале Фаренгейта в значение по шкале Цельсия.

Для решения задачи нам понадобятся две переменные типа double, в которых будут храниться значения температур по шкале Фаренгейта и Цельсия. Надеюсь, вы понимаете, почему мы выбрали именно тип double для наших переменных? Вспомните, что когда мы говорим о нормальной температуре человека, то подразумеваем температуру 36.6 градусов по Цельсию, т.е. дробное число.

Для преобразования значений температур по шкале Фаренгейта в шкалу по Цельсию используется формула:

C = 5/9 * (F - 32)

В этой формуле C — значение температуры по шкале Цельсия в градусах, а F — значение температуы по шкале Фаренгейта в градусах.

Итак, создаем новый проект FtoC:

// Программа преобразования значений температур по шкале Фаренгейта // в значения температур по шкале Цельсия class FtoC < public static void Main() < double f; // содержит значение температуры по Фаренгейту double c; // содержит значение температуры по Цельсию // Присваиваем переменной f значение 451 градусов по Фаренгейту f = 451.0; // Выполняем преобразование по формуле c = 5.0 / 9.0 * (f - 32.0); System.Console.WriteLine(f + " градус по шкале Фаренгейта равны "); System.Console.WriteLine(c + " градусам по шкале Цельсия"); >>

Теперь, когда вы будете читать книгу американского фантаста Рэя Бредбери 451 градус по Фаренгейту, вы будет представлять о какой температуре идет речь в привычной нам шкале Цельсия.

Нечисловые типы

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

string System.String Последовательность символов
Тип Псевдоним Допустимые значения
char System.Char Одиночный символ Unicode, сохраняемый в виде целого числа в диапазоне от 0 до 65535
bool System.Boolean Булево значение, которое может иметь вид либо true, либо false

Строка

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

Текстовые символы char

Для хранения отдельных символов в языке C# предусмотрен тип данных char. Так как для символов в C# используется кодировка Unicode, то символы типа char занимают в памяти 2 байта. При использовании символьной переменной сам символ окружают одинарными кавычками:

char charStar; // символ Звездочка charStar = '*'; Console.WriteLine(charStar);

Булев тип данных

Булевский тип bool является одним из наиболее часто используемых типов переменных. Наличие переменной, которая может содержать либо значение true, либо значение false, играет очень важную роль в процессе выполнения логики приложения. При помощи типа bool можно выполнить сравнение между значениями переменных или проверить правильности входных данных.

Запомните, что для булева типа данных bool существует только два значения true и false (истинна и ложь) и эти значения и выводятся на экран в виде слов True или False:

bool hasTail; // наличие хвоста hasTail = true; System.Console.WriteLine("Верно ли, что у котов есть хвосты: " + hasTail);

Непонятное слово булев тип произошло от имени английского математика Джорджа Буля (George Bool), который является автором булевой логики. Булева логика, бывшая сначала чистой наукой, лежит в основе принципа вычислительных операций большинства используемых компьютеров. Кстати, его дочь — известная английская писательница Этель Лилиан Войнич, автор популярного в советское время романа Овод.

Очень часто булев тип данных используется в операторе if:

if(hasTail) System.Console.WriteLine("Переменная hasTail равна " + hasTail);

Обратите внимание, на короткую запись вместо if(hasTail == true), которую можно использовать, если переменная имеет значение true. А вот еще один пример:

System.Console.WriteLine(10 < 9);

Как вы думаете, что появится на экране? Проверьте самостоятельно. Должно появиться слово False.

Указатели: что хранится в переменной?

Допустим, есть const char *v = "name" ;
что тогда будет хранится в переменной v? строка?
и зачем сие используется в языке?

Отслеживать
4,730 3 3 золотых знака 29 29 серебряных знаков 46 46 бронзовых знаков
задан 10 фев 2014 в 14:19
291 1 1 серебряный знак 9 9 бронзовых знаков

@serg, на самом деле в переменной v будет число. Оно будет интерпретируется аппаратурой компьютера как адрес в виртуальной памяти текущего процесса. Посмотреть на него (и узнать размер переменной в байтах) можно так printf ("v content: %p v size %ld bytes\n", v, (long)sizeof(v)); а вот по этому адресу в памяти будут байты name (с двоичным нулем в конце) -- Откуда это число появляется в v при такой записи на С/С++? Несколько упрощенный ответ -- совместными действиями сначала компилятора, а потом операционной системы (если считать линкер компонентом ОС).

10 фев 2014 в 20:05

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

В v будет хранится указатель на ячейку памяти, где лежит символ 'n', первый символ этой строки. Строковые функции, когда им передают указатель типа char, предполагают, что этот указатель указывает на первый символ строки, которая обязательно оканчивается нулем (нуль-символом, зеро-терминатором, условно обозначается - '\0').

А сие используется в языке, потому как чистого строкового типа в С нет. Собственно, нет никакой разницы (кроме соглашения о дополнительном нуль-символе в конце и типов данных) между массивом целых чисел и массивом символов (строкой). В C++ есть класс, который является оберткой над такими "сырыми" строками (или С-строками), про который можно сказать - он хранит строку. Это тип std::string.

Отслеживать
ответ дан 10 фев 2014 в 14:23
8,656 1 1 золотой знак 16 16 серебряных знаков 32 32 бронзовых знака

и еще такой вопрос, если я напишу char con[]="string", то у меня память и под строковый литерал и под массив выделится?

10 фев 2014 в 14:30
@serg: Строковый литерал и есть массив (символов).
10 фев 2014 в 14:32

@serg Это, по сути, константа, под нее память выделится лишь раз. А указатель указывает на единожды выделенную память. Если вы хотите выделять память в процессе работы программы, вам потребуется изменять строку, то необходимо в явном виде: 1) выделить память подходящего размера 2) скопировать значения 3)работать с этой памятью 4)освободить память после использования

Какое значение будет храниться в переменной а:integer после выполнения следующего программного отрывка?

Какое значение будет храниться в переменной а:integer после выполнения следующего программного отрывка?

b:= ‘ААББВВГГДД’;p:= addr(b[7]);a:= p^;

Какое значение будет храниться в переменной а:shortint после выполнения следующего программного отрывка?

b:= ‘Б’;p:= addr(b);a:= p^;

Какое значение будет храниться в поле a записи r1 после выполнения следующего блока?

var a: integer; r1: record a: byte; . end; r2: record a: shortint; . end;begin a:= 0; with r1 do begin r2.a:= -10; with r2 do begin a:= 100; r1.a:= -a; end end; a:= 100;end.

Какое значение будет храниться в поле a записи r2 после выполнения следующего блока?

var a: integer; r1: record a: longint; . end; r2: record a: byte; . end;begin a:= 0; with r2 do begin a:= 10; with r1 do begin a:= -r2.a; r2.a:= 100; end; a:= r1.a; end; a:= -100;end.

Какое значение будет храниться в поле a записи r1 после выполнения следующего блока?

var a: longint; r1: record a: word; . end; r2: record a: integer; . end;begin a:= 0; with r1 do begin a:= 1000; with r2 do begin a:= 1000; r1.a:= -a; end; r2.a:= -100; end; a:= 100;end.

Какие значения будут храниться в переменных s и k после считывания из текстового файла f строки 'Иванов Иван Иванович 1945' при помощи команды

readln(f,s,k);

Какие значения будут храниться в переменных s и k после считывания из текстового файла f строки 'Олегов Олег Олегович 1962' при помощи команды

readln(f,s,k);

Какие значения будут храниться в переменных s и k после считывания из текстового файла f строки 'Петров Петр Петрович 1956' при помощи команды

readln(f,s,k);

Какая последовательность символов будет содержаться в файле f: file of char после выполнения следующего отрывка программы:

rewrite(f);for c:= 'а' to 'р' do write(f,c); seek(f,10);read(f,c);truncate(f);seek(f,15);write(f,c);

Какая последовательность символов будет содержаться в файле f: file of char после выполнения следующего отрывка программы:

rewrite(f);for c:= 'a' to 'p' do write(f,c); seek(f,10);read(f,c);write(f,c);seek(f,15);truncate(f);write(f,c);

Переменные

JavaScript-приложению обычно нужно работать с информацией. Например:

  1. Интернет-магазин – информация может включать продаваемые товары и корзину покупок.
  2. Чат – информация может включать пользователей, сообщения и многое другое.

Переменные используются для хранения этой информации.

Переменная

Переменная – это «именованное хранилище» для данных. Мы можем использовать переменные для хранения товаров, посетителей и других данных.

Для создания переменной в JavaScript используйте ключевое слово let .

Приведённая ниже инструкция создаёт (другими словами, объявляет) переменную с именем «message»:

let message;

Теперь можно поместить в неё данные (другими словами, определить переменную), используя оператор присваивания = :

let message; message = 'Hello'; // сохранить строку 'Hello' в переменной с именем message

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

let message; message = 'Hello!'; alert(message); // показывает содержимое переменной

Для краткости можно совместить объявление переменной и запись данных в одну строку:

let message = 'Hello!'; // определяем переменную и присваиваем ей значение alert(message); // Hello!

Мы также можем объявить несколько переменных в одной строке:

let user = 'John', age = 25, message = 'Hello';

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

Многострочный вариант немного длиннее, но легче для чтения:

let user = 'John'; let age = 25; let message = 'Hello';

Некоторые люди также определяют несколько переменных в таком вот многострочном стиле:

let user = 'John', age = 25, message = 'Hello';

…Или даже с запятой в начале строки:

let user = 'John' , age = 25 , message = 'Hello';

В принципе, все эти варианты работают одинаково. Так что это вопрос личного вкуса и эстетики.

var вместо let

В старых скриптах вы также можете найти другое ключевое слово: var вместо let :

var message = 'Hello';

Ключевое слово var – почти то же самое, что и let . Оно объявляет переменную, но немного по-другому, «устаревшим» способом.

Есть тонкие различия между let и var , но они пока не имеют для нас значения. Мы подробно рассмотрим их в главе Устаревшее ключевое слово "var".

Аналогия из жизни

Мы легко поймём концепцию «переменной», если представим её в виде «коробки» для данных с уникальным названием на ней.

Например, переменную message можно представить как коробку с названием "message" и значением "Hello!" внутри:

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

Мы также можем изменить его столько раз, сколько захотим:

let message; message = 'Hello!'; message = 'World!'; // значение изменено alert(message);

При изменении значения старые данные удаляются из переменной:

Мы также можем объявить две переменные и скопировать данные из одной в другую.

let hello = 'Hello world!'; let message; // копируем значение 'Hello world' из переменной hello в переменную message message = hello; // теперь две переменные содержат одинаковые данные alert(hello); // Hello world! alert(message); // Hello world!

Повторное объявление вызывает ошибку

Переменная может быть объявлена только один раз.

Повторное объявление той же переменной является ошибкой:

let message = "Это"; // повторение ключевого слова 'let' приводит к ошибке let message = "Другое"; // SyntaxError: 'message' has already been declared

Поэтому следует объявлять переменную только один раз и затем использовать её уже без let .

Функциональные языки программирования

Примечательно, что существуют функциональные языки программирования, такие как Scala или Erlang, которые запрещают изменять значение переменной.

В таких языках однажды сохранённое «в коробку» значение остаётся там навсегда. Если нам нужно сохранить что-то другое, язык заставляет нас создать новую коробку (объявить новую переменную). Мы не можем использовать старую переменную.

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

Имена переменных

В JavaScript есть два ограничения, касающиеся имён переменных:

  1. Имя переменной должно содержать только буквы, цифры или символы $ и _ .
  2. Первый символ не должен быть цифрой.

Примеры допустимых имён:

let userName; let test123;

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

Самое интересное – знак доллара '$' и подчёркивание '_' также можно использовать в названиях. Это обычные символы, как и буквы, без какого-либо особого значения.

Эти имена являются допустимыми:

let $ = 1; // объявили переменную с именем "$" let _ = 2; // а теперь переменную с именем "_" alert($ + _); // 3

Примеры неправильных имён переменных:

let 1a; // не может начинаться с цифры let my-name; // дефис '-' не разрешён в имени

Регистр имеет значение

Переменные с именами apple и APPLE – это две разные переменные.

Нелатинские буквы разрешены, но не рекомендуются

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

let имя = '. '; let 我 = '. ';

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

Зарезервированные имена

Существует список зарезервированных слов, которые нельзя использовать в качестве имён переменных, потому что они используются самим языком.

Например: let , class , return и function зарезервированы.

Приведённый ниже код даёт синтаксическую ошибку:

let let = 5; // нельзя назвать переменную "let", ошибка! let return = 5; // также нельзя назвать переменную "return", ошибка!

Создание переменной без использования use strict

Обычно нам нужно определить переменную перед её использованием. Но в старые времена было технически возможно создать переменную простым присвоением значения без использования let . Это все ещё работает, если мы не включаем use strict в наших файлах, чтобы обеспечить совместимость со старыми скриптами.

// заметка: "use strict" в этом примере не используется num = 5; // если переменная "num" раньше не существовала, она создаётся alert(num); // 5

Это плохая практика, которая приводит к ошибке в строгом режиме:

"use strict"; num = 5; // ошибка: num is not defined

Константы

Чтобы объявить константную, то есть, неизменяемую переменную, используйте const вместо let :

const myBirthday = '18.04.1982';

Переменные, объявленные с помощью const , называются «константами». Их нельзя изменить. Попытка сделать это приведёт к ошибке:

const myBirthday = '18.04.1982'; myBirthday = '01.01.2001'; // ошибка, константу нельзя перезаписать!

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

Константы в верхнем регистре

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

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

Например, сделаем константы для различных цветов в «шестнадцатеричном формате»:

const COLOR_RED = "#F00"; const COLOR_GREEN = "#0F0"; const COLOR_BLUE = "#00F"; const COLOR_ORANGE = "#FF7F00"; // . когда нам нужно выбрать цвет let color = COLOR_ORANGE; alert(color); // #FF7F00
  • COLOR_ORANGE гораздо легче запомнить, чем "#FF7F00" .
  • Гораздо легче допустить ошибку при вводе "#FF7F00" , чем при вводе COLOR_ORANGE .
  • При чтении кода COLOR_ORANGE намного понятнее, чем #FF7F00 .

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

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

const pageLoadTime = /* время, потраченное на загрузку веб-страницы */;

Значение pageLoadTime неизвестно до загрузки страницы, поэтому её имя записано обычными, а не прописными буквами. Но это всё ещё константа, потому что она не изменяется после назначения.

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

Придумывайте правильные имена

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

Название переменной должно иметь ясный и понятный смысл, говорить о том, какие данные в ней хранятся.

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

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

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

Несколько хороших правил:

  • Используйте легко читаемые имена, такие как userName или shoppingCart .
  • Избегайте использования аббревиатур или коротких имён, таких как a , b , c , за исключением тех случаев, когда вы точно знаете, что так нужно.
  • Делайте имена максимально описательными и лаконичными. Примеры плохих имён: data и value . Такие имена ничего не говорят. Их можно использовать только в том случае, если из контекста кода очевидно, какие данные хранит переменная.
  • Договоритесь с вашей командой об используемых терминах. Если посетитель сайта называется «user», тогда мы должны называть связанные с ним переменные currentUser или newUser , а не, к примеру, currentVisitor или newManInTown .

Звучит просто? Действительно, это так, но на практике для создания описательных и кратких имён переменных зачастую требуется подумать. Действуйте.

Повторно использовать или создавать новую переменную?

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

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

Такие программисты немного экономят на объявлении переменных, но теряют в десять раз больше при отладке.

Дополнительная переменная – это добро, а не зло.

Современные JavaScript-минификаторы и браузеры оптимизируют код достаточно хорошо, поэтому он не создаёт проблем с производительностью. Использование разных переменных для разных значений может даже помочь движку оптимизировать ваш код.

Итого

Мы можем объявить переменные для хранения данных с помощью ключевых слов var , let или const .

  • let – это современный способ объявления.
  • var – это устаревший способ объявления. Обычно мы вообще не используем его, но мы рассмотрим тонкие отличия от let в главе Устаревшее ключевое слово "var" на случай, если это всё-таки вам понадобится.
  • const – похоже на let , но значение переменной не может изменяться.

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

Задачи

Работа с переменными

важность: 2

  1. Объявите две переменные: admin и name .
  2. Запишите строку "Джон" в переменную name .
  3. Скопируйте значение из переменной name в admin .
  4. Выведите на экран значение admin , используя функцию alert (должна показать «Джон»).

В коде ниже каждая строка решения соответствует одному элементу в списке задач.

let admin, name; // можно объявить две переменные через запятую name = "Джон"; admin = name; alert( admin ); // "Джон"

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

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