JavaScript-пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð±ÑÑно нÑжно ÑабоÑаÑÑ Ñ Ð¸Ð½ÑоÑмаÑией. ÐапÑимеÑ:
- ÐнÑеÑнеÑ-магазин â инÑоÑмаÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÐºÐ»ÑÑаÑÑ Ð¿ÑодаваемÑе ÑоваÑÑ Ð¸ коÑÐ·Ð¸Ð½Ñ Ð¿Ð¾ÐºÑпок.
- Ð§Ð°Ñ â инÑоÑмаÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÐºÐ»ÑÑаÑÑ Ð¿Ð¾Ð»ÑзоваÑелей, ÑообÑÐµÐ½Ð¸Ñ Ð¸ многое дÑÑгое.
ÐеÑеменнÑе иÑполÑзÑÑÑÑÑ Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑÑой инÑоÑмаÑии.
ÐеÑеменнаÑ
ÐеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ â ÑÑо «именованное Ñ ÑанилиÑе» Ð´Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐÑ Ð¼Ð¾Ð¶ÐµÐ¼ иÑполÑзоваÑÑ Ð¿ÐµÑеменнÑе Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑоваÑов, поÑеÑиÑелей и дÑÑÐ³Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ .
ÐÐ»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿ÐµÑеменной в 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 еÑÑÑ Ð´Ð²Ð° огÑаниÑениÑ, каÑаÑÑиеÑÑ Ð¸Ð¼Ñн пеÑеменнÑÑ :
- ÐÐ¼Ñ Ð¿ÐµÑеменной должно ÑодеÑжаÑÑ ÑолÑко бÑквÑ, ÑиÑÑÑ Ð¸Ð»Ð¸ ÑимволÑ
$и_. - ÐеÑвÑй Ñимвол не должен бÑÑÑ ÑиÑÑой.
ÐÑимеÑÑ Ð´Ð¾Ð¿ÑÑÑимÑÑ Ð¸Ð¼Ñн:
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, но знаÑение пеÑеменной не Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑÑÑ.
ÐеÑеменнÑе Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ñ Ñаким обÑазом, ÑÑÐ¾Ð±Ñ Ð¼Ñ Ð¼Ð¾Ð³Ð»Ð¸ легко понÑÑÑ, ÑÑо Ñ Ð½Ð¸Ñ Ð²Ð½ÑÑÑи.
ÐомменÑаÑии
<code>, Ð´Ð»Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑÑÑок кода — Ñег<pre>, еÑли болÑÑе 10 ÑÑÑок — ÑÑÑÐ»ÐºÑ Ð½Ð° пеÑоÑниÑÑ (plnkr, JSBin, codepenâ¦)