A principal diferença entre este ciclo e o ciclo while... é que as instruções que se encontram dentro do ciclo do... while... são executadas pelo menos uma vez e até que a condição dada deixe de se verificar.
Este ciclo é um ciclo que é utilizado sobre objetos, como por exemplo um array.
É outro ciclo que permite trabalhar de uma forma mais simples com um array. Ao contrário do ciclo for... in... que pega nas chaves/índices (key) do array, o ciclo for... of... pega os valores das chaves.