SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

애플리케이션 아키텍처와 객체지향
애플리케이션 아키텍처와 객체지향 애플리케이션 아키텍처와 객체지향
애플리케이션 아키텍처와 객체지향 Young-Ho Cho
 
MyBatisとMyBatis Generatorの話
MyBatisとMyBatis Generatorの話MyBatisとMyBatis Generatorの話
MyBatisとMyBatis Generatorの話tekuragari
 
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Catch, Traffic!] : 지하철 혼잡도 및 키워드 분석 데이터 파이프라인 구축
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Catch, Traffic!] : 지하철 혼잡도 및 키워드 분석 데이터 파이프라인 구축제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Catch, Traffic!] : 지하철 혼잡도 및 키워드 분석 데이터 파이프라인 구축
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Catch, Traffic!] : 지하철 혼잡도 및 키워드 분석 데이터 파이프라인 구축BOAZ Bigdata
 
Amazon Connect를 이용한 outbound call 서비스 개발하기
Amazon Connect를 이용한 outbound call 서비스 개발하기Amazon Connect를 이용한 outbound call 서비스 개발하기
Amazon Connect를 이용한 outbound call 서비스 개발하기창훈 현
 
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색 제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색 BOAZ Bigdata
 
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자Yurim Jin
 
Programming Game AI by Example. Ch7. Raven
Programming Game AI by Example. Ch7. RavenProgramming Game AI by Example. Ch7. Raven
Programming Game AI by Example. Ch7. RavenRyan Park
 
영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA경원 이
 
フォトダイオードのスパイスモデル
フォトダイオードのスパイスモデルフォトダイオードのスパイスモデル
フォトダイオードのスパイスモデルTsuyoshi Horigome
 
소프트웨어 개선 그룹(Sig) 개발 원칙
소프트웨어 개선 그룹(Sig) 개발 원칙소프트웨어 개선 그룹(Sig) 개발 원칙
소프트웨어 개선 그룹(Sig) 개발 원칙Hong Hyo Sang
 
DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)WhaTap Labs
 
‘서울 어린이 대공원’의 기간별 주차장 이용 현황 분석
‘서울 어린이 대공원’의 기간별 주차장 이용 현황 분석‘서울 어린이 대공원’의 기간별 주차장 이용 현황 분석
‘서울 어린이 대공원’의 기간별 주차장 이용 현황 분석Hyejeong Song
 
J2 me based file transfer and storage system uml
J2 me based file transfer and storage system   umlJ2 me based file transfer and storage system   uml
J2 me based file transfer and storage system umlpenubarthhy
 
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [추적 24시] : 완전 자동결제를 위한 무인점포 이용자 Tracking System 개발
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스  - [추적 24시] : 완전 자동결제를 위한 무인점포 이용자 Tracking System 개발제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스  - [추적 24시] : 완전 자동결제를 위한 무인점포 이용자 Tracking System 개발
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [추적 24시] : 완전 자동결제를 위한 무인점포 이용자 Tracking System 개발BOAZ Bigdata
 
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [TweetViz팀] : 카프카와 스파크를 통한 tweetdeck 개발
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [TweetViz팀] : 카프카와 스파크를 통한 tweetdeck 개발제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [TweetViz팀] : 카프카와 스파크를 통한 tweetdeck 개발
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [TweetViz팀] : 카프카와 스파크를 통한 tweetdeck 개발BOAZ Bigdata
 
Curso de APF - Básico
Curso de APF - BásicoCurso de APF - Básico
Curso de APF - BásicoMarcus Costa
 
객체지향적인 도메인 레이어 구축하기
객체지향적인 도메인 레이어 구축하기객체지향적인 도메인 레이어 구축하기
객체지향적인 도메인 레이어 구축하기Young-Ho Cho
 
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [이탈리안 BMT] : 지하철 지연 시간 데이터 분석 및 시각화를 위한 데이터 파이프라인 구축
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [이탈리안 BMT] : 지하철 지연 시간 데이터 분석 및 시각화를 위한 데이터 파이프라인 구축제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [이탈리안 BMT] : 지하철 지연 시간 데이터 분석 및 시각화를 위한 데이터 파이프라인 구축
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [이탈리안 BMT] : 지하철 지연 시간 데이터 분석 및 시각화를 위한 데이터 파이프라인 구축BOAZ Bigdata
 

What's hot (20)

애플리케이션 아키텍처와 객체지향
애플리케이션 아키텍처와 객체지향 애플리케이션 아키텍처와 객체지향
애플리케이션 아키텍처와 객체지향
 
MyBatisとMyBatis Generatorの話
MyBatisとMyBatis Generatorの話MyBatisとMyBatis Generatorの話
MyBatisとMyBatis Generatorの話
 
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Catch, Traffic!] : 지하철 혼잡도 및 키워드 분석 데이터 파이프라인 구축
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Catch, Traffic!] : 지하철 혼잡도 및 키워드 분석 데이터 파이프라인 구축제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Catch, Traffic!] : 지하철 혼잡도 및 키워드 분석 데이터 파이프라인 구축
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [Catch, Traffic!] : 지하철 혼잡도 및 키워드 분석 데이터 파이프라인 구축
 
Amazon Connect를 이용한 outbound call 서비스 개발하기
Amazon Connect를 이용한 outbound call 서비스 개발하기Amazon Connect를 이용한 outbound call 서비스 개발하기
Amazon Connect를 이용한 outbound call 서비스 개발하기
 
iOS WebView App
iOS WebView AppiOS WebView App
iOS WebView App
 
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색 제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색
제 15회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [YouPlace 팀] : 카프카와 스파크를 활용한 유튜브 영상 속 제주 명소 검색
 
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
[SOSCON 2017] 주니어 개발자 5000명, 개발 해서 남 주자
 
Programming Game AI by Example. Ch7. Raven
Programming Game AI by Example. Ch7. RavenProgramming Game AI by Example. Ch7. Raven
Programming Game AI by Example. Ch7. Raven
 
Data Science. Intro
Data Science. IntroData Science. Intro
Data Science. Intro
 
영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA
 
フォトダイオードのスパイスモデル
フォトダイオードのスパイスモデルフォトダイオードのスパイスモデル
フォトダイオードのスパイスモデル
 
소프트웨어 개선 그룹(Sig) 개발 원칙
소프트웨어 개선 그룹(Sig) 개발 원칙소프트웨어 개선 그룹(Sig) 개발 원칙
소프트웨어 개선 그룹(Sig) 개발 원칙
 
DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)DB Monitoring 개념 및 활용 (박명규)
DB Monitoring 개념 및 활용 (박명규)
 
‘서울 어린이 대공원’의 기간별 주차장 이용 현황 분석
‘서울 어린이 대공원’의 기간별 주차장 이용 현황 분석‘서울 어린이 대공원’의 기간별 주차장 이용 현황 분석
‘서울 어린이 대공원’의 기간별 주차장 이용 현황 분석
 
J2 me based file transfer and storage system uml
J2 me based file transfer and storage system   umlJ2 me based file transfer and storage system   uml
J2 me based file transfer and storage system uml
 
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [추적 24시] : 완전 자동결제를 위한 무인점포 이용자 Tracking System 개발
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스  - [추적 24시] : 완전 자동결제를 위한 무인점포 이용자 Tracking System 개발제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스  - [추적 24시] : 완전 자동결제를 위한 무인점포 이용자 Tracking System 개발
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [추적 24시] : 완전 자동결제를 위한 무인점포 이용자 Tracking System 개발
 
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [TweetViz팀] : 카프카와 스파크를 통한 tweetdeck 개발
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [TweetViz팀] : 카프카와 스파크를 통한 tweetdeck 개발제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [TweetViz팀] : 카프카와 스파크를 통한 tweetdeck 개발
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [TweetViz팀] : 카프카와 스파크를 통한 tweetdeck 개발
 
Curso de APF - Básico
Curso de APF - BásicoCurso de APF - Básico
Curso de APF - Básico
 
객체지향적인 도메인 레이어 구축하기
객체지향적인 도메인 레이어 구축하기객체지향적인 도메인 레이어 구축하기
객체지향적인 도메인 레이어 구축하기
 
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [이탈리안 BMT] : 지하철 지연 시간 데이터 분석 및 시각화를 위한 데이터 파이프라인 구축
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [이탈리안 BMT] : 지하철 지연 시간 데이터 분석 및 시각화를 위한 데이터 파이프라인 구축제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [이탈리안 BMT] : 지하철 지연 시간 데이터 분석 및 시각화를 위한 데이터 파이프라인 구축
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [이탈리안 BMT] : 지하철 지연 시간 데이터 분석 및 시각화를 위한 데이터 파이프라인 구축
 

Similar to Como funciona o Javascript: Contexto de Execução e Pilha de Chamadas

Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaí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 GabrielMarcelo Linhares
 
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
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScriptThiago 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 ÁgilMarcio Garcia
 
Plataforma java: detalhes da JVM
Plataforma java: detalhes da JVMPlataforma java: detalhes da JVM
Plataforma java: detalhes da JVMCaelum
 
Workflow WordPress + JavaScript - WordCamp Rio
Workflow WordPress + JavaScript  - WordCamp RioWorkflow WordPress + JavaScript  - WordCamp Rio
Workflow WordPress + JavaScript - WordCamp RioFellyph Cintra
 
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 & DockerGiovanni Kenji Shiroma
 
SEO para Front-End - BeagaJS
SEO para Front-End - BeagaJSSEO para Front-End - BeagaJS
SEO para Front-End - BeagaJSFabio 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 PassosJackson 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 PerformanceFelipe Ribeiro
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru 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 FridayUmbler
 

Similar to Como funciona o Javascript: Contexto de Execução e Pilha de Chamadas (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
 

Como funciona o Javascript: Contexto de Execução e Pilha de Chamadas