Javascript.RU

Операторы присваивания

Описание, примеры

Базовый оператор присваивание - это обычное приравнивание =, которое дает левому операнду значение правого операнда.

Остальные операторы являются сокращениями следующих форм.

Сокращенный оператор Значение
x += y x = x + y
x -= y x = x - y
x *= y x = x * y
x /= y x = x / y
x %= y x = x % y
x <<= y x = x << y
x >>= y x = x >> y
x >>>= y x = x >>> y
x &= y x = x & y
x ^= y x = x ^ y
x |= y x = x | y

См. также


Автор: Styura (не зарегистрирован), дата: 2 марта, 2010 - 21:03
#permalink

спасибо


Автор: trikadin (не зарегистрирован), дата: 8 апреля, 2010 - 23:00
#permalink

А почему вы не рассматриваете условный оператор присваивания? И, если рассмотрите, не могли бы ответить: возможно ли использование этого оператора без указания значения, присваиваемого в случае невыполнения условия?


Автор: advocatweb (не зарегистрирован), дата: 14 мая, 2010 - 16:30
#permalink

Если справа от "=" стоит объект, у меня почему-то переменной слева не присваивается значение объекта, а создается синоним "правого" объекта (ссылка на объект). Например:

oldObj.v=5
newObj=oldObj
newObj.v++
//oldObj.v тоже прибавилась

Это так и должно быть? Как тогда создать копию объекта?


Автор: B@rmaley.e><e, дата: 14 мая, 2010 - 22:54
#permalink

Да, так и должно быть.

Создавайте копию объекта копированием всех свойств в новый пустой объект.


Автор: voyager (не зарегистрирован), дата: 10 июня, 2010 - 09:26
#permalink

А не могли бы вы поподробней описать такую ситуацию:

var obj={c:0};
link=obj;// ссылка на объект
alert (link==obj); // true
obj.c++;
alert (link.c); // также 1
obj=new Object();
obj.c='20';
alert (link==obj); //false
alert (link.c) // 1

И куда же теперь ведет link? В момент переопределения obj была создана его копия и помещена в link? Хотелось бы поподробней разобраться в происходящем...


Автор: Илья Кантор, дата: 10 июня, 2010 - 10:38
#permalink

Код по шагам...

var obj={c:0};
link=obj;// ссылка на объект
alert (link==obj); // true
obj.c++;
alert (link.c); // также 1

Теперь link (= obj) - ссылка на один объект в памяти: {c:1}.

obj=new Object();

А теперь вы создаете новый объект, obj - ссылка на него, а старый объект по-прежнему доступен по ссылке link.

obj.c='20';
alert (link==obj); //false
alert (link.c) // 1

link продолжает указывать на старый объект. У него осталось значение 1.


Автор: voyager (не зарегистрирован), дата: 10 июня, 2010 - 11:22
#permalink

Спасибо за ответ. Жаль нельзя удалять посты... Точнее перед тем как что-то спрашивать, надо как следует задуматься. И, задумавшись, я понял, что вся путаница в моей голове произошла от того, что обычно говорится - link ссылается на obj. А если подумать, то становится понятно, что и link и obj - совершенно равноправные ссылки на некую сущность в памяти. Переопределяя obj, перетираем лишь одну из ссылок, не затрагивая саму сущность. И все становится на свои места, что собственно вы мне и разъяснили, подтвердив мою запоздалую догадку...


Автор: PaulG (не зарегистрирован), дата: 23 августа, 2010 - 15:23
#permalink

Добрый день!

объясните, пожалуйста, смысл этого присваивания

i = i < 4 ? i+1:1;

переменной i присваивается i+1:1 если i<4 ?? объясните поподробнее, плиз, или ссылку дайте


Автор: B@rmaley.e><e, дата: 23 августа, 2010 - 18:26
#permalink
if(i < 4) i = i + 4; else i = 1;

Автор: PaulG (не зарегистрирован), дата: 24 августа, 2010 - 13:02
#permalink

ok, только вот так правильнее будет ))
if(i < 4) i = i + 1; else i = 1
или так...
if(i < 4) i++; else i = 1
или так...
if(i < 4) i += 1; else i = 1

правильно?

спасибо! оказывается, на этом же сайте в разделе условный оператор была инфа...


Автор: я (не зарегистрирован), дата: 13 апреля, 2011 - 10:50
#permalink

спасибо!


Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 01:34
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 12:42
#permalink

Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
14 + 0 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum