C, PHP, VB, .NET

Дневникът на Филип Петров


* Променливи

Публикувано на 03 септември 2009 в раздел ХHTML.

Променливите в JavaScript се дефинират чрез ключова дума var последвана от името на променливата. Когато искаме да предадем стойност, то използваме знак за равенство. Според стойността, която предаваме се определя автоматично и типа на променливата. Например ако подадем цяло число, то автоматично променливата става от целочислен тип. Ако пък подадем символен низ, то променливата става символен низ.

Ще започнем с целочислен тип променливи. Ето един пример:

<script type="text/javascript">
   var x = 5;
   var y;
   y = 6;
   var z = x * y;
   document.write("x+y="+(x+y)+"<br />z="+z);
</script>

Резултатът, който ще излезе на екрана е:

x+y=11
z=30

В този пример забелязваме няколко важни неща за document.write() функцията. На първо време – можем да изкарваме по няколко типа данни наведнъж. Обърнете внимание на следното:

document.write("x+y="+(x+y));

НЕ Е едно и също с

document.write("x+y="+x+y);

Първото ще изкара резултат x+y=11, а второто x+y=56 (5 е стойността на x, а 6 на y). Тоест ако искаме в document.write да се сумират променливи, то ги ограждаме в скоби. Малко по-долу ще обясним защо се получава така.

В този пример използвахме и умножение (var z = x * y). Както във всички езици за програмиране и в JavaScript са налични петте основни операции за целочислен тип:

  1. Събиране: var x = 3+2 // x=5
  2. Изваждане: var x = 3-2 // x=1
  3. Умножение: var x = 3*2  // x=6
  4. Деление: var x = 7/2 // x=3.5 !!!
  5. Остатък от деление: var x = 7%2 // x=1

Тук виждаме и първата съществена разлика от нормалните езици за програмиране. Делението на две целочислени числа, които имат остатък, автоматично дава резултат реално число!

При низовите променливи няма изненади. Дефинират се стандартно:

<script type="text/javascript">
   var niz1 = "Hello ";
   var niz2 = "World";
   var niz3 = niz1 + niz2;
   document.write(niz3);
</script>

Виждате, че е дефинирана и операция „сбор на низове“. Това означава, че просто слепваме двата низа един до друг. Всички символни низове се ограждат в двойни кавички.

Когато имаме сбор на низ с число, то резултатът е низ. Например „string“+5 ще даде резултат „string5“. Тук вече можем да си обясним поведението на document.write от по-горе. Написано като „x+y=“+x+y ставаше следното – първо към низ „x+y“ се добавя стойността на променливата x и се получава низ „x+y=5“. След това към низ „x+y=5“ се добавя стойността на променливата y и се получава низ „x+y=56“. Когато поставим скоби се получава друго нещо. Написано като „x+y=“+(x+y) се извършват първо операциите в скобите. Тъй като в скобите имаме само числа, то ще се изчисли техния сбор, което е резултат число – 5+6=11. След това към низ „x+y=“ се долепва стойността, която е изчислена в скобите и се получава резултат низ „x+y=11“. Затова бъдете изключително внимателни, когато миксирате различни променливи!

Задача: Напишете скрипт, който пресмята и извежда на екрана дискриминантата на квадратно уравнение с коефициенти a=-2, b=-1 и c=3.

 



4 коментара


  1. Ами принципно, нещо което не съм написал е, че знакът „долар“ ($) заедно с долна черта (_) са си просто позволени символи за имена на променливи. С други думи дали една променлива ще я именоваме „microSoft“ или „micro$oft“ няма никакво значение. Някои хора слагат $ в началото на името на променливите, за да им придадат „по-Perl“ или „по-PHP“ вид. По този начин лесно се забелязват имената на променливите в кода.

    Попринцип при първоначалния дизайн на JavaScript се е смятало, че променливи започващи с $ по конвенция ще означават „mechanically generated code“ (механично (?) генериран код), т.е. аз го разбирам като код генериран от компютърен софтуер. Това обаче бързо е отпаднало и никой не го спазва.

    Аз лично НЕ използвам $ в началото на имената на променливите. Много хора обаче го правят. Въпрос на вкус е.

    П.П. Всъщност сега погледнах детайли и се оказва, че за имена на променливи в JavaScript се позволяват почти всички символи (май е по-добре да се изведе лист със символи, които НЕ може да се ползват). Например var Ø = 5 си е нещо съвсем разрешено. Аз обаче не бих се възползвал от такива екстри – лично аз се ограничавам с a-z, A-Z и 0-9.

  2. Марто каза:

    Интересно ми е какво мислиш за употребата на $ в имената на променливите? Тоест знака $ да се поставя в началото на всяка променлива.

  3. Марто каза:

    Аз съм един от хората, които използват $ за отделяне на променливите от другия код. Както ти сам каза – по-лесно се забелязват в кода и поне за мен сорса става по-четим.

    jQuery пък от своя страна също сполучливо използват знака $.

  4. Е, както казах в JavaScript е „въпрос на вкус“ :)

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

Адресът на електронната поща няма да се публикува


*