Недавно наткнулся на оценку короткого замыкания и был немного смущен этим, так как я только начал программировать на прошлой неделе. Из того, что я понимаю, если что-либо произойдет до того, как первый двойной канал станет истинным, тогда он остановится и не оценит, что произойдет после двойной трубы. Например:Разница между использованием тернарного оператора или просто оценкой короткого замыкания?
Пример 1:
var a = true;
var b = a || {};
Так я предположу, если существует, то назначить б в противном случае б равно объект. Что я не понимаю, где я буду использовать это и как она отличается в тройном оператора, не оценка короткого замыкания такой же, как:
Пример 2:
var a = true;
var b = (a) ? a : {};
Почему бы один используйте пример 1 над примером 2, поскольку он не является более медленным для записи или есть ли преимущество в скорости использования одного над другим? или это просто глупый вопрос, и, возможно, я чего-то не хватает. Если бы кто-то мог прояснить это для меня, это было бы здорово.
это приводит лишь к вопросам, когда второй операнд имеет побочные эффекты. – Ergwun
Используйте тот, который вы хотите. Время, которое вы уже потратили на размышления об этом, будет больше, чем любая совокупная разница в типизации или исполнении. –
Kinda несвязанный, но в качестве эксперимента попробуйте сделать 'b = a && {};' и посмотреть, что происходит, и попытаться понять, почему это происходит. –