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 ?? объясните поподробнее, плиз, или ссылку дайте


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

спасибо!


 
Поиск по сайту
Содержание

Учебник javascript

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

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

Интерфейсы

Все об AJAX

Оптимизация

Разное

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

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