Definir una función se refiere al binding de la misma, es decir a que valor es parecida. Definir las expresiones con las que cuenta.
// keyword function para definir que es uan funcion
// los parametros puede ser uno o varios o ninguno, y pueden ser de cualquier tipo
// {} definen el inicio y fin del contenido de la funcion
// return define el valor de regreso de la funcion, que
// square esta haciendo binding sobre la funcion, es decir que apunta hacia ella
let square = function(params) {
return params * params
}
// cada vez que ejecutamos square estamos ejecutando haciendo una instancia de esa funcion
// let y const solo tienen block scope, pero var tiene global
// como se esta haciendo un binding es facilmente cambiable el valor de square por otra cosa
square = function(params) {
return null
}
Pedazos de código re-utilizables, diferentes formas
var user = 'Adrian', age = 28
//Las variables creadas dentro de la funcion desaparecen al acabar.
//Las variables que se pueden utilizar en las funciones tienen alcanse
//... hasta el elemento padre.
//Declaración, podemos o no pasarle los parametros.
function imprimirEdad(nombre,edad){
console.log(`${nombre} tiene ${edad} años`)
}
//Implementación.
imprimirEdad(user,age)
Arrow function
var usuario1 = { nombre: 'Adrián', apellido: 'Garcia', edad: 25 }
const MAYORIA_DE_EDAD = 18;
//Arrow function mas simplificada y anonima(porque no tiene nombre)
//... que llama a otra arrow function
//... si la arrow function es solo un renglon de return se puede compactar
const esMayor = ({ edad })=> edad <= MAYORIA_DE_EDAD
const imprimir = persona => {
if (esMayor(persona){
console.log(`${persona.nombre} si es mayor de edad`)
} else {
console.log(`${persona.nombre} no es mayor de edad`)
}
}
imprimir(usuario1)
//Arrow function mas simplificada y anonima(porque no tiene nombre)
//... se pueden quitar los parentesis si es solo un atributo
const imprimir = persona => {
if (persona.edad >= MAYORIA_DE_EDAD){
console.log(`${persona.nombre} si es mayor de edad`)
} else {
console.log(`${persona.nombre} no es mayor de edad`)
}
}
//Arrow function
const imprimir = function imprimir(persona) => {
if (persona.edad >= MAYORIA_DE_EDAD){
console.log(`${persona.nombre} si es mayor de edad`)
} else {
console.log(`${persona.nombre} no es mayor de edad`)
}
}
//Funcion normal
function imprimir (persona) {
if (persona.edad >= MAYORIA_DE_EDAD){
console.log(`${persona.nombre} si es mayor de edad`)
} else {
console.log(`${persona.nombre} no es mayor de edad`)
}
Alcance de las variables creadas en una función
var user = 'Adrian', age = 28
function imprimirEdad(nombre,edad){
console.log(`${nombre} tiene ${edad} años`)
}
imprimirEdad(user,age)
//Si intentamos acceder a las variables nombre o edad nos manda error,
//... puesto que solo existend dentro de la funcion imprimirEdad().
console.log(nombre)
console.log(edad)
Al usar el mismo nombre de la variable
var user = 'Adrian', age = 28
function imprimirEdad(nombre,edad){
console.log(`${nombre} tiene ${edad} años`)
}
imprimirEdad(user,age)
//Si intentamos acceder a las variables nombre o edad nos manda error,
//... puesto que solo existend dentro de la funcion imprimirEdad().
console.log(nombre)
console.log(edad)