// 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();