Профессиональный веб-дизайн: Введение в современные веб-технологии "3. Создание внешней таблицы. Теперь создайте таблицу с двумя строками. Во второй строке создайте две ячейки - в первую переместите таблицу цифр, а во вторую - таблицу знаков." Как в ячейку <td> поместить таблицу? Таблица же сама состоит из ячеек. Исходя из задания следует, что <td> может быть родителем для <td>, но это противоречит правилам HTML? |
Сценарии 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 (ложь)
- < < любое число
- > > любое число
Операторы == (равно), != (не равно):
- Если типы данных различны, пытаются привести их к строке, числу или логическому типу
- 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 = "нечетное";