¿Cómo envío datos desde JavaScript a PHP y viceversa?

¿Cómo hago para pasar datos de código JavaScript a PHP y viceversa? En este momento, hago esto es una ronda de camino:
PHP a JavaScript: Simplemente usaría el eco en línea para enviar los datos:

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

O

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

JavaScript a PHP: crearía un elemento de formulario en el JavaScript que agregaría los datos para mí al archivo php:

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

¿Hay alguna forma mejor de hacer esto? Las mejores prácticas de tipo de cosas.

Respuestas a la pregunta(6)

Su respuesta a la pregunta