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
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
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