JavaСкриптова променлива: Деклариране, присвояване на стойност с пример

⚡ Умно обобщение

JavaПроменливите в скрипта съхраняват стойности като имена и числа или резултат от израз. Декларирането на такава с var, let или const запазва именуван слот, който останалата част от скрипта може да чете и актуализира.

  • 🔘 Декларация: Ключовите думи var, let или const създават името, преди който и да е ред код да го прочете или запише.
  • ☑️ Задание: Единичен знак за равенство копира стойност в променливата, или на декларационния ред, или по-късно.
  • ✅ наименуване: Имената започват с буква, знак за долар или долна черта, като главните и малките букви се броят за различни.
  • 🧪 Съвременни ключови думи: const е подходящ за стойности, които никога не се променят, let е подходящ за стойности, които се променят, а var оцелява главно в наследени скриптове.
  • 🛠️ Обхват: let и const остават вътре в ограждащите ги скоби, докато var достига до цялата обграждаща ги функция.
  • 📌 Чести повреди: Преназначаването на константа, твърде ранното четене на let или пропускането на ключовата дума пораждат отделна грешка.

Деклариране на JavaПроменлива на скрипта и присвояване на стойност към нея

Променливите се използват за съхраняване на стойности (име = „Джон“) или изрази (сума = x + y). Всяка стойност, която скриптът запазва за по-късно – потребителско име, текуща сума, флаг „да“ или „не“ – се намира в променлива, така че декларирането и правилното им именуване е първото умение, което трябва да усвоите. JavaСценарий.

Деклариране на променливи в JavaСценарий

Преди да използвате променлива, първо трябва да я декларирате. Трябва да използвате ключовата дума var, за да декларирате променлива по следния начин:

var name;

Декларацията сама по себе си създава името и нищо повече. В този момент променливата съществува, но съдържа специалната стойност неопределена, защото все още не е въведена стойност в нея.

⚠️ Бележка към версията: var е оригиналната ключова дума за декларация и все още се изпълнява във всеки браузър. Добавен е ES6 (2015). нека намлява конст, които са ключовите думи „модерно“ JavaИзползване на скриптове. И двете са сравнени с var по-надолу на тази страница.

Задайте стойност на променливата

Можете да присвоите стойност на променливата или докато декларирате променливата, или след деклариране на променливата.

var name = "John";

OR

var name;

name = "John";

И двете форми завършват с един и същ резултат. Единичният знак за равенство е оператор за присвояване: копира стойността отдясно в променливата отляво. Това не е тест за равенство, който се записва като == или === и принадлежи към условни изявления.

Наименуване на променливи

Въпреки че можете да именувате променливите както желаете, добра практика за програмиране е да им давате описателни и смислени имена. Освен това имената на променливите трябва да започват с буква и са чувствителни към главни и малки букви. Следователно променливите studentname и studentName са различни, защото буквата n в името е различна (n и N).

Четири правила определят дали едно име е законно:

  1. Първият символ трябва да е буква, знак за долар или долна черта — никога цифра.
  2. След първия знак са позволени букви, цифри, знаци за долар и долни черти.
  3. Интервалите не са позволени, поради което идея от две думи се съединява като studentName, а не се оставя като две думи.
  4. Резервирани думи като var, let, const, class и return не могат да бъдат използвани повторно като имена.

По конвенция JavaИмената на скриптовете използват camelCase, така че първата дума е с малка буква, а всяка следваща дума започва с главна буква: firstName, totalPrice, isLoggedIn.

Скриптът по-долу декларира две променливи, прилага към тях петте аритметични оператора и записва всеки резултат на страницата. Опитайте сами:

<html>
<head>
<title>Variables!!!</title>
<script type="text/javascript">
var one = 22;
var two = 3;
var add = one + two;
var minus = one - two;
var multiply = one * two;
var divide = one/two;
	document.write("First No: = " + one + "<br />Second No: = " + two + " <br />");
	document.write(one + " + " + two + " = " + add + "<br/>");
	document.write(one + " - " + two + " = " + minus + "<br/>");
	document.write(one + " * " + two + " = " + multiply + "<br/>");
	document.write(one + " / " + two + " = " + divide + "<br/>");
</script>
</head>
<body>
</body>
</html>

var срещу let срещу const в Modern JavaСценарий

Само var съществуваше, когато JavaСкриптът е написан за първи път и има две навика, които изненадват начинаещите: може да бъде предеклариран тихо и игнорира границите на блоковете. let и const са добавени, за да се коригират и двете. Таблицата по-долу поставя трите ключови думи една до друга.

Поведение Var нека конст
Обхват Цялата функция Ограждащ блок Ограждащ блок
Може да бъде преназначен Да Да Не
Може да се декларира отново в същия обхват Да Не Не
Задължителна стойност на реда на декларацията Не Не Да
Прочетете преди обявяването му Връща неопределено Грешка в референцията Грешка в референцията

Един прост навик обхваща почти всеки случай: посягайте към конст първо, преминете към нека момента, в който дадена стойност наистина трябва да се промени, като например брояч в един от JavaЦикли на скриптовеи запазете var за четене на стар код, вместо за писане на нов код.

Променлив обхват и повдигане JavaСценарий

Обхватът (scope) определя кои части от скрипта могат да виждат променлива. Декларацията var принадлежи на функцията, която я съдържа, така че тя екранира всеки if блок или for блок вътре в тази функция. Декларацията let или const принадлежи на двойката скоби, в които се намира, и изчезва извън тях.

function demo() {
  if (true) {
    var wide = "visible throughout demo()";
    let narrow = "visible only inside these braces";
  }
  console.log(wide);
  console.log(narrow);
}

Първият console.log отпечатва своя низ. Вторият хвърля ReferenceError, защото narrow вече не съществува след края на if блока.

Подемно е втората половина на историята. JavaСкриптът регистрира всяка декларация в дадена област на видимост, преди да изпълни и един ред от тази област. Името на var е регистрирано и е зададено на undefined, така че четенето ѝ по-рано е законно, но безполезно. Името на let или const е регистрирано без стойност, а празнината между началото на блока и реда на декларацията се нарича временна мъртва зона.

console.log(a);
var a = 1;

console.log(b);
let b = 2;

Първият ред отпечатва undefined. Третият ред завършва с „Cannot access 'b' before initialization“ — грешката, която прави let по-безопасен от var, защото сочи към истинската грешка, вместо да я скрива.

Често срещани грешки при деклариране JavaСкриптови променливи

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

Съобщение от конзолата Причина Фиксирайте
Синтаксична грешка: Идентификаторът „x“ вече е деклариран let или const, използвани два пъти за едно и също име в един блок Използвайте повторно съществуващата променлива или преименувайте втората
TypeError: Присвояване на постоянна променлива На константа е дадена нова стойност Декларирайте го с let, ако стойността трябва да се промени
ReferenceError: Не е възможен достъп до 'x' преди инициализация Вътре във времевата мъртва зона е прочетен let или const Преместете текста под реда на декларацията
ReferenceError: x не е дефиниран Името никога не е било обявено или е било написано неправилно Декларирайте го или коригирайте правописа и главните и малките букви
„undefined“ се появява там, където се очакваше стойност Променливата е декларирана, но никога не е била присвоена Задайте стойност преди първото четене

Добавянето на „use strict“ в началото на файла превръща тихата версия на четвъртия случай – присвояване на име, което никога не е било декларирано – във видима грешка, поради което тя е част от всеки нов скрипт. Същите правила за променливите се пренасят непроменени към масиви, обектии код от страна на сървъра, написан за Node.js.

Въпроси и Отговори

Всеки от тях. JavaСкриптът е динамично типизиран, така че една променлива може да съдържа число, след това низ и накрая обект. Декларацията запазва име, а не тип. Използвайте typeof, за да проверите какво съдържа променливата във всеки един момент.

JavaСкриптът създава имплицитна глобална променлива, която друг код може да презапише случайно. Добавянето на „use strict“ в началото на файла превръща същия ред в ReferenceError, така че грешката се появява веднага, вместо да се разпространява тихо.

„undefined“ означава, че променливата е декларирана, но никога не ѝ е дадена стойност. „null“ е стойност, която се присвоява нарочно, за да означава „няма нищо тук“. И двете са неверни, но typeof undefined връща „undefined“, докато typeof null връща „object“.

Операторът плюс съединява текст, когато някоя от страните е низ, така че 22 + „3“ дава „223“. Първо конвертирайте с Number() или parseInt(), когато е предвидена аритметика.tracция няма текстово значение, така че „3“ − 1 правилно връща 2.

Да. const заключва обвързването, а не стойността, така че свойствата на const обект и елементите на const масив все още могат да се променят. Преназначаването на самата променлива хвърля TypeError. Използвайте Object.freeze(), когато съдържанието трябва да остане фиксирано.

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

Често, да. втори пилот чете близкия код и предлага имена, съответстващи на заобикалящия стил, което помага за заместването на заместители като x или temp. Revпреглеждайте всяко име, защото едно плавно предложение все още може да опише грешно нещо.

console.log() отпечатва текущата стойност в конзолата на браузъра. За по-подробен преглед, задайте точка на прекъсване в панела „Източници“ на DevTools и задръжте курсора на мишката върху името или го добавете към списъка за наблюдение, за да прочетете стойността на точния ред.

Обобщете тази публикация с: