MDN reference - https://developer.mozilla.org/en-US/docs/Web/Events
A versão oficial do nome JavaScript é ECMAScript
console.log(" ---------------------------- ");
//função anonima sendo atribuida a uma var a
var a = function(){
console.log("func 1");
}
a();
//função anonima sendo invocada em um parentese
//boa técnica para isolar escopo de variavel
(
function(){
console.log("func 2");
}
)();
console.log(" ---------------------------- ");
// closure
//JavaScript variables can belong to the local or global scope.
//Global variables can be made local (private) with closures.
var tick = (function(){
var contador = 0;
return function(){
contador = contador + 1;
console.log(contador);
}
})();
tick();
tick();
tick();
console.log(" ---------------------------- ");
//Objeto
//variaveis que contem variaveis
//Para javascript quase tudo eh obj
//cada variavel dentro da variavel obj é uma propriedade
var obj = {nome:"Jon",sobrenome:"Snow",idade:16};
console.log(obj);
//para acessar as propriedades do obj
console.log(obj.nome);
console.log(obj.sobrenome);
//dentro de propriedades eh possivel adicionar funcoes anonimas
var obj = {
nome:"Jon",
sobrenome:"Snow",
idade:16,
apresentar: function(){
console.log("oi eu sou " + this.nome );
}
};
obj.apresentar();
console.log(" ---------------------------- ");
//Prototype
//O prototype é tipo o conceito de uma classe, todo objeto tem um prototype
//criando o prototype
//isso eh tipo o construtor:
function Stark(nome, idade, corDoCabelo){
this.nome = nome;
this.idade = idade;
this.corDoCabelo = corDoCabelo;
this.sobrenome = "Stark";
this.apresentar = function(){
console.log("ola sou o "+this.nome);
}
}
//Ambos herdam o prototype Stark
var ned = new Stark("Ned",40,"preto");
ned.apresentar();
var sansa = new Stark("Sansa",20,"azul");
sansa.apresentar();
//vamos supor que quero criar uma nova propriedade
//para que todos os objetos Stark extendam
Stark.prototype.darTchau = function (){console.log("Tchau");}
ned.darTchau();
sansa.darTchau();
//Exemplo de criação de uma nova propriedade para o primitivo String
String.prototype.apagar = function(){
return "apagado";
}
console.log("Oi ".apagar());
console.log(" ---------------------------- ");
//array
//objetos sao variaveis que possuem variaveis
//declarando array
var stark = [];
var stark = ["Ned","John"];
console.log(stark[1]);
//javascript nao eh tipado, o tipo de dados dele pode variar
var starkS = [
["Ned",40],
["Jon",10],
["Rickon",30]
];
console.log(starkS[0][1]);//imprime 40
//o obj pode ser usado como se fosse array associativo
var stark = {
nome:"Ned",
idade:40
};
console.log(stark["nome"]);
//
console.log(" ---------------------------- ");
//Date
//Cria obj de data
var dAtual = new Date();//data atual
var d = new Date("03/07/1992");//aceita o formato "dia mes ano"
var d2 = new Date("1992-07-03");//aceita o formato "ano mes dia"
var dMili = new Date(187168746746);//aceita milissegundos
console.log(d);
console.log(d2);
console.log(dMili);//preenche a atual
console.log(" ---------------------------- ");