Присваивание с операцией
Помимо обычного оператора присваивания (=) JavaScript поддерживает несколько других операторов-сокращений, объединяющих присваивание с некоторой другой операцией. Например, оператор += выполняет сложение и присваивание.
Следующие выражения эквивалентны:
total += sales_tax
total = total + sales_tax
Из подобных ему операторов можно назвать -=, *=, &= и %=. Операторы присваивания с операцией перечислены в табл. 4.
Таблица 4 - Дополнительные операторы присвоения
Оператор | Пример выражение | Эквивалентное |
+= -= *= /= %= | X+=Y X-=Y X *=Y X/=Y X%=Y | X = X + Y X = X - Y X = X * Y X = X / Y X = X % Y |
Условный оператор (?:)
Условный оператор – это единственный тернарный оператор (с тремя операндами) в JavaScript и иногда он так и называется – «тернарный оператор». Этот оператор обычно записывается как ?:, хотя в текстах программ он выглядит по-другому. Он имеет три операнда, первый идет перед ?, второй – между ? и :, третий –
после :. Используется он следующим образом:
x > 0 ? x*y : -x*y
Первый операнд условного оператора должен быть логическим значением (или преобразовываться в логическое значение) – обычно это результат выражения сравнения. Второй и третий операнды могут быть любыми значениями. Значение, возвращаемое условным оператором, зависит от логического значения первого операнда. Если этот операнд равен true, то условное выражение принимает значение второго операнда. Если первый операнд равен false, то условное выражение принимает значение третьего операнда.
Тот же результат можно получить с помощью инструкции if, но оператор ?: часто оказывается удобным сокращением. Вот типичный пример, в котором проверяется, определена ли переменная, и если да, то берется ее значение, а если нет, берется значение по умолчанию:
greeting = "hello " + (username != null ? username : "there");
Эта запись эквивалентна следующей конструкции if, но более компактна:
greeting = "hello ";
if (username != null)
greeting += username;
else
greeting += "there";
Оператор typeof
Унарный оператор typeof помещается перед единственным операндом, который может иметь любой тип. Его значение представляет собой строку, указывающую тип данных операнда.
Результатом оператора typeof будет строка "number", "string" или "boolean", если его операндом является число, строка или логическое значение соответственно.
Для объектов, массивов и (как ни странно) значения null результатом будет строка "object". Для операндов-функций результатом будет строка "function", а для неопределенного операнда – строка "undefined".
Значение оператора typeof равно "object", когда операнд представляет собой объект-обертку Number, String или Boolean. Оно также равно "object" для объектов Date и RegExp.
Оператор typeof может применяться, например, в таких выражениях:
typeof i;
(typeof value == "string") ? "'" + value + "'" : value;
Операнд typeof можно заключить в скобки, благодаря чему ключевое слово typeof выглядит как имя функции, а не как ключевое слово или оператор:
typeof(i)
Например:
alert(typeof(3)) //Вернет значение “number”
Дата добавления: 2016-01-09; просмотров: 621;