#javascript #while-loop #assignment-operator
#javascript #цикл while #оператор присваивания
Вопрос:
У меня есть скрипт:
<script>
var text = "";
var i = 0;
while (i < 10) {
text = i;
i ;
}
document.getElementById("demo").innerHTML = text;
</script>
Этот скрипт запишет числа 0 ….9
Почему я должен использовать присваивание «text = i»?
почему я не могу вместо этого закодировать «text = i»?
Как бы вы объяснили эту строку кода?
Спасибо за ваше время!
ps. Я знаю text = i
, что эквивалентно
text = text i
здесь это не вопрос. 😉
и я также знаю, что если я введу «text = i», я получу только последнее число: 9.
Комментарии:
1. Что? Вы сами отвечаете на свой вопрос в своем (ps), нет?
2. Я не понимаю, почему я должен объявлять, что текст равен «текст» «i», вместо «текст» равен «i»
3. «объявить» что? Вы ничего не «объявляете», используя
=
. Это означает: «добавьте значение справа к значению слева и сохраните результат в переменной слева».4. Сравнивали ли вы результат использования
=
vs=
. ? Они очень разные. Таким образом, вы используете=
для одного и=
для другого. Вы уже понимаете, что делает каждый оператор и что произойдет, если вы просто назначите напрямую. Чего ты не понимаешь?
Ответ №1:
Простой оператор присваивания =
присваивает переменной (или свойству объекта) в левой части значение справа. Прежнее значение переменной левой стороны теряется.
=
Оператор выполняет сложение между текущим значением левой стороны и значением правой стороны, а затем присваивает этот результат левой стороне. Если вы хотите накопить серию операций сложения в переменную, тогда вы должны использовать =
.
Если вы просто используете =
, то переменная text
сохранит только последнее присвоенное значение.
Именно так оператор присваивания работает в огромном количестве языков, таких как JavaScript.
Ответ №2:
Прежде всего, хорошо, что вы знаете, как работают операторы … поэтому позвольте мне пояснить, почему скрипт использует text = i
Давайте пройдемся по циклу Изначально text =» В первый раз он появляется в Text =’0′ Так что теперь, если вы добавляли текст в div, вы могли бы снова установить для него пустую строку или использовать text = i
Но вы не добавляете текст в div. Итак, если мы используем text = i, текст становится 0, а в next становится 1 и так далее, в конце его значение будет равно 9, но мы хотели 0 … 9, поэтому мы должны продолжать добавлять строковое значение чисел, чтобы получить 0 … 9