1. Нельзя итерироваться по объекту и одновременно изменять его
2. pop удаляет с конца, а for of идет по массиву сначала
Первая итерация цикла number=3, pop удаляет с конца, то есть 5
вторая итерация number=8, pop удаляет 9
и так далее
когда number=6(четвертая итерация), 6 - это последний элемент массива, так как остальные удалил pop
Aetae, ну когда понимаешь, много что можно))
Мне кажется, что новичку по многим вопросам, лучше говорить нельзя, потому что в данном случае например, это кроме выстрела в ногу ничего не даст. А потом, когда знаний наберётся, сам поймёт, что как-то где-то это можно использовать
Потому что вы изменяете массив, по которому итерируете. В итоге у вас длина массива становится 7 -> 6 -> 5 -> 4 -> 3 и на четвёртой итерации (т.е. для элемента "6") вы достигаете конца и цикл останавливается, удалив с конца 4 элемента ("5", "9", "7" и "6").
В целом код бессмысленный и глубоко разбираться, как он работает, не нужно, если это не учебный пример "как не надо".