Определение переменной
Переменная - сущность, которая может хранить изменяемое значение различных типов данных (логических, числовых, строковых). Для лучшего понимая переменную можно представить как коробку, а значение тем, что лежит в этой коробке.
Для того чтобы определить переменную, нужно обозначить факт ее объявления с помощью ключевого слова - var
, за которым следуем имя переменной, оператор присваивания - =
и присваиваемое значение.
1 2 |
var myNumber = 45; //Объявление переменной с именем myNumber и значением 45 var myString = "Hello world!"; //Объявление переменной с именем myString и значением "Hello world!" |
Переменные можно также объявить сразу несколько, разделяя имена запятыми.
1 2 3 4 |
//Объявление переменных последовательно, одна за другой var myNumber = 45, myString = "Hello!", myObject = {name: "Oleg"}; |
Присвоить значения переменным можно не только во время их объявления, но и после.
1 2 3 4 |
var myNumber, myString, myObject; //На данный момент все переменные имеют значение undefined myNumber = 45; //Присвоение переменной myNumber значение 45 myString = "Hello!"; //Присвоение переменной myString значение "Hello!" myObject = {name: "Oleg"}; //Присвоение переменной myObject значение {name: Oleg} |
Значение переменной может быть изменено. Процесс присвоения переменной нового значения называется - переопределением.
1 2 |
var myNumber = 45; //Переменная myNumber содержит значение 45 myNumber = 88; //Теперь переменная myNumber содержит значение 88 |
В качестве значений переменных могут выступать числа, строки, массивы, объекты, функции, другие переменные, арифметические операции и многое другое.
1 2 3 4 5 6 7 |
var myNumber = 45, //myNumber содержит число 45 myString = "Hello!", //myString содержит строку "Hello!" myObject = {name: "Oleg"}, //myObject содержит объект {name: "Oleg"} myArray = [1,2,3], //myArray содержит массив [1,2,3] myFunction = function(){}, //myFunction содержит пустую функцию myVariable = myNumber, //myVariable содержит число 45 myArithmetic = (55 + myNumber) / 2; //myArithmetic содержит число 50 |
Особенности именования переменных
Имя переменной может состоять из английских букв, цифр, знаков подчеркивания и знаков доллара. Имя переменной часто называют идентификатором.
Имя переменной не может начинаться с цифры!
1 2 3 4 5 |
// Допустимые имена переменных var myVar, $myVar, my_var, _myVar, myVar123; // Недопустимые имена переменных var 12myVar, my-var; |
Имена переменных чувствительны к регистру, это значит, что следующий имена myVariable
, MyVariable
, myvariable
являются разными!
Имена переменных не должны совпадать с названием ключевых слов (var
, function
, this
, ...)!
Определение константы
Константа похожа на переменную, но главным ее отличием будет то, что на протяжении всей работы программы, значение константе присваивается лишь один раз и больше не меняется.
В качестве значений константы выступают значения, которые всегда постоянны, например: число "пи" - 3,14 или процент налоговой ставки для расчетной программы.
Чаще всего, для удобства, константы инициализируются в самом начале кода программы. Имена для констант, по общему соглашению разработчиков, пишутся в верхнем регистре с разделителем - _ (нижнее подчеркивание) между словами.
До момента принятия стандарта ECMAScript 6, в JavaScript не существовало специальной директивы для определения константы, однако ее для имитации использовали ключевое слово var, а имя записывали в верхнем регистре, это помогало другим разработчикам понять, что в данном случае они имеют дело с константой, а не переменной, когда с технической точки зрения переменная так и оставалась переменной.
Пример определения константы для стандарта ECMAScript 5 и ниже.
1 2 3 4 5 |
// Определение и инициализация константы var TAX_RATE = 0.13; // ставка налога 13% // Определение и инициализация переменной var mySalary = 1000; var myRealSalary = mySalary - mySalary * TAX_RATE; // => 870 |
В стандарте ECMAScript 6 появилась директива const
, с помощью которой можно объявить самую настоящую константу.
1 2 3 4 5 |
// Определение и инициализация константы в ECMAScript 6 const TAX_RATE = 0.13; // ставка налога 13% // Определение и инициализация переменной var mySalary = 1000; var myRealSalary = mySalary - mySalary * TAX_RATE; // => 870 |
При попытке изменения значения константы объявленной через const
, программа выдаст ошибку вида TypeError, а в случае использования "strict mode" (режим строгого синтаксиса), вы получите ошибку синтаксиса SyntaxError.
1 2 3 |
const TAX_RATE = 0.13; // ставка налога 13% TAX_RATE = 0.18; // изменяем значение константы // => TypeError: Assignment to constant variable. |
Пример получения ошибки в режиме строгого синтаксиса.
1 2 3 4 |
"strict"; // активация режима строгого синтаксиса const TAX_RATE = 0.13; // ставка налога 13% TAX_RATE = 0.18; // изменяем значение константы // => SyntaxError: Identifier 'TAX_RATE' has already been declared |
Правила именования идентификаторов для констант подчиняются тем же правилам, что и переменные.