Базовый оператор присваивание - это обычное приравнивание =
, которое дает левому операнду значение правого операнда.
Остальные операторы являются сокращениями следующих форм.
Сокращенный оператор |
Значение |
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 |
спасибо
А почему вы не рассматриваете условный оператор присваивания? И, если рассмотрите, не могли бы ответить: возможно ли использование этого оператора без указания значения, присваиваемого в случае невыполнения условия?
Если справа от "=" стоит объект, у меня почему-то переменной слева не присваивается значение объекта, а создается синоним "правого" объекта (ссылка на объект). Например:
oldObj.v=5
newObj=oldObj
newObj.v++
//oldObj.v тоже прибавилась
Это так и должно быть? Как тогда создать копию объекта?
Да, так и должно быть.
Создавайте копию объекта копированием всех свойств в новый пустой объект.
А не могли бы вы поподробней описать такую ситуацию:
И куда же теперь ведет link? В момент переопределения obj была создана его копия и помещена в link? Хотелось бы поподробней разобраться в происходящем...
Код по шагам...
Теперь
link (= obj)
- ссылка на один объект в памяти:
{c:1}
.А теперь вы создаете новый объект,
obj
- ссылка на него, а старый объект по-прежнему доступен по ссылкеlink
.link
продолжает указывать на старый объект. У него осталось значение 1.Спасибо за ответ. Жаль нельзя удалять посты... Точнее перед тем как что-то спрашивать, надо как следует задуматься. И, задумавшись, я понял, что вся путаница в моей голове произошла от того, что обычно говорится - link ссылается на obj. А если подумать, то становится понятно, что и link и obj - совершенно равноправные ссылки на некую сущность в памяти. Переопределяя obj, перетираем лишь одну из ссылок, не затрагивая саму сущность. И все становится на свои места, что собственно вы мне и разъяснили, подтвердив мою запоздалую догадку...
Добрый день!
объясните, пожалуйста, смысл этого присваивания
i = i < 4 ? i+1:1;
переменной i присваивается i+1:1 если i<4 ?? объясните поподробнее, плиз, или ссылку дайте
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
правильно?
спасибо! оказывается, на этом же сайте в разделе условный оператор была инфа...
спасибо!
Nowa roksa pl
Roksa slaskie
Отправить комментарий
Приветствуются комментарии:Для остальных вопросов и обсуждений есть форум.