Slide 1

Slide 1 text

JAVASCRIPT Pitfalls

Slide 2

Slide 2 text

Why?

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Escopos • Global or FuckingScope • Functions • IIFE (Immediately Invoked Function Expression)

Slide 5

Slide 5 text

Global var chauehGlobal = "Chaue Ferradura"

Slide 6

Slide 6 text

Local var chauehGlobal = "Chaueh Ferradura"; function scope1() { var chauehLocal = "Chaueh é Legal"; } scope1(); console.log(chauehLocal); //Arrrggg ... Reference Error

Slide 7

Slide 7 text

var chauehGlobal = "Chaueh Ferradura"; function scope1() { var chauehLocal = "Chaueh é Legal"; function scope2() { var chauehLocal = "Chaueh é Chato"; console.log(chauehLocal); // é Chato } console.log(chauehLocal); // é legal }

Slide 8

Slide 8 text

IIFE (function(){ var local = "Chaueh é Fofo"; })(); console.log(local); // Reference Error

Slide 9

Slide 9 text

javascript hoisting

Slide 10

Slide 10 text

– Chaueh Ferradura “JavaScript Hoisting é o comportamento default de mover declarações a o top.”

Slide 11

Slide 11 text

hoisting(); // Nooooooooooooooooo function chamaChaueh() { console.log("Nooooooooooooooooo") }

Slide 12

Slide 12 text

function chamaChaueh() { console.log("Nooooooooooooooooo") } hoisting(); // Nooooooooooooooooo

Slide 13

Slide 13 text

console.log(ops); // ??? (Gui? Gabi? Wil? Alguém arrisca?) var ops = "Chama Chaueh";

Slide 14

Slide 14 text

Fuck vou embora

Slide 15

Slide 15 text

Declare suas variáveis no começo

Slide 16

Slide 16 text

ops(); var ops = function(){ console.log("Chaueh é lindo"); }; Chaueh: Tá de sacanagem BrenoPHP? Você já mostrou que isso funciona. BrenoPHP: Mostrei Chaueh? Tem certeza? Acho que não

Slide 17

Slide 17 text

Objetos por referência

Slide 18

Slide 18 text

var pessoa = { idade: 20 } var chaueh = pessoa; chaueh.idade = 24; console.log(pessoa.idade); // 24

Slide 19

Slide 19 text

var pessoa = { idade: 20 } var chaueh = Object.create(pessoa); chaueh.idade = 24; console.log(pessoa.idade); // 20 object.create

Slide 20

Slide 20 text

.has Own Property

Slide 21

Slide 21 text

var chaueh = { nome: "Chaueh Ferradura", idade: 24, sexo: "M" } chaueh.hasOwnProperty("nome"); // true chaueh.hasOwnProperty("religiao"); // false

Slide 22

Slide 22 text

== ≠ ===

Slide 23

Slide 23 text

("0" == 0) // true ("0" === 0) // false

Slide 24

Slide 24 text

parseint do demo….

Slide 25

Slide 25 text

parseInt("08"); // 0 parseInt("08", 10); // 8

Slide 26

Slide 26 text

String replace

Slide 27

Slide 27 text

var texto = "Chaueh Ferradura era um cara legal"; texto.replace(/ /, "_"); //Chaueh_Ferradura era um cara legal texto.replace(/ /g, "_"); // Chaueh_Ferradura_era_um_cara_legal

Slide 28

Slide 28 text

obrigado