SlideShare una empresa de Scribd logo
1 de 18
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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Migrating and Running DBs on Amazon RDS for Oracle
Migrating and Running DBs on Amazon RDS for OracleMigrating and Running DBs on Amazon RDS for Oracle
Migrating and Running DBs on Amazon RDS for Oracle
 
RedHat OpenStack Platform Overview
RedHat OpenStack Platform OverviewRedHat OpenStack Platform Overview
RedHat OpenStack Platform Overview
 
免費Lasy積木課程教案(二) 電子書 - 教你玩LASY益智積木
免費Lasy積木課程教案(二) 電子書 - 教你玩LASY益智積木免費Lasy積木課程教案(二) 電子書 - 教你玩LASY益智積木
免費Lasy積木課程教案(二) 電子書 - 教你玩LASY益智積木
 
kubernetes, pourquoi et comment
kubernetes, pourquoi et commentkubernetes, pourquoi et comment
kubernetes, pourquoi et comment
 
Tanzu Mission Control における Open Policy Agent (OPA) の利用
Tanzu Mission Control における Open Policy Agent (OPA) の利用Tanzu Mission Control における Open Policy Agent (OPA) の利用
Tanzu Mission Control における Open Policy Agent (OPA) の利用
 
Metal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo Long
Metal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo LongMetal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo Long
Metal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo Long
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep dive
 
HashiCorp Vault Workshop:幫 Credentials 找個窩
HashiCorp Vault Workshop:幫 Credentials 找個窩HashiCorp Vault Workshop:幫 Credentials 找個窩
HashiCorp Vault Workshop:幫 Credentials 找個窩
 
KubeVirt 201 How to Using the GPU
KubeVirt 201 How to Using the GPUKubeVirt 201 How to Using the GPU
KubeVirt 201 How to Using the GPU
 
React Native EU 2021 - Creating a VoIP app in React Native - the beginner's g...
React Native EU 2021 - Creating a VoIP app in React Native - the beginner's g...React Native EU 2021 - Creating a VoIP app in React Native - the beginner's g...
React Native EU 2021 - Creating a VoIP app in React Native - the beginner's g...
 
[오픈소스컨설팅] ARM & OpenStack Community
[오픈소스컨설팅] ARM & OpenStack Community[오픈소스컨설팅] ARM & OpenStack Community
[오픈소스컨설팅] ARM & OpenStack Community
 
Python for katana
Python for katanaPython for katana
Python for katana
 
Drive into calico architecture
Drive into calico architectureDrive into calico architecture
Drive into calico architecture
 
OpenShift-Technical-Overview.pdf
OpenShift-Technical-Overview.pdfOpenShift-Technical-Overview.pdf
OpenShift-Technical-Overview.pdf
 
OpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfOpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdf
 
Red Hat multi-cluster management & what's new in OpenShift
Red Hat multi-cluster management & what's new in OpenShiftRed Hat multi-cluster management & what's new in OpenShift
Red Hat multi-cluster management & what's new in OpenShift
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
 
Implementation & Comparison Of Rdma Over Ethernet
Implementation & Comparison Of Rdma Over EthernetImplementation & Comparison Of Rdma Over Ethernet
Implementation & Comparison Of Rdma Over Ethernet
 
Training And Serving ML Model Using Kubeflow by Jayesh Sharma
Training And Serving ML Model Using Kubeflow by Jayesh SharmaTraining And Serving ML Model Using Kubeflow by Jayesh Sharma
Training And Serving ML Model Using Kubeflow by Jayesh Sharma
 
Everything you want to know about Ingress
Everything you want to know about IngressEverything you want to know about Ingress
Everything you want to know about Ingress
 

Similar a Javascript por debaixo dos panos

T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
Carlos Santos
 
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
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
PrinceGuru MS
 

Similar 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
 

Javascript por debaixo dos panos