Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
4
respuestas

DUDA

Por qué debe usarse el document.write, en vez de imprimir en el ejemplo del Instructor?

4 respuestas

Jesus depende, si usted tiene definida la funcion imprimir, dentro de esta funcion debe tener la solicitud de document.write.

Porque en la función imprimir tienes especificado que cada que se ejecute el texto se haga un salto de línea también. Si lo pones te quedarán todos los asteriscos uno debajo de otro, no en grupos consecutivos. document.write no tiene ese salto de línea anexado. Lo que podrías hacer también sería quitarle el salto de línea al imprimir .

Hola Jesus, respecto a tu pregunta, Kevin tiene la razón. Recuerda que tenemos 2 funciones esenciales en el curso: La función saltarLinea, que simplemente hace que salte una líneas hacía abajo, por el uso de document.write("");, recordemos que el uso de la etiqueta "" significa salto de línea, y la función trabajará con la cantidad de estos que tengamos.

function saltarLinea() {
            document.write("<br>");
            document.write("<br>");
        }

Aquí dejo más información sobre la etiqueta "" en MDN, que es una página que recomiendo para encontrar información sobre cuestiones de programación: https://developer.mozilla.org/es/docs/Web/HTML/Element/br

La otra función con la que trabajamos es imprimir, algo a tomar en cuenta es que está función tiene un parámetro, que lo que recibe como frase (parámetro), y usamos nuevamente la instrucción document.write(frase); para imprimir en pantalla lo que necesitamos, pero es en la siguiente línea donde está lo importante, y es la llamada a la función saltarLinea();, aquí llamamos a la función previamente explicada, y lo que hará es un salto de línea, lo que nos provoca un conflicto en nuestro programa de estrellas.

function imprimir(frase) {
            document.write(frase);
            saltarLinea();
        }

El conflicto en este programa es que si nosotros seguimos con imprimir, nos quedaría un resultado totalmente distinto a lo que necesitamos. Código erroneo usando la función imprimir()

<script>
        function saltarLinea() {
            document.write("<br>");
            document.write("<br>");
        }

        function imprimir(frase) {
            document.write(frase);
            saltarLinea();
        }


        for(var lineas = 1; lineas <=3;lineas++){
            for(var columnas =1; columnas <=10; columnas++){
                imprimir("*");
            }
            saltarLinea();
        }

        saltarLinea();
        imprimir("Fin");
    </script>

Resultado:

Programa de estrellas - erroneo con funcion imprimir

Mientras que si usamos document.write("*") en el código:

<script>
        function saltarLinea() {
            document.write("<br>");
            document.write("<br>");
        }

        function imprimir(frase) {
            document.write(frase);
            saltarLinea();
        }


        for(var lineas = 1; lineas <=3;lineas++){
            for(var columnas =1; columnas <=10; columnas++){
                document.write("*");
            }
            saltarLinea();
        }

        saltarLinea();
        imprimir("Fin");
    </script>

Resultado:

Programa estrellas con document.write

Podrás ver que es totalmente distinto, y es algo que debemos cuidar a la hora de programar. Saludos

Muy bien explicado, lo entendí. Gracias.