Кроме того, вопрос, который кто-то предложил, отличается от моего вопроса. Я спрашиваю, почему страница не загружается и как это исправить, пока l oop, другой человек предложил, почему два пустых объекта не совпадают.
Это действительно одно и то же. В вашем коде вы продолжаете l oop, когда o != {a:4, b:5, c:6}
. Дело в том, что это условие НЕ МОЖЕТ быть ложным. Так что l oop обречен на go навсегда.
На ваш вопрос «почему страница не загружается» ответ прост: JavaScript выполнение кода блокирует рендеринг страницы , Таким образом, страница не может отображаться во время выполнения вашего кода. Ваш код не останавливается, поэтому вы никогда ничего не увидите. Мы могли бы долго обсуждать, как отложить вычисления после рендера, но это может быть так просто:
function theCodeYouPosted() {
}
// this will delay execution of your code for 100 milliseconds,
// so the page could render.
setTimeout(function() {
theCodeYouPosted();
}, 100);
Это один из многих, многих возможных обходных путей, но это не решение для вашего основного проблема в том, что ваш l oop не выходит.
Вам нужно условие, которое действительно проверяет равенство 3 значений, которые вы ищете. Пожалуйста, внимательно прочитайте комментарии: я знаю, что вы стремитесь «решить свою проблему», но это неправильный подход. Вам нужно понять вашу проблему. Тогда ваша проблема решится сама собой.
Вам нужно сравнить свойство по свойству, например:
while(!(o.a === 4 && o.b === 5 && o.c === 6)) {
...
}
, но я думаю в вашем коде несколько проблем , Вы должны попробовать свой отладчик и понять, как работает код, который вы написали.
Самый простой способ - нажать F12 в вашем браузере и вставить оператор debugger
непосредственно перед кодом, который вы хотите понять.
Бон Вояж!