Este documento fornece uma introdução ao JavaScript, cobrindo conceitos como tipagem dinâmica, sintaxe, funções, objetos e herança por prototipagem. Inclui uma agenda com tópicos como introdução, tipos, funções, escopo e objetos.
2. Seja bem vindo(a)!
Somos um grupo voluntário e independente de
desenvolvedores de software, com o intuito de
disseminar conhecimento e fortalecer a
comunidade local
fb.com/groups/DevRioClaro
devrioclaro@gmail.com
15. Conceitos
• Sensível à caixa (a != A)
• Interpretado, não compilado
• Tipagem dinâmica
• Objetos são apenas hastables
• Herança por prototipagem
• Funções são objetos
• Vetores são objetos
16. Conceitos – think about
O JavaScript foi criado para manipular o DOM (Documento Object Mobel) &
BOM (Browser Object Model), mas esses não são parte do JavaScript.
24. Tipos – number
• Ponto flutuante de 64 bits
• Os mesmos problemas aritmeticos que envolvem double
• NaN (Not a number) é um valor especial que representa erros
29. Tipos - Null
• Nada
• Normalmente usado para erros
• null sempre é atribuido a uma variavel de forma deliberada
30. Tipos - Undefined
• Nada mesmo
• Qualquer variavel que nunca recebeu valor é undefined
31. Tipos – Objetos
• Todo o resto são objetos
• Objetos são hashtables (coleção de chave/valor)
• Objetos não tem classes
• Objetos são dinamicos (é possivel alterar sua estrutura em tempo de
execução)
34. Sintaxe – Palavras reservadas
abstract boolean break byte case catch char class const continue debugger
default delete do double else enum export extends false final finally float for
function goto if implements import in instanceof int interface long native new
null package private protected public return short static super switch
synchronized this throw throws transient true try typeof var volatile void while
with
39. Sintaxe - Funções
• Sempre é boa idéia testar a validade de cada argumento
(e normaliza-los caso necessário) na entrada da função
• Uma função pode receber outra função como parametro
• É possível informar uma cadeia de parametros. Esse
parametros são armazenados numa variavel especial
arguments
• Todos os parâmetros são opcionais. Se o parâmetro não
tem valor especificado na chamado do método, o
argumento é undefined
53. Objetos – Extensão por protótipo
Array.prototype.find = function(arg){
var r = null;
for(var i = 0; i < this.length; i++){
if(arg(this[i])) r = this[i];
break;
}
return r;
}