English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Cada pessoa escreve JavaScript de uma maneira diferente. No entanto, há muitos pontos em comum. A seguir, está um conjunto de diretrizes e considerações simples para escrever JavaScript, para que você possa evitar desvios.
Minimize o uso de variáveis globais. Isso inclui todos os tipos de dados, objetos e funções.
As variáveis globais e as funções podem ser substituídas por outros scripts. Portanto, use variáveis locais.
As variáveis locais devem usarlet,constevarpalavras-chave de declaração, senão elas se tornarão variáveis globais.
ao declarar variáveis e constantes, useleteconstpalavras-chave, em vez devar。
// Recomendado: let myAge = 22; const myName = "oldtoolbag.com"; // Não recomendado: var myAge = 22; var myName = "oldtoolbag.com";
Há muitos motivos suficientes para fazer isso-Por exemplo, ele evita problemas causados por realocação acidental e evita que isso afete a melhoria da legibilidade.
It is a good programming practice to place all declarations at the top of each script or function.
Below is a more concise code, and a place to find all variables at the beginning of the code.
// Declare at the beginning let firstName, lastName, price, discount, fullPrice; // Use firstName = "oldtoolbag.com"; lastName = "Choudhary"; price = 26.90; discount = 1.25; fullPrice = price * 100 / discount;
To maximize readability, we use extended syntax, breaking each line of JS.
// Recomendado: function myFunc() { console.log("Parrot Tutorial"); } // Não recomendado: function myFunc() { console.log("Parrot Tutorial"); }
You should use spaces between operators, operands, parameters, etc.:
// This is more readable if(dayOfWeek === 7 && weather === "sunny") { /* Some code */ } // Poor readability if(dayOfWeek===7&&weather==="sunny"){ /* Some code */ }
Always treat numbers, strings, or boolean values as primitive values. Do not treat them as objects.
Declaring these types as objects will slow down execution and produce unexpected results.
var str1 === "New Delhi"; var str2 === new String("New Delhi"); document.write(str1 === str2); // Returns false because str1 and str2 have different typesTeste para ver‹/›
Cannot compare objects:
var str1 === new String("New Delhi"); var str2 === new String("New Delhi"); document.write(str1 == str2); // Returns false because str1and str2They are different objects document.write(str1 === str2); // Returns false because str1and str2They are different objectsTeste para ver‹/›
Use {} instead of new Object()
Use "" instead of new String()
Use 0 instead of new Number()
Use false instead of new Boolean()
Use [] instead of new Array()
Use/()}}/Replace new RegExp()
Use function (){} instead of new Function()
let x1 === {}; let x2 === ""; let x3 === 0; let x4 === false; let x5 === []; let x6 = /()}}/; let x7 = function(){};Teste para ver‹/›
O JavaScript é um linguagem de tipo fraca ou dinâmica. As variáveis do JavaScript não estão diretamente associadas a nenhum tipo de valor específico e podem ser atribuídas (e reatribuídas) todos os tipos de valores para todas as variáveis.
var x = 20; // x agora é um Number x = "oldtoolbag.com"; // x agora é um String x = true; // x agora é um BooleanTeste para ver‹/›
Ao realizar operações matemáticas, o JavaScript pode converter números em strings:
num = 50 + 10;// Retorna 6"0", typeof num é um número num = 50 + "10"; // Retorna \5010", typeof num é uma string num = \5"0" + 10; // Retorna \5010", typeof num é uma string num = \5"0" - 10; // Retorna \4"0", typeof num é um númeroTeste para ver‹/›
Atenção, os números podem ser convertidos acidentalmente emNaN(não numérico):
num = 50 * // Retorna \Teste para ver‹/›
A comparação == sempre compara antes da conversão (para coincidir com o tipo).
O operador de comparação === força a comparação do valor e do tipo.
1 == ";1"; // true 1 == true; // true 1 === ";1"; // false 1 === true; // false
Para inserir um valor em uma string, useConstantes de template(` `)。
// Recomendado: let myName = 'oldtoolbag.com'; console.log(`Hi! I'm ${myName}!`); // Não recomendado: let myName = 'oldtoolbag.com'; console.log('Hi! I\'m' + myName + '!');
Quando usarfor,for...inoufor...ofLoop, certifique-se de definir corretamente a inicialização, usandoletpalavra-chave.
let fruits = ["Apple", "Mango", "Banana"]; // Recomendado: for(let i of fruits) { console.log(i); } // Não recomendado: for(i of fruits) { console.log(i); }
Lembre-se ainda:
Não deve haver espaço entre a palavra-chave de loop e o parêntese esquerdoespaço。
Entre os parênteses e chaves deve haverUm espaço。
Para o nome da função, use lowerCamelCasing e use nomes semânticos claros onde apropriado.
// Recomendado: function sayHello() { alert('Hello!'); } // Não recomendado: function sayhello() { alert('Hello!'); }
switchSempre termine com default: mesmo que você ache que não é necessário.
var day; switch (new Date().getDay()) { case 0: day = "Sunday"; break; case 1: day = "Monday"; break; case 2: day = "Tuesday"; break; case 3: day = "Wednesday"; break; case 4: day = "Thursday"; break; case 5: day = "Friday"; break; case 6: day = "Saturday"; break; default: day = "Undefined Day"; }Teste para ver‹/›
Se algum estado do programa lançar erros não capturados, eles pararão a execução e podem reduzir a utilidade do exemplo.
Portanto, você deve usartry...catchBloco para capturar erros.
try { console.log(results); } catch(e) { console.error(e); }