В следующем операторе JavaScript:Как javascript || (Или) оператор работает
var a = true;
a = a || b;
Будет ли переменная a
иметь ненужную reasignment к его собственной ценности?
В следующем операторе JavaScript:Как javascript || (Или) оператор работает
var a = true;
a = a || b;
Будет ли переменная a
иметь ненужную reasignment к его собственной ценности?
Да, он назначит a
. Подобная вещь, вероятно, даже не была бы оптимизирована на компилированном языке.
Не будет, однако, тратить время на оценку b
, однако, поскольку он уже знает результат. Нечто подобное происходит, когда a = a || b
запускается:
if a
a = a
else
a = b
EDIT:
Чтобы следить за то, что icktoofay сказал «это не окажет существенного влияния на производительность.», Это просто установив (логическое) переменную, является одной из самых простых операций, которые могут произойти. Это будет иметь мало значения, даже если вы назначаете нечто более значительное, как функция или массив, поскольку оно будет назначать ссылку на элемент, а не создавать его снова.
Это сравнение производительности, которое ничего не делает против присвоения себе (jsPerf link) благодаря @bfavaretto для его настройки.
a
будет правдой, если a
или b
это правда. Так что да, если вы не добавите еще один код между этими строками, который может повлиять на значение a
, нижний оператор всегда будет устанавливать a
в true.
Это неверно. Если 'b' является' true', но 'a' - это, например,' 10', то 'a' будет переназначаться на' 10', а не 'true'. –
Да - он не будет оптимизирован, потому что JavaScript не оптимизирует. Хотя базовая реализация парсера могла бы, по-видимому, оптимизировать, я очень сомневаюсь, что в этом случае это будет очень специфично для реализации платформы.
Это было бы 'else' не' else if' правильно? Если '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' будет ' –
Да, я в основном стараюсь показать, что он пропускает b, если он был оценен. –
Я вижу вашу точку зрения. Я буду принимать ваш ответ через несколько минут, хотя мне бы хотелось увидеть дополнительную информацию по этому вопросу. –