Probando Runkit (Todos los videos)

node v18.11.0
version: 2.0.0
endpointsharetweet
Aquí se puede escribir en celdas de texto. Voy a hacer pruebas
// Escribiendo en la consola de Ivan console.log("Hola")
typeof(23)
typeof({})
"La versión de node usada es"+ process.version
typeof(a)
Números
v= 23 console.log(v); typeof(v);
v * 5 - 67 + 45.657
5 / 3
25 % 4
Math.pi * Math.log(234) + Math.sin(2838)
String
v= "Lol"; console.log(v); typeof(v);
console.log(v.length); v+ "que mal"
Array
v = [1,2,4,"str",[3]]; console.log(v); typeof(v);
Iteración de un array: for
for (var i =0; i<v.length; i++){ console.log(""+i+" -> "+v[i]); }
Usando map
a = [1,4,7,2,5,78]; a.map(Math.sqrt)
Boolean
v = true console.log(v); typeof(v);
v && false || ! v
object: conjunto de parejas propiedad: valor
v = {} v = {prop1:"valor1",prop2:"valor2",prop3:"valor3"}
v.prop1 v["prop2"]
Function
v = function(x){ console.log("Ejecutando función con argumento "+x); return 2 * x; } console.log(v); typeof(v);
v(12)
undefined
var z console.log(z); typeof(z);
null
var n = null console.log(n); typeof(n);
Interpretación lógica de cada tipo
var u v = [1,"str",false,[],[3445],{},{prop1:2},Math.sqrt,null,u] console.log(v) for (var i =0; i<v.length; i++){ console.log(i+ " -> "+v[i]+" es interpretado como"+!!v[i]); }
Objetos, Clases y Métodos En este cuaderno estudiamos el trabajo con objetos de forma sencilla.
Crear un objeto DIRECTAMENTE
var neo = {npatas:4,tienepelo:true}
Crear un objeto MEDIANTE CONSTRUCTOR
function Gato(){ this.npatas=4; this.tienepelo=true; } lucho = new Gato(); lucho
function Mamifero(name){ this.npatas=4 this.nombre = name; this.tienePelo=true; } Gato = function(name){ obj = new Mamifero(name); obj.especie = "Gato" return obj; } lucho = new Gato("lucho") lucho
HERENCIA Si modificas la clase superior, las instancias de la subclase heredan las propiedades modificadas
Mamifero = function (name){ this.npatas=4 this.nombre = name; this.tienePelo=true; this.poneHuevos=false; // nuevas propiedades this.criasTomanLeche=true; } lucho = new Gato("Lucho") lucho
MÉTODOS Cuando el valor de una propiedad es una función la llamamos Método y define un comportamiento
Mamifero = function (name){ this.npatas=4 this.nombre = name; this.tienePelo=true; this.poneHuevos=false; // nuevas propiedades this.criasTomanLeche=true; // metodos this.saluda = function(){ console.log("Hola soy "+this.nombre+" y soy un "+this.especie); } this.hazTuRuido = function(){ if(this.ruido) console.log(this.ruido+" ... "+this.ruido); } } Gato = function(name){ obj = new Mamifero(name); obj.especie = "gato"; obj.ruido = "Miau" return obj; } micifu = new Gato("Micifú"); micifu.hazTuRuido();
ENCADENADO DE MÉTODOS Si el metodo devuelve el objeto mediante "return this", puedes encadernarlos mediante el punto
Mamifero = function (name){ // propiedades this.npatas=4 this.nombre = name; this.tienePelo=true; this.poneHuevos=false; this.criasTomanLeche=true; // metodos this.saluda = function(){ console.log("Hola soy "+this.nombre+" y soy un "+this.especie); return this } this.hazTuRuido = function(){ if(this.ruido) console.log(this.ruido+" ... "+this.ruido); return this } } Gato("Neo").hazTuRuido().saluda()
Perro = function(name){ obj = new Mamifero(name); obj.especie = "perro"; obj.ruido = "rawr" return obj; } Perro("Pau").hazTuRuido().saluda().hazTuRuido() Perro("Iban").hazTuRuido().saluda().hazTuRuido()
Clases en ECMAScript Con el nuevo sintaxis (desde 2015) de ECMAScript usamos el comando class
class Mamifero { constructor (name){ // propiedades this.npatas=4 this.nombre = name; this.tienePelo=true; this.poneHuevos=false; this.criasTomanLeche=true; // metodos this.saluda = function(){ console.log("Hola soy "+this.nombre+" y soy un "+this.especie); return this } this.hazTuRuido = function(){ if(this.ruido) console.log(this.ruido+" ... "+this.ruido); return this } }
extends
class Gato extends Mamifero { constructor (name){ super(name); this.especie = "gato"; this.ruido = "Miau"; } } new Gato("Lol").hazTuRuido().saluda().hazTuRuido()
Loading…

no comments

    sign in to comment