Apprenticeship Day 16
Línea de comandos
En la línea de comandos o Git podemos movernos al directorio o rama en la que estábamos previamente con el guión (-) en lugar de teclear la ruta.
cd -
git -
JavaScript Prototypes
JavaScript es un lenguaje basado en prototipos https://en.wikipedia.org/wiki/Prototype-based_programming/
La API de JavaScript nos facilita dos tipos de métodos: Métodos del objeto, se llaman sobre el objeto. Ej. String.fromCharCode()
> String.fromCharCode(97)
'a'
Métodos del prototipo, se llaman sobre una instancia del objeto. Ej. String.prototype.charCodeAt()
> "a".charCodeAt()
97
Metaprogramación
La metaprogramación es un programa que escribe o modifica otros programas. https://en.wikipedia.org/wiki/Metaprogramming/
Una forma de (meta)programación es un monkey patch, donde extendemos o modificamos una funcionalidad ya existente https://en.wikipedia.org/wiki/Monkey_patch/
Por ejemplo podemos hacer que los números respondan a una nueva función fizzBuzz:
Number.prototype.fizzBuzz = 'Fizz'
(3).fizzBuzz
O podemos modificar funciones definidas en la API de JavaScript
String.prototype.split = () => {
return ['Hola', 'Laura']
}
Esta técnica de programación es muy potente pero también muy peligrosa. Casi nunca debemos modificar prototipos de objetos.
Puertas lógicas
Una puerta lógica nos permite realizar una función booleana basada en una operación lógica. https://es.wikipedia.org/wiki/Puerta_l%C3%B3gica/
| AND | && |
Esto y lo otro |
| OR | || |
O esto o lo otro |
| XOR | ^ |
O esto o lo otro, pero no las dos |
| NOT | ! |
Contrario de esto |