SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
Nada sobre JavaScript
Tudo que você queria perguntar mas
não dará tempo
by
Luís Fernando Vendrame
Desenvolvedor
Tenta entender de tudo
Não entende de Nada
No máximo resolve
algum problema
JavaScript não é Java
Nasceu em 1995 na Netscape
Sim, é tipada
var i = “oi”;
typeof oi === “string”
Sim, é dinâmica
Tudo é objeto, inclusive função, com exceção de
number, string, boolean, null e undefined
var obj = {} //object
var dt = new Date() //object --> Date
var arr = [] //object --> Array
var func = function(){} //function
Object
Contexto
Properties
obj[“Prop”] ou obj.Prop
for in percorre
hasOwnProperty(propertyName)
delete obj.Prop
Prototype
Quem disse que JavaScript não tem
herança
function Employee () { … }
function Manager () { ... }
Manager.prototype = new Employee;
Uouuuuu
Escopo
Global
Função 1
Função 2
Busca de variáveis em todos os escopos
Minimize a busca por escopos
Contexto
Global
Objetos
Function
Pode ser uma função normal
Pode ser uma função construtora
Criam novo escopo de execução
Tem um cara legal chamado arguments
Function
Se chamado com new cria um novo
contexto
Pode transferir o contexto chamador (bind,
call e apply)
O this com new aponta pro novo contexto,
sem new aponta para o contexto Global
For
for(var i = 0; i < 3; i++){ ... }
for(var i in [1,2,3,4,5,6]){ ... }
Prefira guardar o tamanho do array
for(var i = 0, len = arr.length; i < len; i++) { ... }
For in somente se realmente necessário
“use strict”; (ativa o modo estrito)
Equívocos são erros e não serão tolerados
Bloqueia o uso de variáveis globais implícitas
With não será permitido
Quando a função for chamada sem o new, this não
apontará para Global, pois será um undefined
http://tableless.com.br/javascript-strict-mode/
Entre outros...
IIFE - Immediately-Invoked Function Expression
Cria um novo escopo isolado
Protege variáveis criadas no seu escopo
Em casos simples as vezes já necessitamos
deste isolamento
http://tutsmais.com.br/blog/javascript-2/o-
que-e-iife-no-javascript/
Jquery é legal, mas por favor, saiba fazer antes
com JavaScript puro, você se tornará amigo do
DOM
Jquery muitas vezes é mais lento que o nativo
Se usar Jquery, minimize as buscas de
elementos, elas não precisam ser executadas
a todo tempo.

Más contenido relacionado

La actualidad más candente

[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAll
[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAll[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAll
[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAllLoiane Groner
 
Apresentação aula 2 android
Apresentação aula 2 androidApresentação aula 2 android
Apresentação aula 2 androidAlex Braz
 
[Curso Java Basico] Aula 73: Threads: resume, suspend e stop
[Curso Java Basico] Aula 73: Threads: resume, suspend e stop[Curso Java Basico] Aula 73: Threads: resume, suspend e stop
[Curso Java Basico] Aula 73: Threads: resume, suspend e stopLoiane Groner
 
Visão geral sobre Assertivas e Exceções no Java7
Visão geral sobre Assertivas e Exceções no Java7Visão geral sobre Assertivas e Exceções no Java7
Visão geral sobre Assertivas e Exceções no Java7Julio Cesar Nunes de Souza
 
Iniciando com JQuery
Iniciando com JQueryIniciando com JQuery
Iniciando com JQueryMateus Padua
 
Testes e depuração de código com Python
Testes e depuração de código com PythonTestes e depuração de código com Python
Testes e depuração de código com PythonDorneles Treméa
 
Orientação a Objetos Elegante e Eficiente: Brevíssima Introdução ao Moose
Orientação a Objetos Elegante e Eficiente: Brevíssima Introdução ao MooseOrientação a Objetos Elegante e Eficiente: Brevíssima Introdução ao Moose
Orientação a Objetos Elegante e Eficiente: Brevíssima Introdução ao Moosegarux
 
Ciclo de vida de um componente react
Ciclo de vida de um componente reactCiclo de vida de um componente react
Ciclo de vida de um componente reactLaryssa Magalhães
 

La actualidad más candente (19)

Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Vim
VimVim
Vim
 
Curso Java I
Curso Java ICurso Java I
Curso Java I
 
Python3
Python3Python3
Python3
 
Testes com JUnit
Testes com JUnitTestes com JUnit
Testes com JUnit
 
[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAll
[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAll[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAll
[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAll
 
Apresentação aula 2 android
Apresentação aula 2 androidApresentação aula 2 android
Apresentação aula 2 android
 
Aula java[1]
Aula java[1]Aula java[1]
Aula java[1]
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
[Curso Java Basico] Aula 73: Threads: resume, suspend e stop
[Curso Java Basico] Aula 73: Threads: resume, suspend e stop[Curso Java Basico] Aula 73: Threads: resume, suspend e stop
[Curso Java Basico] Aula 73: Threads: resume, suspend e stop
 
Visão geral sobre Assertivas e Exceções no Java7
Visão geral sobre Assertivas e Exceções no Java7Visão geral sobre Assertivas e Exceções no Java7
Visão geral sobre Assertivas e Exceções no Java7
 
Iniciando com JQuery
Iniciando com JQueryIniciando com JQuery
Iniciando com JQuery
 
Testes e depuração de código com Python
Testes e depuração de código com PythonTestes e depuração de código com Python
Testes e depuração de código com Python
 
JavaScript das Ruas
JavaScript das RuasJavaScript das Ruas
JavaScript das Ruas
 
Orientação a Objetos Elegante e Eficiente: Brevíssima Introdução ao Moose
Orientação a Objetos Elegante e Eficiente: Brevíssima Introdução ao MooseOrientação a Objetos Elegante e Eficiente: Brevíssima Introdução ao Moose
Orientação a Objetos Elegante e Eficiente: Brevíssima Introdução ao Moose
 
Ciclo de vida de um componente react
Ciclo de vida de um componente reactCiclo de vida de um componente react
Ciclo de vida de um componente react
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 
Programação funcional no dia a dia
Programação funcional no dia a diaProgramação funcional no dia a dia
Programação funcional no dia a dia
 

Similar a Nada sobre JavaScript

Minicurso javascript
Minicurso javascriptMinicurso javascript
Minicurso javascriptLucas Aquiles
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - BrazilStephen Chin
 
jQuery básico (parte 1)
jQuery básico (parte 1)jQuery básico (parte 1)
jQuery básico (parte 1)Luís Cobucci
 
Sábado Hackadêmico - JavaScript
Sábado Hackadêmico - JavaScriptSábado Hackadêmico - JavaScript
Sábado Hackadêmico - JavaScriptJulio Greff
 
Livro - código limpo caps (3,4) (clean code)
Livro - código limpo caps (3,4) (clean code)Livro - código limpo caps (3,4) (clean code)
Livro - código limpo caps (3,4) (clean code)André Justi
 
Javascript para CSharpers 2 - Functions
Javascript para CSharpers   2 - FunctionsJavascript para CSharpers   2 - Functions
Javascript para CSharpers 2 - FunctionsWesley Lemos
 
Groovy na plataforma Java
Groovy na plataforma JavaGroovy na plataforma Java
Groovy na plataforma JavaJoão Lourenço
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsLucas Caton
 
[Curso Java Basico - Exceptions] Aula 47: try, catch
[Curso Java Basico - Exceptions] Aula 47: try, catch[Curso Java Basico - Exceptions] Aula 47: try, catch
[Curso Java Basico - Exceptions] Aula 47: try, catchLoiane Groner
 
Javascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - ConceitosJavascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - ConceitosWesley Lemos
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao javaArmando Daniel
 

Similar a Nada sobre JavaScript (20)

Javascript
JavascriptJavascript
Javascript
 
Minicurso javascript
Minicurso javascriptMinicurso javascript
Minicurso javascript
 
Aula5
Aula5Aula5
Aula5
 
Javascript avançado
Javascript avançadoJavascript avançado
Javascript avançado
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
Threads em java
Threads em javaThreads em java
Threads em java
 
jQuery básico (parte 1)
jQuery básico (parte 1)jQuery básico (parte 1)
jQuery básico (parte 1)
 
OOP Java
OOP JavaOOP Java
OOP Java
 
Javascript
JavascriptJavascript
Javascript
 
Sábado Hackadêmico - JavaScript
Sábado Hackadêmico - JavaScriptSábado Hackadêmico - JavaScript
Sábado Hackadêmico - JavaScript
 
Livro - código limpo caps (3,4) (clean code)
Livro - código limpo caps (3,4) (clean code)Livro - código limpo caps (3,4) (clean code)
Livro - código limpo caps (3,4) (clean code)
 
Javascript para CSharpers 2 - Functions
Javascript para CSharpers   2 - FunctionsJavascript para CSharpers   2 - Functions
Javascript para CSharpers 2 - Functions
 
Groovy na plataforma Java
Groovy na plataforma JavaGroovy na plataforma Java
Groovy na plataforma Java
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on Rails
 
Java 13 Excecoes
Java 13 ExcecoesJava 13 Excecoes
Java 13 Excecoes
 
Floggy-JustJava-2008-09-10
Floggy-JustJava-2008-09-10Floggy-JustJava-2008-09-10
Floggy-JustJava-2008-09-10
 
[Curso Java Basico - Exceptions] Aula 47: try, catch
[Curso Java Basico - Exceptions] Aula 47: try, catch[Curso Java Basico - Exceptions] Aula 47: try, catch
[Curso Java Basico - Exceptions] Aula 47: try, catch
 
Javascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - ConceitosJavascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - Conceitos
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 

Nada sobre JavaScript

  • 1. Nada sobre JavaScript Tudo que você queria perguntar mas não dará tempo
  • 2. by Luís Fernando Vendrame Desenvolvedor Tenta entender de tudo Não entende de Nada No máximo resolve algum problema
  • 3. JavaScript não é Java Nasceu em 1995 na Netscape
  • 4. Sim, é tipada var i = “oi”; typeof oi === “string” Sim, é dinâmica Tudo é objeto, inclusive função, com exceção de number, string, boolean, null e undefined
  • 5. var obj = {} //object var dt = new Date() //object --> Date var arr = [] //object --> Array var func = function(){} //function
  • 6. Object Contexto Properties obj[“Prop”] ou obj.Prop for in percorre hasOwnProperty(propertyName) delete obj.Prop
  • 7. Prototype Quem disse que JavaScript não tem herança function Employee () { … } function Manager () { ... } Manager.prototype = new Employee; Uouuuuu
  • 8. Escopo Global Função 1 Função 2 Busca de variáveis em todos os escopos Minimize a busca por escopos Contexto Global Objetos
  • 9. Function Pode ser uma função normal Pode ser uma função construtora Criam novo escopo de execução Tem um cara legal chamado arguments
  • 10. Function Se chamado com new cria um novo contexto Pode transferir o contexto chamador (bind, call e apply) O this com new aponta pro novo contexto, sem new aponta para o contexto Global
  • 11. For for(var i = 0; i < 3; i++){ ... } for(var i in [1,2,3,4,5,6]){ ... } Prefira guardar o tamanho do array for(var i = 0, len = arr.length; i < len; i++) { ... } For in somente se realmente necessário
  • 12. “use strict”; (ativa o modo estrito) Equívocos são erros e não serão tolerados Bloqueia o uso de variáveis globais implícitas With não será permitido Quando a função for chamada sem o new, this não apontará para Global, pois será um undefined http://tableless.com.br/javascript-strict-mode/ Entre outros...
  • 13. IIFE - Immediately-Invoked Function Expression Cria um novo escopo isolado Protege variáveis criadas no seu escopo Em casos simples as vezes já necessitamos deste isolamento http://tutsmais.com.br/blog/javascript-2/o- que-e-iife-no-javascript/
  • 14. Jquery é legal, mas por favor, saiba fazer antes com JavaScript puro, você se tornará amigo do DOM Jquery muitas vezes é mais lento que o nativo Se usar Jquery, minimize as buscas de elementos, elas não precisam ser executadas a todo tempo.