4. Sim, é tipada
var i = “oi”;
typeof oi === “string”
Sim, é dinâmica
Tudo é objeto, inclusive função, com exceção de
number, string, boolean, null e undefined
5. var obj = {} //object
var dt = new Date() //object --> Date
var arr = [] //object --> Array
var func = function(){} //function
7. Prototype
Quem disse que JavaScript não tem
herança
function Employee () { … }
function Manager () { ... }
Manager.prototype = new Employee;
Uouuuuu
9. Function
Pode ser uma função normal
Pode ser uma função construtora
Criam novo escopo de execução
Tem um cara legal chamado arguments
10. Function
Se chamado com new cria um novo
contexto
Pode transferir o contexto chamador (bind,
call e apply)
O this com new aponta pro novo contexto,
sem new aponta para o contexto Global
11. For
for(var i = 0; i < 3; i++){ ... }
for(var i in [1,2,3,4,5,6]){ ... }
Prefira guardar o tamanho do array
for(var i = 0, len = arr.length; i < len; i++) { ... }
For in somente se realmente necessário
12. “use strict”; (ativa o modo estrito)
Equívocos são erros e não serão tolerados
Bloqueia o uso de variáveis globais implícitas
With não será permitido
Quando a função for chamada sem o new, this não
apontará para Global, pois será um undefined
http://tableless.com.br/javascript-strict-mode/
Entre outros...
13. IIFE - Immediately-Invoked Function Expression
Cria um novo escopo isolado
Protege variáveis criadas no seu escopo
Em casos simples as vezes já necessitamos
deste isolamento
http://tutsmais.com.br/blog/javascript-2/o-
que-e-iife-no-javascript/
14. Jquery é legal, mas por favor, saiba fazer antes
com JavaScript puro, você se tornará amigo do
DOM
Jquery muitas vezes é mais lento que o nativo
Se usar Jquery, minimize as buscas de
elementos, elas não precisam ser executadas
a todo tempo.