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

Tutorial básico do JavaScript

Objeto do JavaScript

Função do JavaScript

DOM HTML JS

BOM do navegador JS

Tutorial básico do AJAX

Manual de referência do JavaScript

Erros Comuns do JavaScript

JavaScript é um dos linguagens de programação mais populares na indústria atual. Se você quiser aprender essa linguagem, evite os seguintes erros.

Uso inesperado do operador de atribuição

Se não prestarmos atenção ao usar o operador de atribuição (=) em vez do operador de comparação (==) na instrução if, o programa JavaScript pode gerar resultados inesperados.

Se num não for igual a20, esta instrução if retorna false:

var num = 0;
if (num == 20)
Teste e Veja‹/›

Esta instrução if retorna true, porque20 é true:

var num = 0;
if (num = 20)
Teste e Veja‹/›

A atribuição sempre retorna o valor atribuído.

Usar "==" em vez de "==="

Quando as pessoas começam a usar JavaScript, isso pode ser o erro mais comum.

Em comparações comuns, o tipo de dados não importa. Se a instrução if retornar true:

var a = 20;
var b = "20";
if (a == b)
Teste e Veja‹/›

Em comparações estritas, o tipo de dados é realmente importante. Esta instrução if retorna false:

var a = 20;
var b = "20";
if (a === b)
Teste e Veja‹/›

A diferença entre (a == b) e (a === b) é:

  • == Se a igual a b, retorna true

  • === Se a igual a b e eles pertencem ado mesmo tipoSe sim, retorna true

Normalmente, você deve sempre usar ===, também conhecido como operador de igualdade estrita ou operador de identidade.

adição e concatenação confusas

Como mencionado nos capítulos anteriores,+operadores são usados para adição e concatenação.

Além dissoé sobre adicionarnúmeros.

concatenaçãoé sobre adicionarA string.

Portanto, adicionar números como números e adicionar números como strings resulta em resultados diferentes:

var a = 10;
var b = 5;
var c = a + b; // c = 15
var a = 10;
var b = "5";
var c = a + b; // c = "105"
Teste e Veja‹/›

uso incorreto de float

Todos os números no JavaScript são armazenados como64números de ponto flutuante (Floats).

Todos os linguagens de programação (inclusive JavaScript) têm dificuldades com valores de ponto flutuante precisos:

var a = 0.1;
var b = 0.2;
var c = a + b;   // o resultado de c não será 0.3
Teste e Veja‹/›

Para resolver o problema mencionado acima, ajuda a multiplicar e dividir:

var c = (a * 10 + b * 10) / 10; // c = 0.3
Teste e Veja‹/›

nova linha de string do JavaScript

O JavaScript permite que você queira dividir uma sentença em duas linhas:

var str =
"w3caixa de código Tutorial";
Teste e Veja‹/›

Mas, interromper uma sentença no meio da string não terá efeito:

var str = "w3caixa de código
Tutorial";
Teste e Veja‹/›

Se for necessário interromper uma sentença dentro de uma string, deve-se usar o "barra invertida" (caractere de escape):

var str = "w3caixa de código \
Tutorial";
Teste e Veja‹/›

    Outra solução é usarliterais de template(códigos de aspas invertidas ``)strings. Isso elimina a necessidade de escapar strings longas:

var str = `Poluição do ar é a introdução de compostos no
atmosfera. Isso danifica o equilíbrio ambiental e causa
varias doenças.`;
Teste e Veja‹/›

ponto e vírgula em posição errada

Devido ao erro de posição do ponto e vírgula, o seguinte código será executado independentemente do valor de num:

if (num === 45);
{
  // bloco de código  
}
Teste e Veja‹/›

definições terminadas com vírgula

A vírgula no final da definição de objeto e array no ECMAScript 5é permitido.

let fruits = ["Apple", "Mango", "Banana", "Orange",];//array
let user = {firstName:"Vishal", lastName:"Choudhary", age:22,};//objeto

No entanto, a adição de vírgula no final do array, no Internet Explorer 8vai falhar.

O JSON não permite vírgulas consecutivas.

Escopo de Bloco

O JavaScript não cria um novo escopo para cada bloco de código.

é aplicável em muitos linguagens de programação, mas não no JavaScript.

for (var i = 0; i < 10; i++) {
  // algum código
}
document.write(i);   // Qual será essa saída?
Teste e Veja‹/›

usarletA palavra-chave cria um novo escopo para cada bloco de código:

for (let i = 0; i < 10; i++) {
  // algum código
}
document.write(i);   // Qual será essa saída?
Teste e Veja‹/›

Diferença entre null e undefined

undefinedO valor indica que ainda não foi atribuído um valor à variável ou que a variável não foi declarada.

nullO valor indica que deliberadamente não há nenhum valor de objeto.

Isso torna um pouco difícil testar se o objeto está vazio.

pode-se testar se o tipo éundefinedpara testar se o objeto existe:

if (typeof myObj === "undefined")
Teste e Veja‹/›

    mas você não pode testar se o objeto énullporque se o objetoundefinedo que lançará um erro:

if (myObj === null)
Teste e Veja‹/›

Para resolver este problema, é necessário testar se um objeto não éundefinede não énull:

if (typeof myObj !== "undefined" && myObj !== null)
Teste e Veja‹/›