English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico do JavaScript

Objeto do JavaScript

Função do JavaScript

DOM HTML do JS

BOM do navegador JS

Tutorial básico de AJAX

Manual de referência do JavaScript

Experiência Prática do JavaScript

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.

Evite variáveis globais

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 usarletconstevarpalavras-chave de declaração, senão elas se tornarão variáveis globais.

sempre declare variáveis

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;

Use extended syntax

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 */
  }

Do not declare numbers, strings, or boolean values as objects

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 types
Teste 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 objects
Teste para ver‹/›

Do not use new Object()

  • 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‹/›

Cuidado com a conversão automática de tipos

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 Boolean
Teste 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úmero
Teste para ver‹/›

Atenção, os números podem ser convertidos acidentalmente emNaN(não numérico):

num = 50 *   // Retorna \
Teste para ver‹/›

Use comparação estrita

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

Uso de constantes de template

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 + '!');

loop genérico

Quando usarforfor...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

Nomeação de funçã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!');
  }

Use o valor padrão para terminar o switch

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‹/›

Manejo de Erros

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);
  }