что делает часть этого кода «text =»?

#javascript

#javascript

Вопрос:

Я хочу понять, как этот forloop работает в Javascript. Часть, которая меня больше всего смущает, — это часть «text =».

Я прокомментировал рядом со всеми строками, которые, как мне кажется, я понимаю. Любое четкое объяснение всего кода будет высоко оценено.

Я поиграл с кодом через веб-сайт w3schools, где и наткнулся на него.

Код:

 <!DOCTYPE html>
<html>
<body>
<p id="demo"></p>

<script>
var fruits, text;
fruits = ["Banana", "Orange", "Apple", "Mango"];

text = "<ul>"; //start of list

fruits.forEach(myFunction); //for each fruit add 

text  = "</ul>"; // end of list
document.getElementById("demo").innerHTML = text; // add to html

function myFunction(x) {  // function with one parameter to parse
  text  = "<li>"   x   "</li>";
} 
</script>

</body>
</html>
  

Ответ №1:

x =y это синтаксический сахар для x=x y , что означает, что эти два параметра одинаковы.

Итак, в вашем случае:

  • text = "</ul>"; просто добавил бы </ul> закрывающий тег к text переменной;

    и

  • text = "<li>" x "</li>"; было бы эквивалентно text = text "<li>" x "</li>" .

Комментарии:

1. @bipll с точки зрения атомарности?

2. Не в этом конкретном случае, конечно, но в общем случае LHS будет оцениваться только один раз.

3. Я не уверен, что понял, что вы имеете в виду. Не могли бы вы кратко остановиться на этом?

4. the_longest_evluation() = the_longest_evaluation() 42;

5. Я понимаю часть x = x y. итак, text = text x . но я не получаю функциональную часть. «text = text «<li>» x «</li>». откуда он знает, что не нужно продолжать включать тег ul каждый раз, когда он проходит через цикл?