SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Creative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release StreamsCreative Branching Models for Multiple Release Streams
Creative Branching Models for Multiple Release Streams
 
Subversion to Git Migration
Subversion to Git MigrationSubversion to Git Migration
Subversion to Git Migration
 
DevOps Challenges and Best Practices
DevOps Challenges and Best PracticesDevOps Challenges and Best Practices
DevOps Challenges and Best Practices
 
DevOps with GitHub Actions
DevOps with GitHub ActionsDevOps with GitHub Actions
DevOps with GitHub Actions
 
複数サーバでセッションを共有する冴えたやりかた
複数サーバでセッションを共有する冴えたやりかた複数サーバでセッションを共有する冴えたやりかた
複数サーバでセッションを共有する冴えたやりかた
 
Understanding GIT and Version Control
Understanding GIT and Version ControlUnderstanding GIT and Version Control
Understanding GIT and Version Control
 
Git Branching for Agile Teams
Git Branching for Agile Teams Git Branching for Agile Teams
Git Branching for Agile Teams
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
GitLab
GitLabGitLab
GitLab
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)
 
Git and git flow
Git and git flowGit and git flow
Git and git flow
 
Azure Pipelines
Azure PipelinesAzure Pipelines
Azure Pipelines
 
The What, Why, and How of DevSecOps
The What, Why, and How of DevSecOpsThe What, Why, and How of DevSecOps
The What, Why, and How of DevSecOps
 
2019 Webinar ZABBIX CERTIFICATIONS - From User to Expert, and +
2019 Webinar ZABBIX CERTIFICATIONS - From User to Expert, and +2019 Webinar ZABBIX CERTIFICATIONS - From User to Expert, and +
2019 Webinar ZABBIX CERTIFICATIONS - From User to Expert, and +
 
Aula 1. apresentação + frameworks
Aula 1. apresentação + frameworksAula 1. apresentação + frameworks
Aula 1. apresentação + frameworks
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategies
 
Git flow
Git flowGit flow
Git flow
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow solo
 
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
 
Git real slides
Git real slidesGit real slides
Git real slides
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Kürzlich hochgeladen (8)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

Javascript por debaixo dos panos