ÐайÑаÑÑÑÑе заÑÑоÑÑнкам на JavaScript поÑÑÑбно пÑаÑÑваÑи з ÑнÑоÑмаÑÑÑÑ. ÐÑÑ Ð´Ð²Ð° пÑиклади:
- Ðнлайн-магазин â ÑнÑоÑмаÑÑÑÑ Ð¼Ð¾Ð¶ÑÑÑ Ð±ÑÑи ÑоваÑи, ÑÐºÑ Ð¿ÑодаÑÑÑÑÑ, Ñ Ð²Ð¼ÑÑÑ ÐºÐ¾Ñика.
- ÐаÑÑоÑÑнок Ð´Ð»Ñ ÑаÑÑ â ÑнÑоÑмаÑÑÑ Ð¼Ð¾Ð¶Ðµ вклÑÑаÑи коÑиÑÑÑваÑÑв, повÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñа багаÑо ÑнÑого.
ÐмÑÐ½Ð½Ñ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑÑÑÑÑÑ Ð´Ð»Ñ Ð·Ð±ÐµÑÑÐ³Ð°Ð½Ð½Ñ ÑÑÑÑ ÑнÑоÑмаÑÑÑ.
ÐмÑнна
ÐмÑнна Ñе âÑменована ÑаÑÑинка ÑÑ Ð¾Ð²Ð¸Ñаâ, в ÑкÑй збеÑÑгаÑÑÑÑÑ Ð´Ð°Ð½Ñ. Ðи можемо викоÑиÑÑовÑваÑи змÑннÑ, Ñоб збеÑÑгаÑи ÑоваÑи, вÑдвÑдÑваÑÑв Ñа ÑнÑÑ Ð´Ð°Ð½Ñ.
Щоб ÑÑвоÑиÑи змÑннÑ, викоÑиÑÑовÑйÑе клÑÑове Ñлово let.
Цей ÑÑдок нижÑе ÑÑвоÑиÑÑ (ÑнакÑе кажÑÑи, оголоÑиÑÑ) змÑÐ½Ð½Ñ Ð· ÑмâÑм âmessageâ:
let message;
Ð¢ÐµÐ¿ÐµÑ Ð¼Ð¸ можемо поклаÑÑи деÑÐºÑ Ð´Ð°Ð½Ñ Ð² ÑÑ Ð·Ð¼ÑннÑ, викоÑиÑÑовÑÑÑи опеÑаÑÐ¾Ñ Ð¿ÑиÑвоÑÐ½Ð½Ñ =:
let message;
message = 'ÐÑивÑÑ'; // збеÑÐµÐ¶ÐµÐ½Ð½Ñ ÑÑдка 'ÐÑивÑÑ' Ñ Ð·Ð¼ÑннÑй `message`
Ð¢ÐµÐ¿ÐµÑ ÑÑдок збеÑежено в ÑаÑÑÐ¸Ð½Ñ Ð¿Ð°Ð¼âÑÑÑ, Ñка звâÑзана з ÑÑÑÑ Ð·Ð¼ÑнноÑ. Ðи можемо оÑÑимаÑи доÑÑÑп до Ð´Ð°Ð½Ð¸Ñ , викоÑиÑÑовÑÑÑи ÑмâÑ Ð·Ð¼ÑнноÑ:
let message;
message = 'ÐÑивÑÑ!';
alert(message); // показÑÑ Ð²Ð¼ÑÑÑ Ð·Ð¼ÑнноÑ
Щоб пиÑаÑи менÑе кодÑ, ми можемо ÑÑмÑÑаÑи оголоÑÐµÐ½Ð½Ñ Ð·Ð¼ÑÐ½Ð½Ð¾Ñ Ñа ÑÑ Ð¿ÑиÑвоÑÐ½Ð½Ñ Ð² Ð¾Ð´Ð½Ð¾Ð¼Ñ ÑÑдкÑ:
let message = 'ÐÑивÑÑ!'; // оголоÑÐµÐ½Ð½Ñ Ð·Ð¼ÑÐ½Ð½Ð¾Ñ Ñ Ð¿ÑиÑвоÑÐ½Ð½Ñ Ð·Ð½Ð°ÑеннÑ
alert(message); // ÐÑивÑÑ!
Ðи Ñакож можемо оголоÑиÑи декÑлÑка змÑÐ½Ð½Ð¸Ñ Ð² Ð¾Ð´Ð½Ð¾Ð¼Ñ ÑÑдкÑ:
let user = 'Ðван', age = 25, message = 'ÐÑивÑÑ';
Таке оголоÑÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ðµ виглÑдаÑи коÑоÑÑим, пÑоÑе ми не ÑекомендÑÑмо Ñак пиÑаÑи. ÐаÑади кÑаÑÐ¾Ñ ÑиÑабелÑноÑÑÑ, бÑÐ´Ñ Ð»Ð°Ñка, оголоÑÑйÑе змÑÐ½Ð½Ñ Ð· нового ÑÑдка.
ÐагаÑоÑÑдковий ÑпоÑÑб ÑÑÐ¾Ñ Ð¸ довÑий, пÑоÑе його легÑе ÑиÑаÑи:
let user = 'Ðван';
let age = 25;
let message = 'ÐÑивÑÑ';
ÐеÑÐºÑ Ð»Ñди Ñакож оголоÑÑÑÑÑ Ð·Ð¼ÑÐ½Ð½Ñ Ð² ÑÐ°ÐºÐ¾Ð¼Ñ Ð±Ð°Ð³Ð°ÑоÑÑÐ´ÐºÐ¾Ð²Ð¾Ð¼Ñ ÑÑилÑ:
let user = 'Ðван',
age = 25,
message = 'ÐÑивÑÑ';
â¦Ð°Ð±Ð¾ навÑÑÑ Ñ ÑÑÐ¸Ð»Ñ âкома ÑпоÑаÑкÑâ:
let user = 'Ðван'
, age = 25
, message = 'ÐÑивÑÑ';
Ð¢ÐµÑ Ð½ÑÑно, вÑÑ ÑÑ ÑпоÑоби ÑоблÑÑÑ Ð¾Ð´Ð½Ðµ й Ñе ж. Ð¢Ð¾Ð¼Ñ Ñе пиÑÐ°Ð½Ð½Ñ Ð¾ÑобиÑÑого ÑÐ¼Ð°ÐºÑ Ñа еÑÑеÑики.
var замÑÑÑÑ letУ ÑÑаÑиÑ
ÑкÑипÑаÑ
ви можеÑе знайÑи ÑнÑе клÑÑове Ñлово: var замÑÑÑÑ let:
var message = 'ÐÑивÑÑ';
ÐлÑÑове Ñлово var майже Ñаке, Ñк let. Ðоно Ñеж оголоÑÑÑ Ð·Ð¼ÑннÑ, але деÑо ÑнÑим, âзаÑÑаÑÑлимâ ÑпоÑобом.
РдеÑÐºÑ Ð²ÑдмÑнноÑÑÑ Ð¼Ñж let Ñ var, але вони поки Ñо не маÑÑÑ Ð´Ð»Ñ Ð½Ð°Ñ Ð·Ð½Ð°ÑеннÑ. Ðи дÑзнаÑмоÑÑ Ð±ÑлÑÑе пÑо ÑÑ Ð²ÑдмÑнноÑÑÑ Ð² ÑоздÑÐ»Ñ ÐаÑÑаÑÑле клÑÑове Ñлово "var".
ÐналогÑÑ Ð· жиÑÑÑ
Ðи легко зÑозÑмÑÑмо конÑепÑÑÑ âзмÑнноÑâ, ÑкÑо ÑÑвимо ÑÑ Ñ Ð²Ð¸Ð³Ð»ÑÐ´Ñ âкоÑобкиâ Ð´Ð»Ñ Ð´Ð°Ð½Ð¸Ñ Ð· ÑнÑкалÑÐ½Ð¾Ñ Ð½Ð°Ð·Ð²Ð¾Ñ Ð½Ð° наклейÑÑ.
ÐапÑиклад, змÑÐ½Ð½Ñ message можна ÑÑвиÑи Ñк коÑÐ¾Ð±ÐºÑ Ð· напиÑом "ÐовÑдомленнÑ" Ð·Ñ Ð·Ð½Ð°ÑеннÑм "ÐÑивÑÑ!" вÑеÑединÑ:
Ðи можемо поклаÑÑи бÑдÑ-Ñке знаÑÐµÐ½Ð½Ñ Ð² ÑÑ ÐºÐ¾ÑобкÑ.
Ðи Ñакож можемо змÑнÑваÑи його ÑÑÑлÑки ÑазÑв, ÑкÑлÑки Ð·Ð°Ñ Ð¾Ñемо:
let message;
message = 'ÐÑивÑÑ!';
message = 'СвÑÑ!'; // знаÑÐµÐ½Ð½Ñ Ð·Ð¼Ñнено
alert(message);
Ðоли знаÑÐµÐ½Ð½Ñ Ð·Ð¼ÑнÑÑÑÑÑÑ, ÑÑаÑÑ Ð´Ð°Ð½Ñ Ð²Ð¸Ð´Ð°Ð»ÑÑÑÑÑÑ Ð·Ñ Ð·Ð¼ÑнноÑ:
Ðи Ñакож можемо оголоÑиÑи Ð´Ð²Ñ Ð·Ð¼ÑÐ½Ð½Ñ Ñа ÑкопÑÑваÑи Ð´Ð°Ð½Ñ Ð· однÑÑÑ Ð² ÑнÑÑ.
let hello = 'ÐÑивÑÑ ÑвÑÑ!';
let message;
// копÑÑÑмо 'ÐÑивÑÑ ÑвÑÑ' з hello в message
message = hello;
// ÑÐµÐ¿ÐµÑ Ð´Ð²Ñ Ð·Ð¼ÑÐ½Ð½Ñ Ð¼Ð°ÑÑÑ Ð¾Ð´Ð½Ð°ÐºÐ¾Ð²Ñ Ð´Ð°Ð½Ñ
alert(hello); // ÐÑивÑÑ ÑвÑÑ!
alert(message); // ÐÑивÑÑ ÑвÑÑ!
ÐголоÑÑваÑи змÑÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° лиÑе один Ñаз.
ÐовÑоÑне оголоÑÐµÐ½Ð½Ñ ÑÑÑÑ Ð¶ змÑÐ½Ð½Ð¾Ñ ÑпÑиÑиниÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑ:
let message = "Це";
// повÑоÑне 'let' пÑизведе до ÑинÑакÑиÑÐ½Ð¾Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸
let message = "Той"; // SyntaxError: 'message' has already been declared
Ð¢Ð¾Ð¼Ñ Ð¼Ð¸ маÑмо оголоÑиÑи змÑÐ½Ð½Ñ Ð»Ð¸Ñе Ñаз, а поÑÑм пÑоÑÑо поÑилаÑиÑÑ Ð½Ð° неÑ, без let.
ЦÑкаво зазнаÑиÑи, Ñо ÑÑнÑÑÑÑ ÑÑнкÑÑÐ¹Ð½Ñ Ð¼Ð¾Ð²Ð¸ пÑогÑамÑваннÑ, ÑÐ°ÐºÑ Ñк Haskell, в ÑÐºÐ¸Ñ Ð·Ð°Ð±Ð¾Ñонено змÑнÑваÑи знаÑÐµÐ½Ð½Ñ Ð·Ð¼ÑÐ½Ð½Ð¸Ñ .
У ÑÐ°ÐºÐ¸Ñ Ð¼Ð¾Ð²Ð°Ñ Ð·Ð±ÐµÑÐµÐ¶ÐµÐ½Ñ Ð² âкоÑобкÑâ знаÑÐµÐ½Ð½Ñ Ð·Ð°Ð»Ð¸ÑаÑÑÑÑÑ Ñам назавжди. ЯкÑо нам поÑÑÑбно збеÑегÑи ÑоÑÑ ÑнÑе, мова змÑÑиÑÑ Ð½Ð°Ñ ÑÑвоÑиÑи Ð½Ð¾Ð²Ñ ÐºÐ¾ÑÐ¾Ð±ÐºÑ (оголоÑиÑи Ð½Ð¾Ð²Ñ Ð·Ð¼ÑннÑ). Ðи не можемо викоÑиÑÑаÑи ÑÑаÑÑ Ð·Ð¼ÑннÑ.
ХоÑа на пеÑÑий поглÑд Ñе може здаÑиÑÑ Ð´Ð¸Ð²Ð½Ð¸Ð¼, пÑоÑе ÑÑ Ð¼Ð¾Ð²Ð¸ ÑÑлком пÑÐ´Ñ Ð¾Ð´ÑÑÑ Ð´Ð»Ñ ÑеÑÐ¹Ð¾Ð·Ð½Ð¾Ñ ÑозÑобки. Ðа бÑлÑÑе, Ñ ÑÐ°ÐºÑ Ð³Ð°Ð»ÑзÑ, Ñк Ð¾Ñ Ð¿Ð°ÑалелÑÐ½Ñ Ð¾Ð±ÑиÑленнÑ, де Ñе Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð°Ñ Ð¿ÐµÐ²Ð½Ñ Ð¿ÐµÑеваги.
ÐменÑÐ²Ð°Ð½Ð½Ñ Ð·Ð¼ÑнниÑ
Ð JavaScript Ñ Ð´Ð²Ð° обмеженнÑ, ÑÐºÑ ÑÑоÑÑÑÑÑÑÑ Ñмен змÑÐ½Ð½Ð¸Ñ :
- ÐмâÑ Ð¼Ð°Ñ Ð¼ÑÑÑиÑи лиÑе бÑкви, ÑиÑÑи або Ñимволи
$Ñ_. - ÐеÑÑий Ñимвол не Ð¼Ð°Ñ Ð±ÑÑи ÑиÑлом.
ÐÑÑ Ð¿Ñиклади допÑÑÑÐ¸Ð¼Ð¸Ñ Ñмен:
let userName;
let test123;
ÐÐ»Ñ Ð½Ð°Ð¿Ð¸ÑÐ°Ð½Ð½Ñ ÑменÑ, Ñке мÑÑÑиÑÑ Ð´ÐµÐºÑлÑка ÑлÑв, зазвиÑай викоÑиÑÑовÑÑÑÑ âвеÑблÑжий ÑегÑÑÑÑâ (camelCase). ТобÑо Ñлова йдÑÑÑ Ð¾Ð´Ð½Ðµ за одним, Ñ ÐºÐ¾Ð¶Ð½Ðµ Ñлово пиÑÑÑÑ Ñз Ð²ÐµÐ»Ð¸ÐºÐ¾Ñ Ð±Ñкви й без пÑобÑлÑв: myVeryLongName. ÐаÑважÑе, Ñо пеÑÑе Ñлово пиÑеÑÑÑÑ Ð· маленÑÐºÐ¾Ñ Ð±Ñкви.
Що ÑÑкаво â знак долаÑа '$' Ñ Ð·Ð½Ð°Ðº пÑдкÑеÑÐ»ÐµÐ½Ð½Ñ '_' Ñакож можна викоÑиÑÑовÑваÑи в ÑменаÑ
. Це звиÑÐ°Ð¹Ð½Ñ Ñимволи, ÑÐ°ÐºÑ Ð¶, Ñк Ñ Ð±Ñкви, без бÑдÑ-Ñкого оÑобливого знаÑеннÑ.
Ð¦Ñ Ñмена Ñакож допÑÑÑимÑ:
let $ = 1; // оголоÑено змÑÐ½Ð½Ñ Ð· ÑмâÑм "$"
let _ = 2; // а ÑÐµÐ¿ÐµÑ Ð·Ð¼Ñнна з ÑмâÑм "_"
alert($ + _); // 3
ÐÑиклади недопÑÑÑÐ¸Ð¼Ð¸Ñ Ñмен змÑÐ½Ð½Ð¸Ñ :
let 1a; // не може поÑинаÑиÑÑ Ð· ÑиÑÑи
let my-name; // деÑÑÑ '-' недопÑÑÑимий в ÑменÑ
ÐмÑÐ½Ð½Ñ Ð· Ñменами apple Ñ APPLE â Ñе Ð´Ð²Ñ ÑÑÐ·Ð½Ñ Ð·Ð¼ÑннÑ.
Ðожна викоÑиÑÑовÑваÑи бÑдÑ-ÑÐºÑ Ð¼Ð¾Ð²Ñ, вклÑÑно з киÑилиÑÐµÑ Ð°Ð±Ð¾ навÑÑÑ ÑÑÑоглÑÑами, напÑиклад:
let назва = '...';
let æ = '...';
ТеÑ
нÑÑно ÑÑÑ Ð½ÐµÐ¼Ð°Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸. Ð¢Ð°ÐºÑ Ñмена дозволенÑ, пÑоÑе Ñ Ð¼ÑжнаÑодна ÑÑадиÑÑÑ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑваÑи англÑйÑÑÐºÑ Ð¼Ð¾Ð²Ñ Ð² ÑменаÑ
змÑнниÑ
(напÑиклад, yaLyublyuUkrainu => iLoveUkraine). ÐавÑÑÑ ÑкÑо ми пиÑемо маленÑкий ÑкÑипÑ, Ñ Ð½Ñого може бÑÑи ÑÑивале жиÑÑÑ Ð¿Ð¾Ð¿ÐµÑедÑ. Ðожливо, лÑдÑм з ÑнÑиÑ
кÑаÑн колиÑÑ Ð´Ð¾Ð²ÐµÐ´ÐµÑÑÑÑ Ð¿ÑоÑиÑаÑи його.
Ð ÑпиÑок заÑезеÑÐ²Ð¾Ð²Ð°Ð½Ð¸Ñ ÑлÑв, ÑÐºÑ Ð½Ðµ можна викоÑиÑÑовÑваÑи Ñк Ñмена змÑÐ½Ð½Ð¸Ñ , ÑÐ¾Ð¼Ñ Ñо ÑÑ Ñлова викоÑиÑÑовÑÑ Ñама мова.
ÐапÑиклад: let, class, return Ñ function заÑезеÑвованÑ.
Такий код видаваÑиме ÑинÑакÑиÑÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑ:
let let = 5; // не можна назваÑи змÑÐ½Ð½Ñ "let", помилка!
let return = 5; // Ñакож не можна називаÑи змÑÐ½Ð½Ñ "return", помилка!
use strictÐазвиÑай нам поÑÑÑбно оголоÑиÑи змÑÐ½Ð½Ñ Ð¿ÐµÑед ÑÑ Ð²Ð¸ÐºÐ¾ÑиÑÑаннÑм. Ðле в ÑÑаÑÑ ÑаÑи бÑло ÑеÑ
нÑÑно можливим ÑÑвоÑиÑи змÑÐ½Ð½Ñ Ð¿ÑоÑÑим пÑиÑвоÑннÑм знаÑеннÑ, без викоÑиÑÑÐ°Ð½Ð½Ñ let. Це вÑе Ñе пÑаÑÑÑ, ÑкÑо не вмикаÑи ÑÑвоÑий Ñежим Ñ Ð½Ð°ÑиÑ
ÑкÑипÑаÑ
Ð´Ð»Ñ Ð¿ÑдÑÑÐ¸Ð¼Ð°Ð½Ð½Ñ ÑÑмÑÑноÑÑÑ Ð·Ñ ÑÑаÑими ÑÑенаÑÑÑми.
// "use strict" в ÑÑÐ¾Ð¼Ñ Ð¿ÑÐ¸ÐºÐ»Ð°Ð´Ñ Ð½Ðµ викоÑиÑÑовÑÑÑÑÑÑ
num = 5; // ÑкÑо змÑнна "num" не ÑÑнÑвала, ÑÑ Ð±Ñде ÑÑвоÑено
alert(num); // 5
Це погана пÑакÑика, Ñка пÑизведе до помилки в ÑÑвоÑÐ¾Ð¼Ñ ÑежимÑ:
"use strict";
num = 5; // помилка: num не оголоÑено
ÐонÑÑанÑи
Щоб оголоÑиÑи конÑÑанÑÑ (незмÑнÑванÑ) змÑннÑ, викоÑиÑÑовÑйÑе клÑÑове Ñлово 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â¦)