JavaScript. Подробное руководство, 6-е издание
Шрифт:
Как и при использовании оператора
Характерное использование этого оператора заключается в том, что он выбирает первое истинное значение из предложенного множества альтернатив:
Этот прием часто используется в функциях для определения значений по умолчанию параметров:
// Скопировать свойства объекта о в объект р и вернуть р
4.10.3. Логическое НЕ (!)
Оператор
В отличие от операторов
Будучи унарным, оператор ! имеет высокий приоритет и тесно связан с операндом. Если вам потребуется инвертировать значение выражения, такого как
// Следующие две проверки на идентичность дают положительный результат
// при любых значениях р и q
!(р && q) === !р || !q !(р || q) === !р && !q
4.11. Выражения присваивания
Для присваивания значения переменной или свойству в языке JavaScript используется оператор
Левым операндом оператора = должно быть левостороннее выражение: переменная, элемент массива или свойство
объекта. Правым операндом может быть любое значение любого типа. Значением оператора присваивания является значение правого операнда. Побочный эффект оператора = заключается в присваивании значения правого операнда переменной или свойству, указанному слева, так что при последующих обращениях к переменной или свойству будет получено это значение.Чаще всего выражения присваивания используются как самостоятельные инструкции; тем не менее иногда можно увидеть, как выражение присваивания включается в более сложные выражения. Например, в одном выражении можно совместить операции присваивания и проверки значения:
обычно бывает необходимо использовать круглые скобки, если выражение присваивания используется в составе более сложного выражения.
Оператор присваивания имеет ассоциативность справа налево, поэтому при наличии в выражении нескольких операторов присваивания они вычисляются справа налево. Благодаря этому можно написать код, присваивающий одно значение нескольким переменным, например:
4.11.1. Присваивание с операцией
Помимо обычного оператора присваивания = в языке JavaScript поддерживается несколько других операторов, объединяющих присваивание с некоторой другой операцией. Например, оператор += выполняет сложение и присваивание. Следующее выражение:
эквивалентно выражению:
Как можно было ожидать, оператор += работает и с числами, и со строками. Для числовых операндов он выполняет сложение и присваивание, а для строковых -конкатенацию и присваивание.
Из подобных ему операторов можно назвать -=, *=, &= и др. Все операторы присваивания с операцией перечислены в табл. 4.2.
В большинстве случаев выражение:
где ор означает оператор, эквивалентно выражению:
В первой строке выражение а вычисляется только один раз. Во второй - дважды. Эти выражения отличаются, только если подвыражение а содержит операции, имеющие побочные эффекты, такие как вызов функции или оператор инкремента. Например, следующие два выражения присваивания неэквивалентны:
4.12. Вычисление выражений
Подобно многим интерпретирующим языкам, JavaScript поддерживает возможность интерпретации строк с программным кодом на языке JavaScript, выполняя их, чтобы получить некоторое значение. В JavaScript эта операция выполняется с помощью глобальной функции eval: