SlideShare uma empresa Scribd logo
Como funciona esse trem?
Eu só sei que escreve console.log aparece um texto lá no console...
JAVASCRIPT
@lalizita
lalizita
laislima98
laislima98@hotmail.com
Laís Lima, 20 anos
Front End Developer @ Cosmobots
@onerdzao / @womakersgram
Por que devemos saber como o
javascript funciona?
● E fundamental que você conheça
● facilitar debug
● ficar craque para as entrevistas
Vamos conhecer o Javascript mais a fundo...
Javascript gostaria
de sair comigo?
Vamos descobrir suas habilidades mais obscuras,
ganhar intimidade, conquistá-lo e dominá-lo!
Fala pro Javascript que
é hoje!
Javascript engine
Spider Monkey
https://developer.mozilla.org/en-
US/docs/Mozilla/Projects/SpiderMonkey
https://v8.dev/
Global Execution Context
Toda vez que a Engine lê o seu código Global Execution Context é criado
Global Memory
Global Memory também é criada toda vez que a engine lê o seu código
Global
Execution
Context
Global
Memory
Javascript Engine
On progress...
Como a engine lê seu código
// Legal, temos uma constante, vamos armazenar na Global Memory
let tentativas = 0;
// olha só uma função, vamos armazenar ela na Global memory também *-* ownt
function chegarNele(resposta){
if(!resposta) return tentativa++;
return alert(“É HOJE BICHO!”);
}
// Pronto terminei!
Global
Execution
Context
Global
Memory
Javascript Engine
On progress...
chegarNele:function
tentativas: 0
chegaNele();
CALL STACK HELP!
Push coloca na stack
Pop remove da stack
Global
Execution
Context
Global
Memory
Javascript Engine
Call Stack
chegarNele():
-Local Execution
Context
-Local Memory
main()
chegaNele()
chegaNele:
Executando...
DEMOOOOOOOOO
**Js Hacks para você usar no trampo**
● extração dos parâmetros na função
● usar length para esvaziar um array
● checar se objeto está vazio ou nao Object.keys
● valores default ||
● usar !! para converter para boolean
● + operator para converter string para números
● logica com &&
Fontes
https://www.valentinog.com/blog/js-execution-context-call-stack/
https://www.youtube.com/watch?v=W8AeMrVtFLY
https://corpocrat.com/2018/04/25/20-simple-wow-hacks-in-javascript/
https://medium.com/@rahul.raviprasad/the-little-known-bitwise-operations-and-their-performance-
in-javascript-c281d512c757
@lalizita
lalizita
laislima98
laislima98@hotmail.com
@onerdzao / @womakersgram
Laís Lima, 20 anos
Front End Developer @ Cosmobots

Mais conteúdo relacionado

Semelhante a Javascript por debaixo dos panos

Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
Laís Lima
 
Minicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Minicurso Ajax - 5. Semana de Informática PUC Minas São GabrielMinicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Minicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Marcelo Linhares
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
Frederico Maia Arantes
 
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
iMasters
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
Carlos Santos
 
JavaScript Moderno
JavaScript ModernoJavaScript Moderno
JavaScript Moderno
Josino Rodrigues
 
Vivendo de hacking
Vivendo de hackingVivendo de hacking
Vivendo de hacking
Antonio Costa aka Cooler_
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScript
Thiago Poiani
 
Apresentação - Uniararas - JEE e Desenvolvimento Ágil
Apresentação - Uniararas - JEE e Desenvolvimento ÁgilApresentação - Uniararas - JEE e Desenvolvimento Ágil
Apresentação - Uniararas - JEE e Desenvolvimento Ágil
Marcio Garcia
 
Plataforma java: detalhes da JVM
Plataforma java: detalhes da JVMPlataforma java: detalhes da JVM
Plataforma java: detalhes da JVM
Caelum
 
Workflow WordPress + JavaScript - WordCamp Rio
Workflow WordPress + JavaScript  - WordCamp RioWorkflow WordPress + JavaScript  - WordCamp Rio
Workflow WordPress + JavaScript - WordCamp Rio
Fellyph Cintra
 
Xss
XssXss
Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...
Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...
Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...
wordcamppoa
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
Giovanni Kenji Shiroma
 
burlando um WAF
burlando um WAFburlando um WAF
burlando um WAF
Antonio Costa aka Cooler_
 
SEO para Front-End - BeagaJS
SEO para Front-End - BeagaJSSEO para Front-End - BeagaJS
SEO para Front-End - BeagaJS
Fabio Ricotta
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Jackson F. de A. Mafra
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
Felipe Ribeiro
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
PrinceGuru MS
 
Preparando seu e-commerce para a Black Friday
Preparando seu e-commerce para a Black FridayPreparando seu e-commerce para a Black Friday
Preparando seu e-commerce para a Black Friday
Umbler
 

Semelhante a Javascript por debaixo dos panos (20)

Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Minicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Minicurso Ajax - 5. Semana de Informática PUC Minas São GabrielMinicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
Minicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
 
JavaScript Moderno
JavaScript ModernoJavaScript Moderno
JavaScript Moderno
 
Vivendo de hacking
Vivendo de hackingVivendo de hacking
Vivendo de hacking
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScript
 
Apresentação - Uniararas - JEE e Desenvolvimento Ágil
Apresentação - Uniararas - JEE e Desenvolvimento ÁgilApresentação - Uniararas - JEE e Desenvolvimento Ágil
Apresentação - Uniararas - JEE e Desenvolvimento Ágil
 
Plataforma java: detalhes da JVM
Plataforma java: detalhes da JVMPlataforma java: detalhes da JVM
Plataforma java: detalhes da JVM
 
Workflow WordPress + JavaScript - WordCamp Rio
Workflow WordPress + JavaScript  - WordCamp RioWorkflow WordPress + JavaScript  - WordCamp Rio
Workflow WordPress + JavaScript - WordCamp Rio
 
Xss
XssXss
Xss
 
Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...
Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...
Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
 
burlando um WAF
burlando um WAFburlando um WAF
burlando um WAF
 
SEO para Front-End - BeagaJS
SEO para Front-End - BeagaJSSEO para Front-End - BeagaJS
SEO para Front-End - BeagaJS
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Preparando seu e-commerce para a Black Friday
Preparando seu e-commerce para a Black FridayPreparando seu e-commerce para a Black Friday
Preparando seu e-commerce para a Black Friday
 

Último

Teoria de redes de computadores redes .doc
Teoria de redes de computadores redes .docTeoria de redes de computadores redes .doc
Teoria de redes de computadores redes .doc
anpproferick
 
Orientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço BrasilOrientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço Brasil
EliakimArajo2
 
Por que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdfPor que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdf
Ian Oliveira
 
PRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product ownerPRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product owner
anpproferick
 
Gestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefíciosGestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefícios
Rafael Santos
 
Como fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptxComo fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptx
tnrlucas
 
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Annelise Gripp
 

Último (7)

Teoria de redes de computadores redes .doc
Teoria de redes de computadores redes .docTeoria de redes de computadores redes .doc
Teoria de redes de computadores redes .doc
 
Orientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço BrasilOrientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço Brasil
 
Por que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdfPor que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdf
 
PRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product ownerPRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product owner
 
Gestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefíciosGestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefícios
 
Como fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptxComo fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptx
 
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
 

Javascript por debaixo dos panos