JavaScript. Подробное руководство, 6-е издание, стр. 5

<b>// Логические операторы объединяют или инвертируют логические значения </b>

<b>(х == 2) &amp;&amp; (у == 3) // =&gt; true: оба сравнения истинны. &amp;&amp; - &quot;И&quot;</b>

<b>(х &gt; 3) || (у &lt; 3)   // =&gt; false: оба сравнения ложны. || - &quot;ИЛИ&quot;</b>

<b>!(х == у)            // =&gt; true: ! инвертирует логическое значение</b>

Если фразы в языке JavaScript называются выражениями, то полные предложения называются инструкциями; они рассматриваются в главе 5 «Инструкции». В программном коде, приведенном выше, строки, заканчивающиеся точками с запятой, являются инструкциями. (В примере ниже можно увидеть инструкции, состоящие из нескольких строк, которые не завершаются точками с запятой.) Между инструкциями и выражениями много общего. Грубо говоря, выражение - это конструкция, которая вычисляет значение, но ничего не делает: она никак не изменяет состояние программы. Инструкции, напротив, не имеют значения (или их значение не представляет интереса для нас), но они изменяют состояние программы. Выше уже были показаны инструкции объявления переменных и присваивания значений. Еще одной обширной категорией инструкций являются управляющие конструкции, такие как условные инструкции и инструкции циклов. Примеры этих инструкций будут показаны далее, после того, как мы познакомимся с функциями.

Функция - это именованный и параметризованный блок программного кода JavaScript, который определяется один раз, а использоваться может многократно. Формальное знакомство с функциями мы отложим до главы 8 «Функции», однако, как и в случае с объектами и массивами, мы много раз встретимся с функциями, прежде чем доберемся до этой главы. Ниже приводятся несколько примеров простых функций:

<b>// Функции - это параметризованные блоки программного кода JavaScript,</b>

<b>// которые можно вызывать многократно.</b>

<b>function plus1(x) { // Определить функцию с именем &quot;plusr и с параметром &quot;х&quot;</b>

<b>  return х+1;       // Вернуть значение на 1 больше полученного</b>

<b>}                   // Функции заключаются в фигурные скобки</b>

<b>plus1(y) // =&gt; 4: у имеет значение 3, поэтому этот вызов вернет 3+1</b>

<b>var square = function(x) { // Функции можно присваивать переменным </b>

<b>  return х*х;              // Вычислить значение функции</b>

<b>};                         // Точка с запятой отмечает конец присваивания.</b>

<b>square(plus1(y))           // =&gt; 16: вызов двух функций в одном выражении</b>

При объединении функций с объектами получаются методы.

<b>// Функции, присвоенные свойствам объектов, называются методами.</b>

<b>// Все объекты в JavaScript имеют методы:</b>

<b>var а = [];    // Создать пустой массив</b>

<b>а.push(1,2,3); // Метод push() добавляет элементы в массив</b>

<b>a.reverse();   // Другой метод: переставляет элементы в обратном порядке</b>

<b>// Можно определять собственные методы. Ключевое слово &quot;this&quot; ссылается на объект,</b>

<b>// в котором определен метод: в данном случае на массив points, </b>

<b>points.dist = function() { // Метод вычисления расстояния между точками</b>

<b>var р1 = this[0];      // Первый элемент массива, относительно которого вызван метод</b>

<b>var р2 = this[1];      // Второй элемент объекта &quot;this&quot;</b>

<b>var а = р2.х-р1.х;     // Разность координат X</b>

<b>var b = р2.у-р1.у;     // Разность координат Y</b>

<b>return Math.sqrt(a*a + // Теорема Пифагора</b>

<b>                 b*b); // Math.sqrtO вычисляет корень квадратный</b>

<b>};</b>

<b>points.dist() // =&gt; 1.414: расстояние между 2-мя точками</b>

Теперь, как было обещано, рассмотрим несколько функций, которые демонстрируют применение наиболее часто используемых управляющих инструкций JavaScript:

<b>// В JavaScript имеются условные инструкции и инструкции циклов, синтаксически </b>

<b>// похожие на аналогичные инструкции С, C++, Java и в других языках.</b>

<b>function abs(x) {  // Функция, вычисляющая абсолютное значение</b>

<b>  if (х &gt;= 0) {    // Инструкция if ...</b>

<b>    return х;      // выполняет этот код, если сравнение дает true.</b>

<b>  }                // Конец предложения if.</b>

<b>  else {           // Необязательное предложение else выполняет свой код,</b>

<b>    return -x;     // если сравнение дает значение false.</b>

<b>  }                // Фигурные скобки можно опустить, если предложение </b>

<b>                   // содержит 1 инструкцию.</b>

<b>}                  // Обратите внимание на инструкции return внутри if/else.</b>

<b>function factorial(n) { // Функция, вычисляющая факториал</b>

<b>  var product = 1;      // Начать с произведения, равного 1</b>

<b>  while(n &gt; 1) {        // Повторять инструкции в {}, пока выраж. в () истинно</b>

<b>    product *= n;       // Сокращенная форма выражения product = product * n;</b>

<b>    n--;                // Сокращенная форма выражения n = п - 1</b>