luketevl / learn-javascript

Learn about Javascript(es6, es7) and future versions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

learn-javascript

Learn about Javascript(es6, es7) and future versions

LINKS

Promise

  • Resolve all promises
Promise.all([]);
  • Return the first promisse in any romises
Promise.race([]);

Symbol

This is new type, are immutable and unique

  • Creating symbol
const foo = Symbol('name');
const bar = Symbol('name');
foo == bar // return FALSE
  • Get propertySymbols
Object.getOwnPropertySymbol(obj);

Iterators and Iterable

Return {value: any, done: boolean} Element can be iterator

const example = "example";
const it = example[Sysmbol.iterator]();
it.next();

Generators

Run function in steps

  • Creating add * in function name
    • Yield is equal return but is possible continue the function after the yield
    • Call the interator use .next()
function* getNames(){
  yield 'Lukete';
  yield 'Henrique';
}
const names = getNames();
names.next();

Proxy

  • Creating proxy
    • params: obj, handler
const obj = {
  name: 'Lukete',
  age: 25
}
const proxy = new Proxy(obj, {
  get(target, name){
    console.log('Request name');
  },
  set(target, name, value){
    console.log('Request name');
  }
})

SET

Is iterables

  • Use size
let mySet = new Set(['lukete', 'henrique']);
mySet.size;
  • Add element ignore equals values
let mySet = new Set(['lukete', 'henrique']);
mySet.add('souza');
  • Delete element
let mySet = new Set(['lukete', 'henrique']);
mySet.delete('henrique');
  • Verify if exists element
let mySet = new Set(['lukete', 'henrique']);
mySet.has('henrique');
  • Get itarables element
let mySet = new Set(['lukete', 'henrique']);
mySet.values();

WeakSet and WeakMap

Only accept object, have equals functions in SET BUT weakset doesnt are iterable

  • Creating weakset
let obj1 = {
  name: 'lukete',
  age: 25,
};
let obj2 = {
  name: 'henrique',
  age: 22,
};

let ws = new WeakSet([ob1, obj2]);

MAP

Key and Value, equal SET are iterable

  • Creating
let m = new Map();
m.set('lukete', 25);

MODULES

Small, one function. Helpt with manutenabilit. Namespacing local. Reusability

IMPORT

  • Structure `import method from library;
  • Forms to use import  - * call all methods  - methodName or { methodName } call specific method
    • use without { } IF export is UNIQUE.  - as define alias  - Using alias
import * as Alias from lib;
Alias.method();

import { methodName } from lib;
methodName();

EXPORT

  • Any export* pear file
    • import with same name
    • import required use {}
export function name1(){};
export function name2(){};
function name3(){};
function name4(){};
export { name3, name4 }
  • Only ONE export default pear file  - import with any name
    • import without use {}
export default name;

Observations

  • Style Guide is very important
  • Husky
  • Only run in changed files
  • WeakMap
    • garbacolletion delete automatic
  • EXPORT
    • Alias are optional.

About

Learn about Javascript(es6, es7) and future versions


Languages

Language:JavaScript 79.4%Language:HTML 19.1%Language:CSS 1.4%