Como enviar dados do JavaScript para o PHP e vice-versa?

Como faço para passar dados do código JavaScript para o PHP e vice-versa? Agora, eu faço isso de uma maneira circular:
PHP para JavaScript: eu simplesmente usaria o eco embutido para enviar os dados:

<script type="text/javascript">
    var data = <? echo $target_variable ?>
</script>

OU

<script type="text/javascript">
    var data = <?= $target_variable ?>
</script>

JavaScript para PHP: Eu criaria um elemento de formulário no JavaScript que iria sumbit os dados para mim para o arquivo php:

<script type="text/javascript">
    var data = targetData;
    document.write("
        <form method=\"post\">
            <input type=\"hidden\" value=\""+target_value+\""></input>
        </form>
    ");
</script>
</script>

Existe alguma maneira melhor de fazer isso? Melhores práticas tipo de coisa.

questionAnswers(5)

yourAnswerToTheQuestion