Giter VIP home page Giter VIP logo

javascript-exercises's Introduction

javascript-exercises

Exercícios do curso de Javascript do Kyle Simpson

Link para slides da aula:

Três Pilares essenciais do Javascript:

    1. Types / Coercion
    1. Scope / Closures
    1. this / Prototypes

Anotações pessoais:

  • null == undefined => TRUE / null === undefined => FALSE

IIFE:

  • cobrir a função com outra função
  • colocar ela toda dentro de parenteses e acabar ela com ()
  • serve para proteger as variáveis alteradas na função de afetar o escopo global
  • ps: hoje em dia, em vez de fazer isso é só declarar a variável na função como let isso se chama block scoping

closure

  • dificil de entender na teoria, mas na prática parece algo fácil de usar
  • segundo tutorial do youtube:
  • closure é basicamente acessar variáveis do escopo global dentro da sua função o dificil:
  • aparentemente closure é muito usada quando se invoca uma função dentro de uma função em que a última função se utiliza de uma variável que foi passada como parâmetro na primeira
  • em js o filho tem acesso ao que ta no escopo dos pais
  • função filho dentro da função pai acessa os parâmetros e variáveis declarados pelo pai, ainda que ele não as passe como parâmetro

this.

  • o .this é definido não pela função, mas pela forma que ela é chamada
  • ex: workshop.ask(question)
  • dentro da função ask, o .this é o workshop, pq foi como ela foi invocada
  • mas pode ser outra coisa dado outro contexto

prototypes

sample1

  • isso aqui é basicamente o que eu fiz no FG
  • o ask em cada chamada da função ai vai chamar o método lá da classe Workshop
  • leia aqui o this.algo como deepJS.algo / reactJS.algo
  • então quando ele sobe la pro ask vc pensa "mas o deepJS não tem um teacher"
  • mas repare na classe Workshop que ela da o teacher pra todos daquela classe usando this.teacher = teacher
  • ou seja, quando deepJS recebe Workshop("Kyle") ele faz o seguinte:
Workshop("Kyle") {
deepJS.teacher = "Kyle"
}
  • assim, quando vc faz deepJS.ask("blabla") vc ta fazendo o seguinte:
function("blabla") {
console.log(deepJS.teacher, "blabla")
}
  • lembrando que deepJS.teacher = teacher, que é justamente o parâmetro passado quando se declarou essa função
  • teacher é só o nome do parametro, ou seja, "Kyle"

o mesmo código, mas agora usando a sintaxe Class

sample2

  • pra isso que se usa o constructor!
  • o constructor é a mesma coisa que a workshop function na imagem anterior

javascript-exercises's People

Contributors

kirielss avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.