Разбиране и използване на JavaScript изрази

Изявленията се използват в JavaScript за контрол на неговия програмен поток. За разлика от свойствата, методите и събитията, които са фундаментално обвързани с обекта, който ги притежава, изразите са проектирани да работят независимо от всеки обект на JavaScript. Това означава, че можете да използвате израз, независимо дали работите с обекта на документа, обекта на прозореца, обекта на историята или друг обект. Като език JavaScript поддържа сравнително малко твърдения - достатъчно, за да се справи. Той обаче предлага минимум изявления, необходими за изграждане на напълно функционално приложение.

Понастоящем JavaScript поддържа следните единадесет твърдения. Имайте предвид, че някои от тях - като comment, var и new - не са добросъвестни твърдения, но често се третират като такива. Те са включени в тази дискусия с цел пълнота.

  • // коментар
  • почивка
  • продължи
  • за
  • за ... в
  • функция
  • ако ... друго
  • ново
  • връщане
  • вар
  • докато
  • с

Някои от изявленията, предлагани в Java, липсват особено в JavaScript. Това включва изявлението за превключване, както и всички форми на изявления за улавяне на грешки (като catch and throw). JavaScript съхранява тези изявления като запазени думи и може би в някоя бъдеща версия те ще бъдат внедрени.

Коментар (//)

Символите // казват на JavaScript, че искате да включите обяснителни коментари във вашата програма. Коментарът завършва при първото твърдо връщане, което се среща. JavaScript не ограничава дължината на коментара, стига да няма твърдо връщане преди коментара да приключи. JavaScript приема текст, след като твърдото връщане е валиден код.

// Това е прост коментар

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

Можете да поставите символите // за коментар навсякъде на ред. JavaScript ще третира целия текст на този ред след // като коментар.

MyVariable = "Това е тест" // присвоява текстова променлива MyVariable 

Коментарите се игнорират при възпроизвеждане на скрипта, така че те не оказват голямо влияние върху скоростта на изпълнение. Много коментари обаче увеличават размера на файла на скриптове и отнема повече време за изтегляне на компютъра на потребителя чрез комутируема интернет връзка. За най-добри резултати ограничете коментарите в програмите на JavaScript до кратки единични редове.

Когато пишете дълги коментари, по-добре е да използвате алтернативните символи за коментиране / * и * /. Текстът между тези знаци се третира като коментар. Като алтернатива можете да започнете всеки ред с символите // коментар.

// Този раздел проверява дали е натиснат клавиш Enter, // след това продължава 

или

/ * Този раздел проверява дали е натиснат клавиш Enter, след което продължава нататък * / 

Назад към индекса

Прекъсване

Операторът break казва на JavaScript да излезе от „контролирана структура“ и да възобнови изпълнението в точка след структурата. Операторът break се използва със структури, изградени с помощта на следните команди:

  • за
  • за ... в
  • докато

Операторът break се използва най-често за преждевременно прекратяване на цикъл for. Например:

за (Count = 1; Count <= 10; Count ++) {if (Count == 6) break; document.write ("

Цикъл: "+ Count +"

");}

Този пример показва цикъл for, който брои от 1 до 10 и отпечатва номера при всяка итерация на цикъла. Оператор if вътре в цикъла for се използва за тестване дали стойността в променливата Count е равна на 6. Ако Count е равна на 6, операторът break се изпълнява и скриптът излиза от цикъла for. Както се използва в този прост пример, скриптът ще брои от 1 до 6, след което ще спре. Той излиза от цикъла for, преди да може да брои до 10.

Назад към индекса

продължи

Операторът continue казва на JavaScript да пропусне всякакви инструкции, които могат да последват в цикъл for, for ... in или while, и да продължи със следващата итерация. Най-честата употреба на оператора continue е да пропуснете условно инструкциите в цикъла, но да не излизате от цикъла (както прави операторът break). Например:

за (Count = 1; Count <= 10; Count ++) {if (Count == 6) continue; document.write ("

Цикъл: "+ Count +"

");}

Примерът по-горе показва цикъл for, който брои от 1 до 10 и отпечатва номера при всяка итерация на цикъла. Оператор if вътре в цикъла for се използва за тестване дали стойността в променливата Count е равна на 6. Ако Count е равна на 6, операторът continue се изпълнява и скриптът пропуска инструкцията document.write на следващия ред. Но цикълът не свършва. Вместо това той продължава и отпечатва редове за останалите числа. Както се използва в този прост пример, скриптът ще брои от 1 до 5, прескача 6, след което отпечатва 7 до 10.

Назад към индекса

За

Изявлението for повтаря блок инструкции един или повече пъти. Броят на итерациите се контролира от стойности, предоставени като аргументи. Синтаксисът на оператора for е:

за (InitVal; Тест; Увеличаване) 
  • InitValе началната стойност на цикъла for. Често е 0 или 1, но може да е произволно число. InitValе израз, който установява началната стойност и присвоява тази стойност на променлива. Например, Count = 0 или i = 1.

  • Testе изразът, използван от оператора for за контрол на броя итерации на цикъла. Докато Testизразът е верен, цикълът продължава. Когато Testизразът се окаже невярно, цикълът завършва. Пример: Count <10 е вярно, стига стойността в променливата Count да е по-малка от 10.

  • Incrementпоказва как искате да се брои цикълът for - с единици, двойки, петици, десетки и т.н. Това също е израз и обикновено приема формата на CountVar++, където CountVarе името на променливата, присвоена за първи път в InitValизраза. Пример: Count ++ увеличава стойността на променливата Count с един за всяка итерация.
Имайте предвид, че за разлика от всички други конструкции в JavaScript, операторът for използва точки и запетаи, а не запетаи, за да отдели своите аргументи. Това е в съответствие със синтаксиса, използван в C, C ++ и Java.

Ето пример за цикъл for, който брои от 1 до 10, стъпвайки по една цифра в даден момент. При всяка итерация скриптът вмъква малко текст и започва нов ред. JavaScript, който искате да повторите, е затворен със знаци {и}, следващи инструкцията for; това формира блока за изявления. Можете да предоставите един или няколко реда в символите {и}.

за (Count = 1; Count <= 10; Count ++) {document.write ("Итерация:" + Count + "

");}

Count е името на променливата, използвано за съхраняване на брояча на цикъла for. Цикълът for започва с 1 и продължава до 10. Тестовият израз е Count <= 10, който гласи:

Броят е по-малък или равен на 10 

As long as this expression is true, the for loop continues. Do note that the Increment argument is also an expression and in the example uses the Count variable to increment the for loop by 1 for each iteration. There's no law that says you must increment the for loop by ones. Here's just one of the many alternatives. This example counts by tens, from 10 to 100.

for (Count=1; Count<101; Count+=10) { document.write ("Iteration: "+Count+"

"); }

Back to index

For...in

The for...in statement is a special version of the for statement described in the previous section. For...in is used to display the property names and/or property contents of objects. It is mostly handy as a debugging and testing tool: If a portion of your JavaScript code isn't working properly, and you suspect it may be the fault of a JavaScript object you are trying to use, you can examine all of the properties for that object with the for...in statement.

Unlike the for statement, for...in doesn't use incrementing tests or other expressions. You provide the name of a holding variable (the name of the variable is up to you) and the object you want to use. The basic syntax for the for...in statement is:

for (var in object) { statements } 
  • var is the name of a variable
  • object is the object you wish to examine
  • statements are one or more JavaScript instructions you wish to execute for each property returned by the for...in loop

As an example, suppose you want to determine the properties of the navigator object (this object contains details about the Netscape Navigator or other browser you are using). The following code displays each property name in an alert box. When running the script, click OK to proceed to the next property name. The loop automatically ends when there are no more properties in the object.

for (temp in navigator) { alert (temp); } 

A variation of this example is shown below. It not only displays the property names but also displays the contents of each property (some properties are empty and therefore no contents are shown for them). The contents of the properties are displayed by using the syntax object[var], or in this case navigator[temp].

for (temp in navigator) { alert (temp + ": " + navigator[temp]); } 

The for..in loop can be used for all object types. You can use it to iterate through all the properties for a form in a document, for example, or through the properties of a user-defined object. For instance, to cycle through all the properties of a form, you'd use the for...in loop as in the following example (assume the form name is "myform"):

 function test() { for (temp in document.myform) { alert (temp); } }

Back to index

Function

The function statement lets you create your own user-defined functions (as well as user-defined objects and methods for those objects). Functions are self-contained routines that can be "called" elsewhere within your JavaScript code. For example, if you have a function named

writeMyName

, which displays your name in headline text, you can activate it by merely referring to the name

writeMyName

someplace within your JavaScript code. Here's a short

test

that shows how this might work:

  Function Test  function writeMyName () { MyName="John Doe" alert (MyName) }     

The writeMyName function is defined within ... tags. It is activated (otherwise known as "called") when the form button is pushed. This calling action is accomplished using the onClick event handler, defined in the tag for the form button.

Back to index

If...else

The if, along with its optional else, statement is used to build an "if conditional" expression. It is called a conditional expression because it tests for a specific condition.

  • If the expression is true, the script performs the instructions following the if statement.
  • If the expression is false, the script jumps to the instructions that follow the else statement. If there is no else statement, the script jumps past the if statement entirely and continues from there.

The syntax for if is:

if (expression) 

The result of the if expression is always either true or false. The following syntax is acceptable when there's only one instruction following the if and else statements:

if (ExampleVar == 10) Start(); else Stop(); 

Should more than one instruction follow the if or else statement, the { and } characters must be used to define an if statement block. With the { and } characters in place, JavaScript knows to execute all of the instructions within the block.

if (ExampleVar == 10) { Count = 1; Start(); } else { Count = 0; Stop(); } 

Expressions in if statements are not limited to the == equality operator. You can test if values are not equal to one another, greater than, less than, and more. For more information on the operators you can use, see the references list at the end of this column. It points to valuable JavaScript documentation, including documentation provided by Netscape.

Back to index

New

The new statement creates a new copy of an object. It is used in either of two ways:

  • To define a new Date object (Date is a built-in JavaScript object)
  • To define a new user-defined object

The syntax is the same with either use:

varname = new objectName(params); 
  • varname is the name of the new object. Acceptable names are the same as for JavaScript variables. In fact, you can consider the created object as a JavaScript variable.

  • objectName is the name of the object. When using the built-in Date object, you use the word Date (note the capitalization -- this is mandatory). When using a user-defined object function, you provide the name of the object function.

  • params are one or more parameters that you pass to the object function, if needed.

The following example shows how to use the new statement to create a copy -- otherwise known as an "instance" -- of the Date object:

now = new Date(); 

Обектът now, който може да се счита за променлива на JavaScript, има всички свойства и методи на обекта JavaScript Date. Например използвате обекта сега, за да определите текущия час от деня:

сега = нова дата (); HourNow = сега.getHours ();