BRParola
8/20/2019 - 1:31 AM

ecma-examples

// Declarar váriaveis utilizando couchetes: 

const [name, age] = ['fabricio', 18]; 

// Swap de váriaveis 

let [a, b] = [10, 100]; 
console.log(a,b);  // 10 100
[a, b] = [b, a]; 
console.log(a,b); // 100 10

// Fibonacci with Swap 

const fibWithSwap = (maxLen) => {
    let [a, b, arr] = [0, 1, []]; 
    while (a < maxLen) {
        arr.push(a); 
        [a, b] = [b, b + a]; 
    }
    return arr; 
}

// console.log(fibWithSwap(1000000)); 

// É possível construir um objeto em cima de váriaveis: 

const obj = {name, age}; // {name: 'fabricio', age: 18}; 

// Funções dentro de objetos: 

const obj_2 = {
    name, 
    printHelloWorld: () => {
        console.log("helloworld"); 
    }, // Uma forma
    printHelloWorld2 () {
        console.log("helloworld2"); 
    }
}

// Chamar a função dentro do objeto: 

obj_2.printHelloWorld(); // 'helloworld'
obj_2.printHelloWorld2(); // 'helloworld2'


// Criação de classes:

class Book {
    constructor (title, pages, note) {
        this.title = title; 
        this.pages = pages; 
        this.note = note; 
    }

    getNote () {
        return this.note; 
    }
}

const book = new Book("LORD", 337, 10); 
console.log(book.getNote()); 

// Herança de classes: 
class ITBook extends Book {
    constructor (title, pages, note, technology) {
        super(title, pages, note); 
        this.technology = technology; 
    }

    showInfos () {
        console.log(`Titulo: ${this.title}, paginas ${this.pages} e tecnologia ${this.technology}`)
    }
}

const itBook = new ITBook("JavaScript", 337, 10, "React");
console.log(itBook.getNote()); 
itBook.showInfos();