Hoje encontrei uma pergunta no Github sobre como usar corretamente o JavaScript para o desenvolvimento do nosso programa. Eu inventei descaradamente um original ... é uma farsa. Vamos compartilhar com você.
Uma abordagem principalmente razoável do JavaScript.
Tipos // tipo
Objetos // objetos
Matrizes // Matrizes
Strings // Strings
Funções // funções
Propriedades // Propriedades
Variáveis // variáveis
Içafing // Melhoria variável
Expressões condicionais e igualdade // expressões e igualidades condicionais.
Blocks // Código de bloco
Comentários // Comentários
Espaço em branco // Espaço
Vírgulas // vírgulas
Semicolons // semicolons
Tipo de fundição e coerção // Tipo de conversão
Convenções de nomenclatura // Regras de nomeação
Acesso // Acesso
Construtores // Construtores
Eventos // tempo
Módulos // Modelos
jQuery //
Ecmascript 5 Compatibilidade // ECMA 5 Compatibilidade
Teste // testes
Desempenho // desempenho
Recursos // Recursos
Na natureza
Tradução
O guia de estilo JavaScript
Colaboradores
Licença
Tipos (tipo)
Tipo primitivo: Ao acessar um tipo primitivo, ele realmente acessa diretamente o conteúdo do tipo primitivo.
corda
número
booleano
nulo
indefinido
var foo = 1,
bar = foo;
bar = 9;
console.log (Foo, bar); // => 1,9
Tipo complexo: Quando você acessa um tipo de dados complexo, você realmente acessa o valor da variável por meio de uma referência.
objeto
variedade
função
var foo = [1,2]; bar = foo; bar [0] = 9; console.log (foo [0], bar [0]); // => 9,9
objeto (objeto)
Use literais de objeto para criar objetos (literal)
// badvar item = new Object (); // Goodvar item = {};Não use palavras -chave reservadas como o nome da propriedade do objeto. Isso não funcionará no IE8.
// badvar superman = {default: {Clark: 'kent'}, privado: true}; // goodvar superman = {padrão: {Clark: 'kent'}, hidden: true};Array (Array)
Também use o método literal para criar uma matriz
// itens badvar = new Array (); // Goodvar Itens = [];
Se você não conhece o comprimento da matriz, use o método interno do Array, pressione para a operação de inserção
var someStack = []; // BadsomeStack [SOMESTACK.LENGLED] = 'Veia'; // bensomeStack.push ('veia');Quando você quiser copiar uma matriz, use o Array.slice
var len = items.length, // refere -se ao conteúdo acima ... itemCopy = [], i; // badfor (i = 0; i <len; ++ i) {itemcopy [i] = itens [i];} // gooditemcopy = items.slice (); // eu preciso prestar atenção aqui. Eu realmente não sei disso ...Strings string
Use citações únicas para incluir strings ... // Não encontrei uma explicação adequada para o desempenho aqui, eu pessoalmente gosto de usá -lo assim, (é melhor usar menos do que usar ... você sabe ...)
// badvar name = "bob parr"; // Goodvar name = 'bob parr'; // badvar fullname = "bob" + this.lastName; // goodvar fullname = 'bob' + this.lastName;
Quando as strings têm mais de 80 caracteres, você precisa usar concatenação de string para escrever em várias linhas. Observe que, se o uso excessivo, a concatenação de cordas afetará o desempenho.
// badvar errorMessage = 'Este é um erro super longo que foi jogado por causa de Batman. Quando você para para pensar em como o Batman tinha algo a ver com isso, você não chegaria a lugar nenhum rápido. '; // Badvar errorMessage =' Este é um erro super longo que foi jogado por causa/de Batman. Quando você para para pensar em como o Batman tinha algo a fazer /com isso, você não chegaria a lugar nenhum /rápido. Quando você para para pensar em como Batman tinha algo a fazer ' +' com isso, você não chegaria a lugar algum rápido. ';
Se você criar uma matriz de maneira planejada, como a seguinte. Usar o Array.join funcionará melhor ..
var itens, mensagens, comprimento, i; mensagens = [{estatística: 'sucessor', mensagem: 'este funcionou'}, {stat: 'succed', mensagem: 'este funcionou'}, {estat: 'succcess', mensagem: 'este trabalhou'}]; length = mensagens.length; // badfunction INBOX (Mensagens) {itens = '<l>'; + mensagens [i] .Message + '</li>';} Retornar itens + '</ul>';} // BOODFUNCTION Caixa de entrada (mensagens) {itens = []; para (i = 0; i <comprimento; i ++) {itens [i] = Mensagens [i]. '</li> </ul>';}Funções
// Expressão da função anônima..var anonymous = function () {return true;}; // função de nome Expression.var denome = function nomeado () {return true;}; // função de referência instantânea (function () {console.log ('Bem -vindo à internet. Siga -me.');Nunca defina funções no código de bloco sem função (se, enquanto). Da mesma forma, a função é atribuída ao nome da variável externa no meio do bloco de código.
// badif (currentUser) {function test () {console.log ('nope. }; // Tenha cuidado com o Semi-Colon.}Propriedades (propriedades)
Use a sintaxe do DOT para acessar propriedades.
var luke = {jedi: true, idade: 28}; // badvar isjedi = luke ['jedi']; // goodvar isjedi = lucky.jedi;Ao acessar as propriedades do objeto usando variáveis, use [] colchetes para acessar
var luke = {jedi: true, idade: 28}; function getProp (prop) {return luke [prop];} var isjedi = getProp ('jedi');