Documentação do JavaScript - Simples
Tags: javascript, beginners, webdev, braziliandevs
Published: 2023-07-26 18:24:42

#**Introdução**
JavaScript é uma linguagem de script orientada a objetos e multiplataforma. É uma linguagem pequena e leve. Dentro de um ambiente de hospedagem (por exemplo, um navegador da web), o JavaScript pode ser conectado aos objetos de seu ambiente para fornecer controle programático sobre eles.

O JavaScript contém uma biblioteca padrão de objetos, como Array, Date e Math, e um conjunto principal de elementos de linguagem, como operadores, estruturas de controle e declarações. O JavaScript principal pode ser estendido para uma variedade de propósitos, adicionando objetos adicionais a ele. Por exemplo:

- O JavaScript do lado do cliente estende a linguagem principal fornecendo objetos para controlar um navegador e seu Modelo de Objeto de Documentos (DOM). Por exemplo, extensões do lado do cliente permitem que uma aplicação coloque elementos em um formulário HTML e responda a eventos do usuário, como cliques de mouse, entrada de formulário e navegação de página.
- O JavaScript do lado do servidor estende a linguagem principal fornecendo objetos relevantes para executar JavaScript em um servidor. Por exemplo, extensões do lado do servidor permitem que uma aplicação se comunique com um banco de dados, forneça continuidade de informações de uma invocação para outra da aplicação ou execute manipulações de arquivos em um servidor.

**O que você deve saber**
Este guia pressupõe que você tenha o seguinte conhecimento básico:

- Uma compreensão geral da Internet e da World Wide Web (WWW).
- Bom conhecimento prático de HyperText Markup Language (HTML).
- Alguma experiência de programação. Se você é novo na programação, experimente um dos tutoriais vinculados na página principal sobre JavaScript.

#**JavaScript e Java**
JavaScript e Java são semelhantes de algumas maneiras, mas fundamentalmente diferentes em outras. A linguagem JavaScript se assemelha ao Java, mas não possui tipagem estática e verificação de tipo forte do Java. O JavaScript segue a maioria da sintaxe de expressão Java, convenções de nomenclatura e construções básicas de fluxo de controle, o que foi o motivo de ter sido renomeado de LiveScript para JavaScript.

Em contraste com o sistema de classes em tempo de compilação do Java, o JavaScript suporta um sistema em tempo de execução com um pequeno número de tipos de dados que representam valores numéricos, booleanos e de string. O JavaScript possui um modelo de objeto baseado em protótipo em vez do modelo de objeto com base em classe mais comum. O modelo baseado em protótipo fornece herança dinâmica; ou seja, o que é herdado pode variar para objetos individuais. O JavaScript também suporta funções sem requisitos declarativos especiais. Funções podem ser propriedades de objetos, executando-se como métodos com tipos de dados não rigorosamente definidos.

O JavaScript é uma linguagem muito livre em comparação com o Java. Você não precisa declarar todas as variáveis, classes e métodos. Você não precisa se preocupar se os métodos são públicos, privados ou protegidos, e não precisa implementar interfaces. As variáveis, parâmetros e tipos de retorno de função não são explicitamente tipados.

#**Olá, Mundo**
Para começar a escrever JavaScript, abra o console do navegador e escreva seu primeiro código JavaScript "Olá, Mundo":

`function saudar(nome) { alert("Olá " + nome); }
saudar("Mundo");`

enter para vê-lo em ação no seu navegador!

#**Variáveis**
Você usa variáveis como nomes simbólicos para valores em sua aplicação. Os nomes das variáveis, chamados de identificadores, devem seguir certas regras.

Um identificador JavaScript deve começar com uma letra, sublinhado (_) ou cifrão ($); caracteres subsequentes também podem ser dígitos (0-9). Como o JavaScript diferencia maiúsculas de minúsculas, as letras incluem os caracteres "A" a "Z" (maiúsculas) e os caracteres "a" a "z" (minúsculas).

Você pode usar letras ISO 8859-1 ou Unicode, como å e ü, nos identificadores. Você também pode usar sequências de escape Unicode como caracteres nos identificadores. Alguns exemplos de nomes válidos são Number_hits, temp99 e _name.

#**Declarando Variáveis**
Você pode declarar uma variável de três maneiras:

Com a palavra-chave var. Por exemplo,

`var x = 42.`

Essa sintaxe pode ser usada para declarar variáveis locais e globais.

Atribuindo simplesmente um valor a ela. Por exemplo,

`x = 42.`

Isso sempre declara uma variável global. Ele gera um aviso rigoroso do JavaScript. Você não deve usar essa variante.

Com a palavra-chave let. Por exemplo,

`let y = 13.`

Essa sintaxe pode ser usada para declarar uma variável local com escopo de bloco. Veja o Escopo de Variáveis abaixo.

#**Escopo de Variáveis**
Quando você declara uma variável fora de qualquer função, ela é chamada de variável global, porque está disponível para qualquer outro código no documento atual. Quando você declara uma variável dentro de uma função, ela é chamada de variável local, porque está disponível apenas dentro dessa função.

O JavaScript antes do ECMAScript 2015 não tem escopo de declaração de bloco; em vez disso, uma variável declarada dentro de um bloco é local à função (ou escopo global) em que o bloco reside. Por exemplo, o código a seguir registrará 5, porque o escopo de x é a função (ou contexto global) em que x é declarado, não o bloco, que neste caso é uma instrução if.

`if (true) { var x = 5; } console.log(x); // 5`

Esse comportamento muda ao usar a declaração let, introduzida no ECMAScript 2015.

`if (true) { let y = 5; } console.log(y); // ReferenceError: y não foi definido`

#**Variáveis Globais**
As variáveis globais são, na verdade, propriedades do objeto global. Nas páginas da web, o objeto global é a janela (window), então você pode definir e acessar variáveis globais usando a sintaxe window.variable.

Consequentemente, você pode acessar variáveis globais declaradas em uma janela ou quadro de outro quadro ou janela especificando o nome do quadro ou janela. Por exemplo, se uma variável chamada phoneNumber for declarada em um documento, você pode se referir a essa variável a partir de um iframe como parent.phoneNumber.

#**Constantes**
Você pode criar uma constante nomeada somente leitura com a palavra-chave const. A sintaxe de um identificador de constante é a mesma de um identificador de variável: ele deve começar com uma letra, sublinhado ou cifrão e pode conter caracteres alfabéticos, numéricos ou sublinhados.

`const PI = 3.14;`

Uma constante não pode mudar de valor por meio de atribuição ou ser redeclarada enquanto o script estiver em execução. Ela deve ser inicializada com um valor.

As regras de escopo para constantes são as mesmas que as de variáveis com escopo de bloco let. Se a palavra-chave const for omitida, o identificador será considerado como representando uma variável.

Você não pode declarar uma constante com o mesmo nome de uma função ou variável no mesmo escopo. Por exemplo:

`// ISSO CAUSARÁ UM ERRO function f() {}; const f = 5; // ISSO TAMBÉM CAUSARÁ UM ERRO function f() { const g = 5; var g; //statements }`

No entanto, os atributos do objeto não estão protegidos, então a seguinte declaração é executada sem problemas.

`const MEU_OBJETO = {"chave": "valor"}; MEU_OBJETO.chave = "outroValor";`

#**Tipos de Dados**
O padrão mais recente do ECMAScript define sete tipos de dados:

Seis tipos de dados que são primitivos:
- Booleano. true e false.
- null. Uma palavra-chave especial que denota um valor nulo. Como o JavaScript diferencia maiúsculas de minúsculas, null não é igual a Null, NULL ou qualquer outra variante.
- undefined. Uma propriedade de nível superior cujo valor é indefinido.
- Número. 42 ou 3,14159.
- String. "Howdy"
- Símbolo (novo no ECMAScript 2015). Um tipo de dados cujas instâncias são únicas e imutáveis.
e Objeto

Embora esses tipos de dados sejam relativamente poucos, eles permitem que você execute funções úteis em suas aplicações. Objetos e funções são os outros elementos fundamentais da linguagem. Você pode pensar em objetos como contêineres nomeados para valores e funções como procedimentos que sua aplicação pode executar.

#**Declaração If Else**
Use a declaração if para executar uma instrução se uma condição lógica for verdadeira. Use a cláusula else opcional para executar uma instrução se a condição for falsa. Uma instrução if é escrita da seguinte forma:

`if (condição) { instrução_1; } else { instrução_2; }`

A condição pode ser qualquer expressão que se avalia como verdadeira ou falsa. Veja o tipo Booleano para uma explicação do que é avaliado como verdadeiro ou falso. Se a condição se avaliar como verdadeira, a instrução_1 é executada; caso contrário, a instrução_2 é executada. instrução_1 e instrução_2 podem ser qualquer instrução, incluindo outras declarações if aninhadas.

Você também pode compor as declarações usando else if para ter várias condições testadas em sequência, da seguinte forma:

`if (condição_1) { instrução_1; } else if (condição_2) { instrução_2; } else if (condição_n) { instrução_n; } else { instrução_última; }`

No caso de várias condições, apenas a primeira condição lógica que se avaliar como verdadeira será executada. Para executar várias instruções, agrupe-as em uma declaração de bloco ({ ... }). Em geral, é uma boa prática usar sempre declarações de bloco, especialmente ao aninhar declarações if:

`if (condição) { instrução_1_executada_se_condição_for_verdadeira; instrução_2_executada_se_condição_for_verdadeira; } else { instrução_3_executada_se_condição_for_falsa; instrução_4_executada_se_condição_for_falsa; }`

É aconselhável não usar atribuições simples em uma expressão condicional, pois a atribuição pode ser confundida com igualdade ao examinar o código. Por exemplo, não use o seguinte código:

`if (x = y) { /* instruções aqui */ }`

Se você precisar usar uma atribuição em uma expressão condicional, uma prática comum é colocar parênteses adicionais em torno da atribuição. Por exemplo:

`if ((x = y)) { /* instruções aqui */ }`

para condições:

`if (x == y) { /* instruções aqui */ }`

#**Declaração While**
Uma declaração while executa suas instruções enquanto uma condição especificada se avalia como verdadeira. A sintaxe de uma declaração while é a seguinte:

`while (condição) instrução`

Se a condição se tornar falsa, a instrução dentro do loop para de ser executada e o controle passa para a instrução após o loop.

O teste da condição ocorre antes que a instrução do loop seja executada. Se a condição retornar verdadeira, a instrução é executada e a condição é testada novamente. Se a condição retornar falsa, a execução para e o controle passa para o while após o loop.

Para executar várias instruções, use uma declaração de bloco ({ ... }) para agrupar essas instruções.

Exemplo:

O loop while a seguir itera enquanto n for menor que três:

`var n = 0; var x = 0; while (n < 3) { n++; x +=n; }`

Com cada iteração, o loop incrementa n e adiciona esse valor a x. Portanto, x e n assumem os seguintes valores:

- Após a primeira passagem: n = 1 e x = 1
- Após a segunda passagem: n = 2 e x = 3
- Após a terceira passagem: n = 3 e x = 6
Após a terceira passagem, a condição n < 3 não é mais verdadeira, e o loop é interrompido.

#**Declarações de Funções**
Uma definição de função (também chamada de declaração de função) consiste na palavra-chave function, seguida por:

- O nome da função.
- Uma lista de argumentos da função, entre parênteses e separados por vírgulas.
- As instruções JavaScript que definem a função, entre chaves { }.
Por exemplo, o seguinte código define uma função simples chamada square:

`function square(number) { return number * number; }`

A função square recebe um argumento chamado number. A função consiste em uma instrução que retorna o argumento da função (ou seja, number) multiplicado por si mesmo. A instrução return especifica o valor retornado pela função.

Você pode chamar essa função passando um valor como argumento para a função, como este:

`let resultado = square(5);`

O valor retornado da função (25 neste caso) é atribuído à variável resultado.

Referências
Este guia de documentação técnica sobre JavaScript é baseado no tutorial do freeCodeCamp. Para uma compreensão mais profunda do JavaScript, você pode consultar o site oficial do JavaScript, MDN Web Docs (https://developer.mozilla.org/pt-BR/docs/Web/JavaScript) e o ECMAScript Language Specification (https://www.ecma-international.org/publications-and-standards/standards/ecma-262/).