Javascript não é Java+Script (TDC Floripa 2012)

  • Published on
    05-Jul-2015

  • View
    593

  • Download
    6

Embed Size (px)

DESCRIPTION

Slides da palestra JavaScript no Java+Script, apresentada no TDC Floripa em 25/8/2012

Transcript

  • 1. Uma (re)introduo ao JavaScriptTDC Florianpolis Rodrigo Vieira25/08/2012 @rodbv1

2. Saturday, August 25, 2012 2 3. Um pouco de histria A linguagem Dicas e erros comuns 4. Mocha! LiveScript!Brendan Eich Scheme4 5. Linguagem dinmica, fracamente tipada, funcional e OOObjetos e vetores so dicionrios melhoradosHerana por prototipaoSaturday, August 25, 2012 5 6. Java + scriptDOMAJAXjQuerySaturday, August 25, 2012 6 7. Valor String, Number, Boolean, null, undefined Referncia Objetos Funes Arrays RegEx Date MathSaturday, August 25, 20127 8. Sequncia de caracteres unicodeStrings com mesmo valor so consideradas idnticasNo existe tipo charPodemos usar aspas simples e duplasPossui mtodosSaturday, August 25, 2012 8 9. Ponto flutuante de 64 bits No existe tipo inteiro NaN Infinity Hexa (0xa12) Notao cientfica (1.23e-8) Octal: primeiro dgito zero, cuidado! parseInt(08) //0 parseInt(08, 10) //8Saturday, August 25, 2012 9 10. undefined: valor padro para variveis, parmetros e atributos sem valor atribudo null: objeto nulo, atribudo explicitamenteSaturday, August 25, 2012 10 11. true falseSaturday, August 25, 2012 11 12. Os seguintes valores so avaliados como false quando fazem partes de expresses booleanas (falsy): 0 null undefined NaNTodo o resto avaliado como true (truthy) inclusive as strings false e 0!Saturday, August 25, 2012 12 13. d = new Date(); //data atual d = new Date (88500); //ms desde 1.1.1970 d = new Date(2012, 25, 7);Saturday, August 25, 2012 13 14. No so arrays de verdade, mas um dicionrio com chaves numricas No d erro de limites Aceita diferentes tipos de dadosvar a = new Array(); //oldskoolvar a = []; //coolvar a = [1, a, obj]; //inlinea.push(floripa);a.length; //4Saturday, August 25, 201214 15. Saturday, August 25, 2012 15 16. var r = new RegExp(w{1,3}d{2}, gim);var r = /w{1,3}d{2}/gim;r.test(ab12); //trueabc12xyz.replace(/w{1,3}/gim, ); //12xyzSaturday, August 25, 201216 17. O corao de programao decente em JS Cidads de primeira classe Uma funo pode ser: Varivel Parmetro Propriedade de objeto Annima Retorno de outra funo Interna a outra funoSaturday, August 25, 201217 18. Declarao comum function fala(texto) {alert(Oi, + texto + !); } fala(amigo); //Oi,amigo!Saturday, August 25, 2012 18 19. Varivel com funo annimavar minhaFuncao = function(texto) {alert(Fala, + texto + !);};minhaFuncao(amigo); //Fala,amigo!Saturday, August 25, 2012 19 20. function geraSoma (x) { return function(num) { return x + num; } } var soma5 = geraSoma(5); soma5(3); //8Saturday, August 25, 2012 20 21. function geraSoma (x) { return function(num) { return x + num; } }Closure var somador = geraSoma(5); somador(3); //8Saturday, August 25, 2012 21 22. function geraSoma (x) { return function(num) { return x + num; } } var x = 5; Closure var somador = geraSoma(x); somador(3); //8 x = 9; somador(3); //ainda 8Saturday, August 25, 2012 22 23. Uma funo cria cpias dos valores disponveis durante sua criao, para serem usados em tempo de execuoClosureFunoSaturday, August 25, 201223 24. function executa(func) { func(); } function dizOi() { alert(oi!); } executa(dizOi); //oi!Saturday, August 25, 2012 24 25. executa(function() {alert(oi);}); //oi!Saturday, August 25, 2012 25 26. function soma(x,y) {return x + y;}soma(2,3); //5soma(2,5) //25Saturday, August 25, 2012 26 27. function soma(x,y) {return x + y;}soma(2,3,5,hello); //5soma(2); //NaNSaturday, August 25, 2012 27 28. Coleo de argumentos passado para a funofunction soma() {var total=0;for (var i=0; iSaturday, August 25, 201258 59. Douglas Crockford o carahttp://javascript.crockford.com/Saturday, August 25, 201259 60. @rodbvrodrigo.vieira@gmail.comSaturday, August 25, 2012 60