Опубликован: 01.09.2010 | Уровень: для всех | Доступ: платный | ВУЗ: Сибирский федеральный университет
Лекция 9:

Сценарии Javascript

Операторы и управляющие структуры

Javascript поддерживает арифметические, логические и битовые операторы и ряд вспомогательных операторов.

Арифметические операторы

Операции сложения (+), вычитания (-), умножения (*) и деления (/) выполняются в общепринятой манере.

x = ((1 + 2)*3 – 4)/5; // 1

Оператор деления с остатком (%) делит первое число на второе и возвращает остаток

a = 9 % 4; // 1
    b = 19 % 6.7; // 5.6

В Javascript нет операции целочисленного деления. Чтобы получить целое частное, следует отсечь десятичные знаки.

dividend = 13; // делимое
    divisor = 5; // делитель
    quotient = parseInt(dividend / divisor); // частное (2)
    reminder = dividend % divisor; // остаток (3)

Оператор плюс (+) требует некоторого дополнительного внимания. Помимо арифметического сложения этот оператор выполняет также конкатенацию (строковое слияние). Результат может иногда оказаться неожиданным (для начинающего разработчика).

a = 1;
    b = '2';
    c = a + b; // 12

Строковое слияние происходит всегда, когда хотя бы один из операндов – строка. Остальные арифметические операторы пытаются сначала преобразовать строку в число и только в случае неуспеха возвращают ошибку NaN (Not a Number).

Арифметические операторы могут быть объединены с оператором присваивания (=), что является удобной сокращенной записью операций.

a += 3; // эквивалентно a = a + 3
    b /= 2; // b = b / 2
    c = 'Hello';
    c += ' world!'; // Hello world

Есть также три одноместных оператора: смены знака (-), инкремента (++) и декремента (--).

x = -x; // смена знака
    x++; // эквивалентно x += 1 или x = x + 1
    --x; // эквивалентно x -= 1 или x = x – 1

Операторы инкремента и декремента могут иметь префиксную ( ++x ) и постфиксную ( x++ ) формы. В префиксной форме переменная сначала изменяется, затем используется, в постфиксной сначала используется, затем изменяется.

var a, b, c, d;
    a = b = 2;
    // так можно, поскольку оператор присваивания возвращает значение
    c = ++a; // 3
    d = b++; // 2
Логические операторы

Операторы сравнения производят сравнение числовых или строковых операндов и возвращают логическое значение. При сравнении строки рассматриваются как цепочки 16-битных символов. Следует иметь в виду, что в таблицах символов заглавные буквы идут впереди строчных, таким образом "Я" оказывается меньше "автор". Для правильного алфавитного сравнения строки следует привести к верхнему или нижнему регистру.

Операторы > (больше), < (меньше), >= (больше или равно), <= (меньше или равно):

  • Пытаются привести оба операнда к числам
  • Если оба операнда – строки, выполняют строковое сравнение
  • Если любой из операндов имеет значение NaN (Not a Number), возвращают false (ложь)
  • -0 == +0
  • -\infty < -\infty < любое число
  • +\infty > +\infty > любое число

Операторы == (равно), != (не равно):

  • Если типы данных различны, пытаются привести их к строке, числу или логическому типу
  • NaN != NaN
  • -0 == +0
  • null == null, null == undefined
  • 1 == '1', 1 == true, 0 == false, true != 'true'

Операторы сравнения на идентичность ( === ) и неидентичность ( !== ). Для идентичности операнды должны быть одного типа и указывать на один объект.

Логическое отрицание ( !) меняет истину на ложь и наоборот.

Логическое И ( && ) возвращает истину, только когда оба операнда истинны.

Логическое ИЛИ ( || )возвращает истину, только когда хотя бы один из операндов истина.

"Тройной" условный оператор позволяет сократить запись при присваивании значения по условию:

var x = 3;
  result = x % 2 == 0 ? "четное" : "нечетное";
  //эквивалентно
  if (x % 2 == 0)
    result = "четное";
  else
    result = "нечетное";
Юрий Шах
Юрий Шах

Профессиональный веб-дизайн: Введение в современные веб-технологии
Самостоятельная работа 4

"3. Создание внешней таблицы.

Теперь создайте таблицу с двумя строками. Во второй строке создайте две ячейки - в первую переместите таблицу цифр, а во вторую - таблицу знаков."

Как в ячейку <td> поместить таблицу? Таблица же сама состоит из ячеек. Исходя из задания следует, что <td> может быть родителем для <td>, но это противоречит правилам HTML?
Если не прав - поправьте.
Также прошу разъяснить, как именно выполнить занное условие - поместить в табличную ячейку таблицу цифр, а в другую ячейку - таблицу знаков? 

Елена Сапегова
Елена Сапегова

После прохождения теоретической части пришло письмо об окончании теоретической части курса, будет ли практическая часть?

Nat Ves
Nat Ves
Израиль
Татьяна Орлова
Татьяна Орлова
Россия, Воронежская область