Mostrando entradas con la etiqueta funciones. Mostrar todas las entradas
Mostrando entradas con la etiqueta funciones. Mostrar todas las entradas

viernes, 27 de marzo de 2020

Funciones con JavaScript

Las funciones en JavaScript son bloques de código que realizar tareas particulares para las que son diseñadas, pueden retornar un valor o ninguno. Estas se ejecutan cuando son invocadas, esta invocación puede ocurrir cuando:

  • Al ocurrir un evento como: el usuario presiona algo ("onclick" generalmente) o cambia el estado de un elemento (por ejemplo "onchange").
  • Cuando otra función llama a la función.
  • Cuando son funciones que se invocan automáticamente al cargar una página HTML por ejemplo.

Las funciones, además, pueden tener de cero a más parámetros, variables locales y llamar dentro a otras funciones. Por ejemplo, llamar a la función 'Alert'.


Sintaxis

Se coloca la palabra reservada "function", luego el nombre de la función (este no debe empezar con números ni contener espacios en blanco), seguido de los parámetros dentro de paréntesis que son separados por comas si son dos o más. Finalmente, entre llaves se coloca el código de la función.

function nombre(parámetros) {
  // código a ejecutarse  
} 

Función sin retorno Función con retorno
function procedimiento(nombre) {
   alert("Hola " + nombre);
}
function producto(a, b) {
   return a * b;
}


Invocar una función

Dependiendo si la función tiene retorno o no, se invoca de diferentes maneras.

Función sin retorno Función con retorno
 
   procedimiento('gato');
 
 
   let a = producto(2,5);
 


Parámetros predeterminados

Permite que al invocar una función sus parámetros pueden ser obviados al declararse valores predefinidos. Por ejemplo:

function producto(a, b = 1) {
    return r = a * b;
}

console.log(producto(2, 4)); // Resultado: 8, a y b están definidos
console.log(producto(2));    // Resultado: 2, b por defecto tiene valor 1 

Parámetros rest

Permite que una función tenga un número indefinido de parámetros. Por ejemplo:

function sumaRest(...rest) {
    return rest.reduce((a, v) => a + v);
}

console.log(sumaRest(1, 2));       //3
console.log(sumaRest(1, 2, 3));    //6
console.log(sumaRest(1, 2, 3, 4)); //10

Se puede apreciar que la función puede recibir distintas cantidades de parámetros y ejecuta la operación de suma en todos los casos. Se puede mejorar o crear una diferente para que tenga el mismo comportamiento recibiendo además de valores sueltos a arreglos numéricos

function sumaArreglosRest(...ar) {
    return ar.flat().reduce((a, v) => a + v);
}

let numsA = [1, 2, 3, 4, 5];
let numsB = [6, 7, 8, 9, 10];
console.log("Suma numsA: " + sumaArreglosRest(numsA));  //15
console.log("Suma numsB: " + sumaArreglosRest(numsB));  //40
console.log("Suma numsA y numsB: " + sumaArreglosRest(numsA, numsB));  //55

Funciones arrow (flecha)

Son funciones de tipo anónimo que simplifican la construcción de las funciones mediante el uso de las sintaxis lambda y apoyarse en diversos métodos como Map, Reduce o Filter para trabajar con arreglos de manera más simple. Ejemplos

const saludoArrow = () => "Hola JavaScript";
console.log(saludoArrow());

const dobleArrow = a => 2 * a;
console.log("Doble de 2: " + dobleArrow(2));

const sumaArrow = (a, b) => a + b;
console.log("Suma 1 y 2: " + sumaArrow(1, 2));

const promedioArrow = (a = 0, ...r) => {
    if (r.length === 0) {
        return a;
    }
    let prom = a;
    let c = 1;
    prom += r.reduce((a, v) => a + v);
    c += r.length;
    prom /= c;
    return prom;
};
console.log("Promedio sin parámetros: " + promedioArrow());
console.log("Promedio de 10: " + promedioArrow(10));
console.log("Promedio de 10 y 20: " + promedioArrow(10, 20));
console.log("Promedio de 1, 2, 3, 4 y 5: " + promedioArrow(1, 2, 3, 4, 5));

Nota: se aprecia que cuando existen 2 parámetros a más o ninguno es necesario usar paréntesis. Por ejemplo, () o (a = 0, ...r), en caso sea un solo parámetro el uso es opcional. En caso del cuerpo de la función si es una sola línea el uso de llaves { } es opcional, en caso de ser más líneas de código se deben emplear como en el último ejemplo.


viernes, 17 de mayo de 2019

Métodos de entrada y salida de JavaScript

Métodos de entrada

PROMPT

En JavaScript tenemos el método prompt(), que tiene tres variantes según la cantidad de parámetros:

Sin parámetros Un parámetro Dos parámetros
  prompt();
  prompt('Ingrese su edad');
  prompt('Ingrese su edad','18');

  • Cuando no tiene parámetros muestra una ventana flotante que pide ingresar un dato.
  • Cuando tiene un parámetro muestra la ventana flotante con un texto, que es el que colocamos como argumentos.
  • Cuando tiene dos parámetros muestra la ventana flotante, el título o texto sobre la caja de texto y un valor por defecto en la caja de texto.

CONFIRM

En JavaScript tenemos el método confirm(), que permite al usuario elegir una opción entre Ok (aceptar) o Cancel (Cancelar), especialmente útil para evitar que acciones no deseadas se ejecuten al dar un clic por error o mostrar un mensaje previo a la confirmación de una acción. Por ejemplo:
El siguiente código utiliza la función Confirm cuando se presiona el botón.

<script>
   function test(){
     let eleccion = confirm("Elige una opción\n\nSabiamente");
     if (eleccion == true) {
        alert("Elegiste Aceptar");
     } else {
        alert("Elegiste Cancelar");
     } 
   }
</script>

<button onclick="test();">Botón confirm</button>

Notas:
para insertar saltos de línea usamos \n dentro de la cadena de texto, para un espacio de tabulación \t
El valor que la función confirm devuelve es un valor lógico (verdadero o falso)



Métodos de salida

ALERT

La función por excelencia para mostrar un mensaje es Alert(); que nos permite desplegar una ventana flotante con el mensaje que deseemos, este mensaje puede ser cualquier tipo de variable, pero se mostrará convertido a texto. Ejemplo:


<button onclick="alert('Yo soy un alert');">Botón alert</button>



sábado, 22 de diciembre de 2018

Fundamentos de PHP

Variables


Las variables en PHP, a diferencia de Java no están limitadas a un tipo único de datos, de forma que esta puede almacenar un entero o una cadena en el mismo archivo.

Para declarar una variable se debe anteponer el símbolo $ al nombre de la variable, es nombre puede contener caracteres alfanuméricos y guión bajo, pero no deben comenzar con un número.

Ejemplo:

<?php
$variable1;
$variable_entero = 12;
$variable_decimal = 20.56;
$variable_texto = "Bienvenido a PHP";
$variable_byte = true; 
?>

Sintaxis


Para iniciar código PHP se debe iniciar con la etiqueta <?php y terminar con la etiqueta ?>, este código puede ir junto con código HTML, que es el que le da toa esa flexibilidad y potencialidad en el desarrollo de aplicaciones web.

Ejemplo:
<?php
/* Aquí va el código */
?>

Nota: cuando el código el PHP puro, los IDE y el compilador no exigen cerrar las etiquetas.

Para comentar código se puede hacer de 3 formas:

Ejemplo:
<?php
/*
Comentario de bloque
*/

//Comentario de línea con  //

#Comentario de línea con  #
?>

Para imprimir texto o una variable en pantalla se usa la expresión echo.

Ejemplo
<?php
echo "Texto en pantalla";
?>

Nota: para algunos casos dentro del código HTML es necesario escribir el valor de una variable o cadena de texto y toda la expresión anterior se puede reemplazar por:

<?= "Texto en pantalla" ?>

El signo igual se interpreta como: php echo, pero debe ser usado solo para imprimir un valor a la vez.

Para conocer el valor de una variable se puede usar la función var_dump

Ejemplo:
<?php

$variable = "Bienvenidos al nuevo mundo";
var_dump($variable);

?>


Estructuras de control


En PHP se tiene una serie de estructuras de control, las principales son:

Condicional IF-ELSE

La condición va entre paréntesis, luego entre llaves las sentencias que se ejecutarán de ser verdadera la expresión, el ELSE es opcional y se puede declarar las sentencias que se ejecutaran si no se cumple esta condición:
<?php

$num1 = 5;
$num2 = 11;
$num3 = 8;

$mayor = 0;

#usando if

if ($num1 > $num2) {
    $mayor = $num1;
} else {
    $mayor = $num2;
}

if ($mayor < $num3) {
    $mayor = $num3;
}

echo "El número mayor de $num1, $num2 y $num3 es: $mayor";
?>

También podemos tener múltiples comparaciones mediante ELSE IF
<?php
$nota = 17;

#usando if
if ($nota >= 12 && $nota <=20) {
    echo "Aprobado";
} else if ($nota <12 nota="">=0) {
    echo "Desaprobado";
} else {
    echo "Nota inválida";
}
?>

Las comparaciones IF - ELSE pueden ser reemplazadas por un operador ternario

Ejemplo:
<?php
$valor = true;
#usando if
if ($valor) {
    echo "Verdadero";
} else {
    echo "Falso";
}

#Usando ternario
$valor ? "Verdadero" : "Falso";

#Evaluando si una variable posee contenido
$val = ""; //Sin contenido
$resultado = ($val) ?: 'Vacío'; //Asigna 'Vacío' a $resultado

$val = "Hola"; //Con contenido
$resultado = ($val) ?: 'Vacío'; //Asigna 'Hola' a $resultado
?>


Condicional iterativo SWITCH y de transición BREAK

Es una serie de IF-ELSE IF-ELSE IF- ... - ELSE

<?php
$mes = 6;

switch ($mes) {
    case 1:
        echo 'Enero';
        break; 
        //BREAK evita que se sigan realizando comparaciones
    case 2:
        echo 'Febrero';
        break;
    case 3:
        echo 'Marzo';
        break;
    case 4:
        echo 'Abril';
        break;
    case 5:
        echo 'Mayo';
        break;
    case 6:
        echo 'Junio';
        break;
    case 7:
        echo 'Julio';
        break;
    case 8:
        echo 'Agosto';
        break;
    case 9:
        echo 'Septiembre';
        break;
    case 10:
        echo 'Octubre';
        break;
    case 11:
        echo 'Noviembre';
        break;
    case 12:
        echo 'Diciembre';
        break;
    default:
        break;
}
?>

Repetitiva FOR, WHILE, FOREACH

Para su uso, se puede utilizar un arreglo de datos (array), en este caso es más recomendado el uso del FOREACH.

Cuando se conoce el número de iteraciones que se debe hacer, es recomendado el uso del FOR, ya que permite avanzar la iteración de 1 en 1 o en diferente forma, mediante el uso de un operador incremental.
<?php
$persona[]="jhon";
$persona[]="paul";
$persona[]="argos";

echo $persona[1];
var_dump($persona);

#FOR
for ($u = 0; $u < count($persona); $u++) {
    echo $persona[$u]."<br>";
}
#FOREACH

foreach ($persona as $indice => $dato) {
    echo $indice." ::: ".$dato."<br>";
}
?>


Cuando se desconoce el número de iteraciones que se deben realizar se recomienda el uso del WHILE.
<?php
$nota = 0;
$intento = 1;

#WHILE
while($nota < 12) {
    echo "Aún desaprobado - Intento: " . $intento;
    ++$intento;
    $nota++; 
}

echo "Aprobado en el intento: " . $intento;
?>


Funciones y procedimientos


La sintaxis de ambos es muy similar, su diferencia radica en que los procedimientos no devuelven ningún valor, mientras las funciones tienen un valor de retorno.

Ejemplos:
<?php
#Función
function promediar($a = 0, $b = 0) {
    return ($a + $b) / 2;
}

#Procedimiento
function saludo($a = '') {
    echo 'Hello ' . $a;
}
?>

Entrada y salida


PHP tiene como método de entrada a GET y POST, se recomienda el uso de POST siempre y cuando sea posible y los datos no sean muy sensibles, para búsquedas públicas o que no requieran mucha seguridad, el método GET es el ideal, ya que muestra el dato en la barra de direcciones.
Ejemplo
<?php
$dia = $_GET['txtdia'];
$clave = $_POST['clave'];
?>

Por cuestiones de seguridad y adaptándonos a los nuevos cambios se reemplaza lo anterior por:
<?php
$dia =  filter_input(INPUT_GET, 'txtdia', FILTER_SANITIZE_STRING);
$clave = filter_input(INPUT_POST, 'clave', FILTER_SANITIZE_STRING); 
?>